A2 - Conditions, boucles et fonctions

Pour la suite, nous allons quitter la console python pour commencer à écrire nos premiers programmes dans la partie supérieur d'Edupython. Il nous sera alors possible de les sauvegarder sous la forme d'un fichier texte avec l'extension .py et de les exécuter avec le bouton Executer.

Pour chaque partie traitée, il faudra sauvegarder votre travail dans des fichiers. Ranger bien ces fichiers dans un même dossier de votre espace de travail.

1. LES CONDITIONS

Il est possible d'exécuter une partie du code que si une condition est respectée. Pour cela on utilise une structure conditionnelle avec le mot-clé if. Si la condition est vraie, les instructions indentées (décalées) sur les lignes suivantes seront exécutées. Une indentation en python est un décalage de quatre espaces au début de la ligne.

Il est possible d'utiliser le mot clé else (sinon) pour exécuter des instructions dans le cas ou la condition n'est pas respectée (est fausse).

Exemple 1 :

note = int(input("Entrez votre note : "))


if note >= 10 :

print("J'ai la moyenne !")

else :

print("Il faut travailler davantage !")

Il est possible d'imbriquer les blocs, c'est-à-dire de créer des blocs dans d'autres blocs. Il faut alors faire attention à cumuler les indentations.

Exemple 2 :

note = int(input("Entrez votre note : "))


if note >= 10 :

print("J'ai la moyenne !")

if note > 17 :

print("Et je suis au top !") # Ligne indentée 2 fois !

else :

print("Il faut travailler davantage !")

Il est aussi possible de tester d'autres conditions, les unes à la suite des autres, avec le mot-clé elif qui est une contraction de "else if" (sinon si).

Exemple 3 :

note = int(input("Entrez votre note : "))


if note >= 16 :

print("C'est très bien !")

elif note >= 12 :

print("C'est assez bien !")

else :

print("Il faut réviser davantage !")

Travail à faire :

  1. Recopier et exécuter les exemples précédents.

  2. Créer un programme qui demande la moyenne obtenue sur 20 au bac et donne la mention correspondante: "Très bien. Félicitations !" au dessus de 18/20, "Très bien" au dessus de 16/20, "Bien" au dessus de 14/20 et "Assez Bien" au dessus de 12/20.

  3. Sauvegarder votre programme dans le fichier mention_bac_prenom.py en remplaçant prenom par votre prénom sans accents.

  4. Faire vérifier par le professeur.

2. LES boucles

Boucle FOR

Une boucle FOR permet de répéter des instructions un certain nombre de fois. Ce nombre de répétitions est connu dès le départ, il s'agit d'une boucle bornée.

Exemple :

for n in range(5) :

print("La valeur de n est maintenant " + str(n))


print("C'est fini !")

La première ligne signifie : «pour chaque valeur de n allant de 0 à 4 » faire les instructions suivantes.

La variable n prend successivement à chaque répétition de la boucle, les valeurs 0, puis 1, puis 2, etc... jusqu'à 4.

Pour en savoir plus sur la fonction range() de python, consultez sa documentation en ligne. Il ne faut pas hésiter à faire une recherche en ligne pour obtenir des informations sur une fonction.

Travail à faire :

  1. Écrire un programme qui utilise une boucle for. Votre programme doit demander un nombre entier positif n à l'utilisateur et afficher le résultat suivant, avec n points sur la dernière ligne.

.

..

...

....

.....

  1. Sauvegarder votre programme dans le fichier points_for_prenom.py en remplaçant prenom par votre prénom sans accents.

  2. Faire vérifier par le professeur.

Boucle WHILE

Une boucle WHILE permet de répéter des instructions tant qu'une condition est vraie. Le nombre de répétitions n'est pas connu dès le départ, il s'agit d'une boucle non-bornée.

Exemple :

n = int(input("Combien de fois ? "))


while n > 0 :

n = n - 1

print("Il reste " + str(n) + " passages dans la boucle.")


print("C'est fini !")

Attention à bien modifier la condition à l'intérieur de la boucle pour éviter de tomber dans une boucle infinie. Dans l'exemple précédent, on modifie n dans la boucle grâce à l'instruction n = n - 1. Ainsi, lorsque n devient nul, on ne peut plus rester dans la boucle puisque la condition d'entrée est devenue fausse n > 0).

Pour stopper une boucle infinie, il faut stopper l'exécution du programme (croix rouge) et/ou réinitialiser le moteur python. (Pour pyzo : Menu déroulant au dessus de la console / new shell. Pour EduPython : Menu Exécuter / Moteur Python / Réinitialiser).

Travail à faire :

  1. Écrire un programme qui utilise une boucle while. Votre programme doit demander un nombre entier positif n à l'utilisateur et afficher le résultat suivant, avec n points sur sa première ligne.

Aide : L'opérateur * est utilisable avec une chaine de caractères pour la répéter.

......

.....

....

...

..

.


  1. Sauvegarder votre programme dans le fichier points_while_prenom.py en remplaçant prenom par votre prénom sans accents.

  2. Faire vérifier par le professeur.

3. CREATION d'une fonction

Pour définir une nouvelle fonction, il faut utiliser :

  • le mot clé def suivi du nom de la fonction et ses arguments entre parenthèse. Il est impératif de terminer cette ligne par deux-points « : »,

  • l'indentation (décalage de 4 espaces) pour inclure des instructions dans la fonction.

  • le mot clé return suivi de ce que doit renvoyer la fonction.

Les fonctions sont utiles lorsqu'on veut pouvoir utiliser plusieurs fois un même bout de code. Une fois qu'une fonction est définie, il est possible de l'utiliser : on dit alors qu'on l'appelle.

Exemple :

def perimetre_rectangle(x, y) :

p = 2*x + 2*y

return p


p1 = perimetre_rectangle(2, 3) # Appel de la fonction

p2 = perimetre_rectangle(4, 1) # Appel de la fonction

Travail à faire :

  1. Recopier le code permettant de définir la fonction perimetre_rectangle(x, y) puis l'exécuter. Qu'est-ce qui s'affiche dans la console ?

  2. Utiliser la fonction print(...) pour afficher les deux périmètres p1 et p2 dans la console.

  3. Ajouter une nouvelle fonction aire(longueur, largeur) qui prend deux entiers longueur et largeur en argument et retourne l'aire du rectangle.

  4. À la suite de ces deux fonctions, demander à l'utilisateur de choisir la longueur et la largeur d'un rectangle (avec la fonction input) puis calculer son périmètre et son aire (en appelant les deux fonctions précédentes) et afficher les résultats dans la console (avec la fonction print) sous la forme d'une phrase.

  5. Sauvegarder votre programme dans le fichier rectangle_prenom.py en remplaçant prenom par votre prénom sans accents.

  6. Faire vérifier par le professeur.