Python - Boucles

Python - Boucles : corrigé des applications

1. L'écho


for i in range(20) :
	print("Echo !")
			

2. Table de 3


for i in range(1, 11) : # i varie de 1 à 10 ( 11 exclus ! ) par pas de 1 ( sous-entendu )
	print(i*3, end = ' ')
			

3. Compte à rebours


for i in range(20, -1, -1) : # i varie de 20 à 0 ( -1 exclus ! ) par pas de -1
	print(i, end = ' ')
			

4. Tables de multiplication

L'idée

Il faut ici reprendre le script de l'application 2, en s'arrangeant pour le faire "tourner" autant de fois que l'on veut de tables différentes ( ici, 10 ), tout en changeant à chaque fois la valeur du nombre dont on veut la table : au lieu de i*3, il faudrait pouvoir "écrire" automatiquement :

La solution est de faire "tourner" la boucle de l'application 2 à l'intérieur d'une autre boucle : c'est celle-ci qui nous permettra de faire varier le nombre dont on veut la table...

On parle dans ce cas de deux boucles imbriquées; c'est une structure très commune en programmation, et pas toujours évidente à comprendre...Il faut notamment bien faire attention à l'indentation des instructions indiquant les blocs logiques de chacune des deux boucles.

Proposition de script


for j in range(1,11) : # le compteur j contient le nombre dont on veut la table ( table de 1, table de 2,...)
	for i in range(1,11): # la boucle i crée chacune des tables
		print(i*j, end = ' ')
	print()
			

Remarques

5. Le calendrier

Proposition de script :


date = 1
for semaine in range( 1 , 5 ) :  # 'semaine' varie de 1 à 4
    for jour in range(1, 8): # 'jour' varie de 1 à 7
        print(date, end =' ')
        date += 1
    print()
				

Remarques :

Là aussi on se sert de deux boules imbriquées, l'une pour les 4 semaines du mois, et la deuxième pour les 7 jours de la semaine.

Pour l'affichage du jour, on se sert d'une variable date, que l'on incrémente de 1 à chaque affichage.

On remarque que le retour à la ligne ( ligne 6 ) doit être placé en dehors de la boucle jour : on ne change de ligne qu'en fin de semaine !...

Une autre possibilité..


for jour in range( 1 , 29 ) :
	print(jour , end = ' ')
	if ( jour % 7 == 0 ) :
		print()
				

Ici une seule boucle suffit, et c'est une condition sur la divisibilité de la variable jour par 7 ( on teste la valeur du reste de la division... ) qui permet de savoir quand revenir à la ligne...

6. Le jeu du nombre à deviner

Proposition de script :


from random import randrange

nombre = randrange( 1 , 101 )
entree = 0

while ( entree != nombre ) :
	entree = int(input('Entrez votre proposition :'))
	if ( entree > nombre ) :
		print('Trop grand !')
	if ( entree < nombre ) :
		print('Trop petit !')

print('Bravo !')
			

Remarque :

7. Calcul de PGCD

Proposition de script :

							
max = int(input('Entrez la plus grande valeur :'))
min = int(input('Entrez la plus petite valeur :'))

while ( max % min != 0 ) :
	reste = max % min
	max = min
	min = reste

print('Le PGCD est : ' , min )