Skip to content
Snippets Groups Projects
Commit c40cfd5b authored by Edoardo Basilico (EDU-GE)'s avatar Edoardo Basilico (EDU-GE)
Browse files

Ajout du chapitre 3 sur les fonctions simples sans paramètres et sans retour....

 Ajout du chapitre 3 sur les fonctions simples sans paramètres et sans retour. En cours de création. Ajout de deux images pour ce chapitre.
parent 791e41b7
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# EN COURS D'ECRITURE - BROUILLON - BROUILLON - BROUILLON !!!
%% Cell type:markdown id: tags:
<div class = "alert alert-danger">
Attention: **veillez à bien sauvegarder votre travail** dans le bon dossier du disque réseau (dossier document) avec le bon nom (et l'extension *.ipynb*), **sinon toutes les modifications seront perdues!**
Pour reprendre votre travail, il suffit d'ouvrir le fichier .ipynb en cliquant sur *Fichier ouvrir*
</div>
%% Cell type:markdown id: tags:
# 3 Fonctions Python (sans paramètre et sans retour)
Dans ce chapitre, nous allons apprendre à utiliser des fonctions Python qui ne prennent pas de paramètre et ne retournent aucune valeur. Ces fonctions spécificiques sont appelées **procédures**.
### Pourquoi utiliser des fonctions ?
- Elles permettent de regrouper des instructions sous un même nom afin de rendre le code plus lisible et réutilisable.
- D’éviter les répétitions de code.
- De décomposer un programme complexe en une série de sous-programmes plus simples.
- De mieux structurer un programme.
- La réutilisation. Une même fonction peut être utilisée dans différents programmes.
### Structure de base d'une fonction en Python :
```python
def nom_de_la_fonction(): # Création de la fonction
# bloc d'instructions
nom_de_la_fonction() # Appel de la fonction
```
#### Exemple :
Voici un exemple de fonction qui affiche un message simple :
%% Cell type:code id: tags:
```
def bonjour():
print("Hello tout le monde !")
bonjour()
```
%% Cell type:markdown id: tags:
Lorsque la fonction est appelée, elle est exécutée.
Prenons le temps de comprendre les fonctions. **Prenez le temps de lire la théorie suivante:**
%% Cell type:markdown id: tags:
### La définition et le corps de la fonction
Le **corps** d'une fonction est le bloc d'instructions qui se trouve dans la définition de la fonction. C'est là où l'on décrit **ce que fait la fonction** lorsque celle-ci sera appelée.
#### Reprenons l'exemple précédent :
```python
def bonjour():
print("Hello tout le monde !")
```
Dans cet exemple:
- le mot réservé `def`, permet de définir une fonction. C'est vous qui décidez du nom qu'elle portera. Dans notre exemple, il s'agit de bonjour. Notez les parenthèses ouverte et fermé qui suit le nom d'une fonction. (On étudiera dans une autre chapitre leur raison d'être.)
- Soyez attentif au `:`, qui signifie qu'il y a un bloc indenté qui va suivre.
- le corps de la fonction `bonjour` est la ligne :
```python
print("Bonjour tout le monde !")
```
Avez-vous remarqué l'indentation de cette ligne ?
Comme pour la boucle for, il faut indiquer à python ce qui fait partie de la fonction.
%% Cell type:markdown id: tags:
### L'appel de la fonction
L'**appel** d'une fonction est le moment où l'on **exécute** la fonction, c'est-à-dire qu'on demande à Python d'exécuter le corps de la fonction.
#### Exemple d'appel :
```python
bonjour()
```
Lorsque nous appelons `bonjour()`, Python va exécuter le bloc d'instructions à l'intérieur de la fonction et afficher "Hello tout le monde !".
![Image de la fonction bonjour](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap3/fonction_bonjour.png)
%% Cell type:markdown id: tags:
<h3 style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-question" aria-hidden="true"> </i> &nbsp; Quizz </h3>
Que se passe-t'il si on appelle deux fois à la suite la fonction bonjour? C'est-à-dire:
```python
bonjour()
bonjour()
```
%% Cell type:markdown id: tags:
<details>
<summary style="border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8">
Réponse
</summary>
<div style="border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8">
La fonction va s'exécuter deux fois car elle est appelée deux fois.
Vérifier en exécutant le code suivant.
</div>
</details>
%% Cell type:code id: tags:
```
def bonjour():
print("Hello tout le monde !")
bonjour()
bonjour()
```
%% Cell type:markdown id: tags:
Modifier le code pour que la fonction soit appelé trois fois.
Est-il possible d'utiliser une boucle for ? Si oui, modifiez le code en utilisant une boucle for.
%% Cell type:markdown id: tags:
### Différence entre la définition/corps et l'appel d'une fonction
- Le **corps** d'une fonction contient les **instructions** qui seront exécutées lorsque la fonction sera appelée. C'est la partie définie avec `def`.
- L'**appel** de la fonction est le moment où on **déclenche l'exécution** des instructions définies dans le corps de la fonction.
%% Cell type:markdown id: tags:
### Métaphore pour mieux comprendre
Imaginez qu'une fonction est comme une recette de cuisine :
- **Le corps de la fonction** est la liste des étapes à suivre pour préparer un plat (les instructions détaillées).
- **L'appel de la fonction** est le moment où vous décidez de suivre cette recette pour préparer le plat.
Sans l'appel de la fonction, le corps de la fonction ne sera pas exécuté, tout comme une recette ne produira pas de plat si personne ne la suit.
%% Cell type:markdown id: tags:
<h3 style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-question" aria-hidden="true"> </i> &nbsp; Quizz </h3>
```
Comment exécuter la fonction bonjour créée précédemment?
A) def bonjour()
B) def bonjour
C) bonjour
D) bonjour()
E) def bonjour():
```
%% Cell type:markdown id: tags:
<details>
<summary style="border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8">
Réponse
</summary>
<div style="border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8">
D) bonjour()
Il faut appeler la fonction. Mais n'oubliez pas de la créer auparavant.
</div>
</details>
%% Cell type:markdown id: tags:
## Exemple d'utilisation de Turtle avec des fonctions
Nous allons maintenant utiliser le module `turtle` pour créer des dessins simples en utilisant des fonctions.
### Exercice 1 : Dessiner un carré
Modifiez le code suivant pour créer une fonction nommé: ``Dessine_carré`` et ensuite appelez cette fonction. Inspirez-vous de l'exemple de la fonction bonjour.
%% Cell type:code id: tags:
```
# Importation du module turtle
from turtle import *
for _ in range(4):
forward(100)
left(90)
done()
```
%% Cell type:markdown id: tags:
### Exercice 2 : Dessiner deux carrés
Écrivez une procédure `dessiner_triangle` qui dessine un triangle équilatéral.
Modifiez le code suivant pour afficher deux carrés.
![Image de deux carrés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap3/deux_carres.png)
%% Cell type:markdown id: tags:
### Exercice 1 : Dessiner un triangle
Écrivez une procédure `dessiner_triangle` qui dessine un triangle équilatéral.
Indice : Utilisez une boucle et rappelez-vous que les angles internes d'un triangle équilatéral sont de 60 degrés.
### Exercice 2 : Dessiner un pentagone
Écrivez une procédure `dessiner_pentagone` qui dessine un pentagone. Vous aurez besoin de tourner la tortue de 72 degrés (360/5) à chaque étape.
### Exercice 3 : Dessiner une étoile
Essayez d'écrire une procédure `dessiner_etoile` qui dessine une étoile à 5 branches. Cela peut être un peu plus difficile, mais c'est un excellent exercice pour comprendre les angles !
Notebooks/imgs_chap3/deux_carres.png

1.37 KiB

Notebooks/imgs_chap3/fonction_bonjour.png

439 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment