Contenus | Capacités attendues |
---|---|
Boucles bornées et non bornées Définitions et appels de fonctions |
Écrire et développer des programmes pour répondre à des problèmes et modéliser des phénomènes physiques, économiques et sociaux. |
Image
by Scratch is a project of the Scratch Foundation, in collaboration with
the Lifelong Kindergarten Group at the MIT Media Lab. It is available
for free at
https://scratch.mit.edu -
http://scratchblocks.github.io,
CC
BY-SA 2.5,
Link
Dans ce chapitre, nous allons nous intéresser aux boucles qui permettent de répéter des instructions dans une programme, ainsi qu'aux fonctions qui permettent d'exécuter des portions de programme à la demande.
Les boucles permettent de répéter des blocs d'instructions.
Il en existe deux types:
for
.while
.for
Lorsqu'on connait le nombre de répétitions à effectuer, on utilise la
boucle for
associée à la fonction range()
.
Pour répéter 7 fois un bloc d'instructions, on utilise:
for i in range(7):
print(i)
Affichera:
0
1
2
3
4
5
6
On peut aussi réaliser des boucles sur des types construits qui seront vus en première.
Sur des chaînes de caractères:
for lettre in "Bonjour!":
print(i)
Affichera:
B
o
n
j
o
u
r
!
Sur des listes:
for premier in [2, 3, 5, 7, 11, 13]:
print(premier)
Affichera:
2
3
5
7
11
13
while
Lorsqu'on ne connait pas le nombre de répétitions à effectuer, on
utilise la boucle while
associée à une variable de contrôle.
Voici un programme qui permet de vérifier que votre compte n'est pas à
découvert. Pour cela on utilise la variable de contrôle solde
.
solde = 1000 # initialisation
while solde > 0: # condition d'arrêt de la boucle
débit = float(input("Entrez la somme à débiter: "))
solde = solde - débit # mise à jour de la variable de contrôle
# On sort de la boucle
print("Vous êtes à découvert")
Attention à bien vérifier que votre boucle finira par se terminer sinon votre programme rentrera dans une boucle infinie, et il faudra obligatoirement le stopper.
Il s'agit de blocs d'instructions exécutés à la demande, on les définit
par le mot-clef def
.
def dit_bonjour(prenom):
print("Bonjour " + prenom)
Nous venons de définir la fonction, mais pour l'instant, il ne se passe rien.
Pour exécuter le code de la fonction, il faut maintenant appeler la fonction avec un paramètre pour que l'exécuter.
# on appelle la fonction avec l'argument Ada
dit_bonjour("Ada")
Affichera "Bonjour Ada"
.
Les fonctions peuvent renvoyer une valeur grâce au mot-clé return
.
def périmétre(rayon):
p = 2*3.14*rayon
return p
Cette fois-ci l'appel renverra la valeur du périmètre, on peut alors le stocker dans une variable.
# on appelle la fonction avec l'argument 0.5
peri_05 = périmètre(0.5)
La variable peri_05
contient la valeur renvoyée par l'appel de la
fonction 3.14
.
Une fonction peut accepter un nombre quelconque de paramètres, il suffit de les séparer par des virgules.
Avec deux paramètres.
def surface_rectangle(l, L):
return l*L
# appel
surface_rectangle(2, 3) # renvoie 6
Avec aucun paramètre:
import time
def affiche_heure():
print(time.asctime())
# Pour l'appel on met les parénthèses même s'il n'y a pas d'arguments
affiche_heure()
# affiche: Mon Jan 18 10:16:43 2021 par exemple