Sur cette page cliquez les bouts de code pour les exécuter.
La boucle for combinée à la fonction range est l'approche la plus directe :
for i in range(1, 6):
print(i**2)
C'est aussi possible de combiner une boucle while avec l'incrémentation d'une variable à chaque itération de la boucle :
i = 1
while i <= 5:
print(i**2)
i = i + 1
L'ordre des valeurs peut être inversé en utilisant une décrémentation :
i = 5
while i > 0:
print(i**2)
i = i - 1
La sommation des nombres impairs avec une boucle while permet d'obtenir le même résultat sans utiliser l'opérateur ** :
i = 1
n = 1
while i < 10:
print(n)
i = i + 2
n = n + i
Une fonction récursive est une autre approche qui a une certaine ressemblance avec la boucle while :
def f(i, n):
if i < 10:
print(n)
f(i + 2, n + i + 2)
f(1, 1)
Avec l'approche de programmation fonctionnelle une solution en une ligne est possible :
list(map(lambda i: print((i+1)**2), range(5)))
Les approches précédentes ont le mérite d'une certaine généralité contrairement à la solution suivante :
print(1) print(4) print(9) print(16) print(25)
Les résultats des calculs pourraient aussi être stockés dans un fichier CSV puis affichés dans un tableur et un graphique à barres :
# Creer un fichier CSV contenant les carres.
with open('carres.csv', 'w') as f:
f.write('N,N**2\n')
for i in range(1, 6):
f.write(str(i) + ',' + str(i**2) + '\n')
# L'afficher sous forme de tableur.
show_file('carres.csv')
# L'afficher sous forme de graphique a barres.
chart(read_file('carres.csv'), mark='bar', x_type='ordinal')
Les résultats des calculs pourraient aussi se faire dessiner en utilisant la métaphore de la tortue :
# Ce programme utilise la tortue pour dessiner
# les nombres avec 7 segments.
from turtle import hop, lt, rt, fd, pensize
dist = 20 # longueur de chaque segment
segments = { # les 7 segments de chaque symbole
' ':0,
'0':63, '1':12, '2':118, '3':94, '4':77,
'5':91, '6':123, '7':14, '8':127, '9':95
}
def print_char(c): # dessiner un symbole
lt(90)
hop(); fd(dist)
bits = segments[c] # chaque bit = 1 segment
for i in range(7):
if (bits & 1) == 0: hop()
fd(dist)
bits >>= 1
if i != 2: rt(90)
hop(); fd(dist)
lt(90)
hop(); fd(dist/2)
def print(n): # imprimer un nombre
for c in str(n):
print_char(c)
print_char(' ')
hop(); fd(-175); pensize(5)
for i in range(1, 6): # calcul des carres
print(i**2)