Traitement à la volée
Énoncé
On va écrire un programme très simple qui lit une succession de caractères entrés par l'utilisateur et qui s'arrête dès qu'il a vu passer NBR
voyelles (on posera NBR = 5
par exemple).
Le programme affichera un message et le nombre de voyelles déjà vues à chaque fois qu'il verra passer une nouvelle voyelle.
Une trace d'exécution possible du programme pourra être :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | Entrez la suite de caractères à analyser (entrée après chaque caractère) :
> z
> a
Voyelle : 'a' (1/5)
> r
> t
> y
Voyelle : 'y' (2/5)
> e
Voyelle : 'e' (3/5)
> u
Voyelle : 'u' (4/5)
> d
> f
> g
> o
Voyelle : 'o' (5/5)
|
Correction
Cliquez ici pour révéler la correction.
voyelles.py
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | #!/usr/bin/env python3
"""
Lit une suite de lettre et s'arrête dès qu'on a vu passer NBR voyelles.
"""
NBR = 5
def est_voyelle(lettre):
"""
Teste si une lettre est une voyelle
"""
return lettre.lower() in ("a", "e", "i", "o", "u", "y")
def main():
"""
Fonction principale
"""
print("Entrez la suite de caractères à analyser (entrée après chaque caractère) : ")
cpt = 0
while cpt < NBR:
lettre = input("> ")
if est_voyelle(lettre):
cpt += 1
print(f"Voyelle : '{lettre}' ({cpt}/{NBR})")
main()
|