Révisions - Fonctions#
En programmation, une fonction est un bloc de code (suite d'instructions) qui réalise une tâche. Nous en avons déjà rencontré plusieurs:
print(...)affiche ce qui est entre parenthèses sur la console.
input(...)demande à l'utilisateur d'entrer une donnée.
int(...)convertit ce qui est entre parenthèses en nombre entier.
float(...)convertit ce qui est entre parenthèses en nombre à virgule.
range(...)renvoie une liste de nombre (de 0 à la valeur entre parenthèses -1).
Toutes les fonctions ci-dessus sont des fonctions intégrées, elles ont été prédéfinies pour nous. Nous n'avons qu'à les utiliser, sans nous soucier de comment elles ont été programmées.
Pour éviter de répéter du code et rendre le code plus lisible, il est utile de pouvoir définir nos propres fonctions. La syntaxe est la suivante:
# Définition de la fonction
def nom_de_la_fonction(paramètres):
instruction 1
instruction 2
...
# Appel de la fonction dans le programme
nom_de_la_fonction(paramètres)
Un paramètre (nom donné aux éléments notés entre parenthèses dans la définition de la fonction) permet de transmettre une valeur à une fonction afin de modifier son comportement.
Exercice 27#
Une fonction nommée salutations a été définie ci-dessous. Appelez cette
fonction dans le programme.
1def salutations():
2 print("Bonjour, comment vas-tu?")
3
4# Complétez l'appel de la fonction
5...
Solution
1def salutations():
2 print("Bonjour, comment vas-tu?")
3
4# Appel de la fonction
5salutations()
Exercice 28#
Une fonction nommée affiche_somme prend 2 paramètres numériques. Cette
fonction additionne les paramètres et affiche le résultat.
Appelez cette fonction 2 fois pour que le programme affiche le résultat de 4 + 9 et celui de de 3 + 7.
1def affiche_somme(a, b):
2 print(a + b)
3
4# Complétez l'appel de la fonction 2 fois
5...
Solution
1def affiche_somme(a, b):
2 print(a + b)
3
4# Appel de la fonction 2 fois
5affiche_somme(4, 9)
6affiche_somme(3, 7)
Exercice 29#
Que va afficher le programme?
Indiquez l'ordre d'exécution des lignes.
1def salutations(prenom):
2 print("Bonjour", prenom)
3
4def au_revoir():
5 print("Au revoir à tous!")
6
7salutations("Bob")
8salutations("Alice")
9au_revoir()
10print("Fin du programme")
Solution
Python va lire les lignes 1 et 4 (les déclaration des définitions de fonctions sans s'occuper du corps de la fonction).
L'ordre d'exécution des lignes est le suivant:
7-2-8-2-9-5-10
Exercice 30#
Qu'affiche le progamme suivant? Cochez la bonne réponse.
1def dessine_cochon():
2 print(" ^---^")
3 print("( 'o' )")
4 print("( u u )")
5
6def dessine_lapin():
7 print("(\\ _ /)")
8 print("( 'X' )")
9 print("c(\")(\")")
10
11def dessine_chat():
12 print(" /\\_/\\")
13 print("(=^.^=)")
14 print("(\")(\")_/")
15
16dessine_chat()
17print()
18dessine_lapin()
19print()
20dessine_cochon()
Exercice 31#
Créez un programme qui affiche un dessin choisi par l'utilisateur parmi trois dessins prédéfinis.
Définissez au moins une fonction qui dessine un animal, un personnage, objet, ... Pour les deux autres, vous pouvez copiez les idées de l'exercice 30.
Quelques idées ici: https://www.momsarefrommars.com/cute-keyboard-characters.html.Écrivez un programme qui demande à l'utilisateur de choisir entre trois possibilités et affichez le dessin correspondant. Demandez jusqu'à ce que la réponse de l'utilisateur soit valide.
Astuce
Pour comparer des chaînes de caractères, il est préférable de convertir la réponse en minuscule avant de la comparer, cela permet de réduire le nombre de tests.
- texte.lower()
retourne une nouvelle chaîne de caractères écrite en minuscules.
1reponse = input("Écrivez un mot avec des majuscules et des minuscules:")
2print("La réponse donnée est:", reponse)
3reponse_min = reponse.lower()
4print("La réponse en minuscules est", reponse_min)
1
Solution
1def dessine_cochon():
2 print(" ^---^")
3 print("( 'o' )")
4 print("( u u )")
5
6def dessine_lapin():
7 print("(\\ _ /)")
8 print("( 'X' )")
9 print("c(\")(\")")
10
11def dessine_chat():
12 print(" /\\_/\\")
13 print("(=^.^=)")
14 print("(\")(\")_/")
15
16choix = input("Quel animal voulez-vous dessinez entre chat, cochon et lapin?")
17choix = choix.lower()
18while choix != "chat" and choix != "cochon" and choix != "lapin":
19 choix = input("Choisissez chat, cochon ou lapin")
20 choix = choix.lower()
21if choix == "chat":
22 dessine_chat()
23elif choix == "lapin":
24 dessine_lapin()
25elif choix == "cochon":
26 dessine_cochon()
27# Ce cas ne devrait jamais se produire, car la boucle while vérifie la réponse
28else:
29 print("Il n'y a pas de dessin correspondant.")