Bonsoir,

Encore un petit problème avec un code simple utilisant cette fois-ci la boucle for ... in...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
def nb_accents(phrase):
    "renvoie le nombre de eéèêë dans une phrase"
    nombre = 0
    match = 'eéèêë'
    for x in phrase:
        if x in match:
           nombre += 1
    return nombre
 
phrase = input("phrase : ")
print(nb_accents(phrase))
Je ne comprends pas pourquoi ça ne fonctionne pas.

J'ai essayé avec une boucle while :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def nb_accents(phrase):
    "renvoie le nombre de eéèêë dans une phrase"
    nombre = 0
    i=0
    j=0
    match = 'eéèêë'
    while i < len(phrase):
        while j < len(match):
            if phrase[i] == match[j]:
                nombre +=1
            j+=1
        i+=1
    return nombre
 
phrase = input("phrase : ")
print(nb_accents(phrase))
Ça ne fonctionne pas non plus.

À noter qu'au début j'avais utilisé une double boucle for... in... tel que :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for x in phrase:
    for y in match:
        if x == y:
            nombre += 1
return nombre
Du coup je me demande si j'ai bien compris l'utilisation de l'instruction for... in... sachant que le Swinnen n'y consacre qu'une page et demi.