|
|
|
|
Hello,
Je suis débutant version alpha en programmation. Je me suis pourtant plongé dans l'aventure avec Python pour mon plaisir personnel. C'est donc de façon autodidacte et probablement maladroite que je débute .
Je lis actuellement le livre "apprendre a programmer avec Python" de G.Swinnen et termine le chapitre des listes.
Voici un petit exercice personnel que je n'arrive pas a résoudre:
soit une liste de caractères CDEFGAB (hé oui, vous devinez ma source d'inspiration)
comment faire afficher une harmonisation d'accords de trois sons a partir de chaque degré (CEG * DFA * EGB ... etc.)
Ma syntaxe doit probablement être fausse car il m'affiche une erreur à la 9e ligne
voici:
# -*- coding:Latin-1 -*-
ch = "CDEFGAB"
lc = len(ch)
i = 0
nch = ""
c1, c2, c3 = 0, 2, 4
while i<lc:
nch = nch + "*" + ch[c1] + ch[c2] + ch[c3]
i = i + 1
c1 = c1 + 1
c2 = c2 + 1
c3 = c3 + 1
print nch
merci d'avançe
Dans beaucoup de cas, on peut se passer du while et utiliser plutôt le FOR.
|
Est-ce une instruction loop, dans ce cas i s'indente? Bref, j'ai de quoi étudier
mot = "coucou"
for lettre in mot:
print lettre.upper()
ce qui affiche: C O U C O U range(n) va créer une liste [0,1,2,3,4,5...n-1] Exemple: print range(5) [0, 1, 2, 3, 4] Donc for i in range(5) est équivalent à for i in [0, 1, 2, 3, 4] “Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++ |
Qu'est-ce qui cloche dans ma ligne 9?
ch = "CDEFGAB" print ch[12] Traceback (most recent call last):
File "a.py", line 2, in <module>
print ch[12]
IndexError: string index out of range
"index out of range" veut dire que tu as essayé d'utiliser un index hors des valeurs possible (range). (normal puisque ma chaîne ne fait que 7 caractères, je peux donc seulement utiliser les indexes 0,1,2.. jusqu'à 6). “Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++ |
Très sympa comme langage.
|