Aller au contenu principal

Corrigé - Atelier 6 - For

Essayez de faire l'atelier avant de consulter ce corrigé.

Compréhension​

Numéro 1​

total vaut 10 (1 + 2 + 3 + 4 = 10).

Numéro 2​

10
8
6
4
2

Écriture​

Numéro 3​

for i in range(1, 11):
print(i)

Numéro 4​

for i in range(10, 0, -1):
print(i)

Numéro 5​

for i in range(5, 101, 5):
print(i)

Numéro 6​

total: int = 0

for i in range(1, 101):
total = total + i

print(f"La somme de tous les nombres entre 1 et 100: {total}")

Numéro 7​

nombre: int
resultat: int = 1

nombre = int(input("Veuillez entrer un nombre: "))

for i in range(1, nombre + 1):
resultat = resultat * i

print(f"{nombre}! = {resultat}")

Numéro 8​

hauteur: int

hauteur = int(input("Combien de lignes? "))

for i in range(1, hauteur + 1):
print("*" * i)

Numéro 9​

nombre1: int
nombre2: int
resultat: int = 0

nombre1 = int(input("Veuillez entrer un nombre: "))
nombre2 = int(input("Veuillez entrer un nombre: "))

for i in range(nombre2):
resultat = resultat + nombre1

print(f"{nombre1} * {nombre2} = {resultat}")

Numéro 10​

nb: int
nombreOriginal: int
nbChiffres: int
inverse: int = 0

nb = int(input("Veuillez entrer un nombre: "))
nombreOriginal = nb
nbChiffres = len(str(nb))

for i in range(nbChiffres):
inverse = inverse * 10 + nb % 10
nb = nb // 10

print(f"L'inverse de {nombreOriginal} est {inverse}")

Analyse​

Numéro 12​

total = 0 est à l'intérieur de la boucle, il est donc réinitialisé à chaque itération avant d'ajouter i. Le résultat n'est jamais réellement accumulé, on obtient seulement la valeur du dernier i (10) au lieu de la somme (55). Il faut initialiser total avant la boucle:

total: int = 0

for i in range(1, 11):
total = total + i

print(total)

Numéro 13​

range(1, 12) s'arrête à 11, la 12e partie n'est jamais affichée puisque la borne de fin est exclusive. Il faut utiliser range(1, 13):

for partie in range(1, 13):
print(partie)

Numéro 14​

Le code fonctionne correctement, mais utilise un if avec un modulo pour filtrer les multiples de 5, alors que le pas (3e argument) de range fait exactement ça, plus simplement:

for i in range(5, 51, 5):
print(i)