Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • info_sismondi/exercices-1ere
1 result
Select Git revision
Show changes
Commits on Source (2)
%% Cell type:markdown id: tags:
<div style="padding:20px;background-color:papayawhip;" >
<h3 style="color:chocolate"> <i class="fa fa-info" aria-hidden="true"> </i> &nbsp; Remarque introductive &nbsp; <i class="fa fa-info" aria-hidden="true"></h3>
<p> Ce fichier est fait pour être lu sur le site <a href="https://notebook.basthon.fr/"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style="border: 0; display:inline; margin: 0 5px; height:30px" alt="Basthon"/></a>. <br>
Si vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>
Veuillez cliquez sur <a href="https://notebook.basthon.fr/">ce lien</a> et y charger ce fichier à l'aide du bouton "Ouvrir" &nbsp; <i class="fa fa-folder" aria-hidden="true"> </i>
</p> </div>
%% Cell type:markdown id: tags:
# 6 - Les Conditions, partie 1
Dans ce chapitre, nous allons voir comment un programme peut faire des choix, et comment il peut exécuter du code de façon sélective.
<blockquote class="alert alert-info" style="background-color:rgb(220,240,255); margin:10px 10%;">
<p><span style="font-size:1.5em"></span> C'est quoi une instruction conditionnelle? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'instruction conditionnelle</p>
</blockquote>
<iframe width="560" height="315" src="https://www.youtube.com/embed/c0cm031r_eo?si=Apy9aC8a9HoHcHfv" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
%% Cell type:markdown id: tags:
## I) Comparaisons
Un programme doit parfois comparer deux valeurs.
Python connait six types de comparaisons :
- plus petit (`<`),
- plus petit ou égal (`<=`),
- égal (`==`),
- différent (`!=`),
- plus grand (`>`),
- plus grand ou égal (`>=`).
Dans des formules mathématiques nous utilisons les symboles ≤, ≥ et ≠. En Python vous devez utiliser deux symboles: `<=`, `>=` et `!=` à la place.
Le résultat d'une comparaison est une valeur **booléenne**, soit `True` (vrai) soit `False` (faux).
**Remarque** Il est impossible de comparer des données de différentes nature (par exemple une chaîne de caractère avec un nombre)
%% Cell type:markdown id: tags:
<h3 style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-question" aria-hidden="true"> </i> &nbsp; Quizz </h3>
Qu'affiche le programme suivant
%% Cell type:code id: tags:
``` python
print("10" > 2)
```
%% 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"> Une erreur car il est impossible de comparer la chaîne de caractère "10" (type str) avec le nombre 2 (type int).
</div>
</details>
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 2 </h3>
1. Remplace les `...` de chaque commentaire avec la valeur qui devrait être affichée.
*Indication: chaque print affiche un `bool` : `True` ou `False`*
%% Cell type:code id: tags:
``` python
a = 5
b = 18
c = 12.3
mot1="Hello"
mot2="World"
# L'instruction suivante va afficher ...
print(a > b)
# L'instruction suivante va afficher ...
print(b//a == 3)
# L'instruction suivante va afficher ...
print(b%a == 3)
# L'instruction suivante va afficher ...
print(a - b > 2)
# L'instruction suivante va afficher ...
print(type(c) == float)
# L'instruction suivante va afficher ...
print(mot1 != mot2)
# L'instruction suivante va afficher ...
print(mot1 < mot2)
# L'instruction suivante va afficher ...
print(mot1 > 2)
# L'instruction suivante va afficher ...
print("a" > "b")
```
%% Cell type:markdown id: tags:
2. Exécute le programme ci-dessus et corrige, si besoin, les commentaires afin qu'ils correspondent aux valeurs affichées
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 2 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.
%% Cell type:code id: tags:
``` python
# Variable x
x = 3
print('x =', x)
# 6 exemples de comparaisons
print('(x < 2) =', x < 2)
```
%% Cell type:markdown id: tags:
<h3 style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-question" aria-hidden="true"> </i> &nbsp; Quizz </h3>
L'expression `x == 2` :
A) <input type="checkbox" > met la valeur 2 dans la variable x
B) <input type="checkbox" > compare deux valeurs
C) <input type="checkbox" > affecte la variable x avec une valeur
D) <input type="checkbox" > retourne True ou False
%% 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) retourne True ou False
</div>
</details>
%% Cell type:markdown id: tags:
!!! warning
Il ne faut pas confondre l'opérateur d'affectation (`x = 2`) avec l'opérateur de comparaison (`x == 2`)
!!!
<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 vous échangez les deux éléments dans `x == 2` ?
Et si vous échangez les deux éléments dans `x = 2` ?
Essayer pour voir...
%% Cell type:code id: tags:
``` python
x = 2 # affectation
x == 2 # comparaison
```
%% Cell type:raw id: tags:
Ma réponse :
%% 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">Si on écrit 2 = x à la place de x = 2 il y aura une erreur car on ne peut affecter x à 2. Dans l'autre cas, c'est égal de tester si x est égal à 2 (x==2) ou de tester si 2 est égal à x (2==x)
</div>
</details>
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
## II) Conditions (`if`)
Afin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.
Nous allons voir que :
- le mot-clé `if` permet une exécution conditionnelle,
- le mot-clé `if-else` permet de choisir entre deux alternatives,
- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.
%% Cell type:markdown id: tags:
### Exécution conditionnelle `if`
La structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.
``` python
if condition:
action
```
#### Exemple
Le programme suivant demande la moyenne générale obtenue au premier semestre est affiche `Bravo, tu peux faire un extra-muros!")` si la moyenne est supérieure ou égale à 5.3.
%% Cell type:code id: tags:
``` python
n = float(input("Quelle est ta moyenne générale au premier semestre: "))
if n >= 5.3 :
print("Bravo, tu peux faire un extra-muros!")
```
%% Cell type:markdown id: tags:
<h3 style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-question" aria-hidden="true"> </i> &nbsp; Quizz </h3>
En Python, `if` est suivi
A) <input type="checkbox" > d'un bloc
B) <input type="checkbox" > d'une condition
C) <input type="checkbox" > de parenthèses
D) <input type="checkbox" > d'un deux-points
%% 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">B) d'une condition (Et ensuite de D), un deux-points)
</div>
</details>
%% Cell type:markdown id: tags:
### Choix binaire `if - else`
La structure `if - else` ci-dessous permet d'exécuter une **action_1** seulement si une **condition** est vraie et une **action_2** sinon :
``` python
if condition:
action_1
else:
action_2
```
#### Exemple 1
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :
%% Cell type:code id: tags:
``` python
n = int(input('Entrez un nombre: '))
if n >= 0:
print('positif')
else:
print('négatif')
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 3 </h3>
1. Complètez le programme ci-dessous qui affiche `C'est un triangle rectancle` ou `Ce n'est pas un triangle rectancle` en fonction des longeurs des côtés du triangle rentré.
2. Testez votre programme pour vérifier si le triangle où a=9, b=12 et c= 15 est un triangle rectangle.
*Rappel : Selon la réciproque du théorème de Pythagore, un triangle de longeur $a$, $b$ et $c$ ($c$ le plus grand côté) est rectangle si $a^2+b^2=c^2$*
%% Cell type:code id: tags:
``` python
a = float(input("La longeur du côté a vaut : "))
b = float(input("La longeur du côté a vaut : "))
c = float(input("La longeur du côté a vaut : "))
b = float(input("La longeur du côté b vaut : "))
c = float(input("La longeur du côté c vaut : "))
if ... :
print("...")
else:
print("...")
```
%% Cell type:raw id: tags:
Le triangle où a=9, b=12 et c= 15 est-il un triangle rectangle?
Réponse :
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 4 </h3>
Complétez le programme qui demande son âge à l'utilisatrice et affiche `vous êtes majeure` si elle est mineure ou `vous êtes mineure` dans le cas contraire.
*Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.*
%% Cell type:code id: tags:
``` python
age = int(input("Bonjour, quel est votre âge ?"))
```
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
### Choix multiple (`if - elif - else`)
Le mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions :
``` python
if condition1 :
action_1
elif condition2 :
action_2
else:
action_3
```
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :
%% Cell type:code id: tags:
``` python
n = int(input('Entrez un nombre: '))
if n > 0:
print('positif')
elif n < 0:
print('négatif')
else:
print('zéro')
```
%% Cell type:markdown id: tags:
Sans le mot-clé `elif` nous devrions mettre le bloc `if` à l'intérieur du bloc `else` en indentation.
Avec multiples conditions, les blocs se décalent de plus en plus et rendent le programme illisible, comme ci-dessous.
%% Cell type:code id: tags:
``` python
# !!! Exemple à éviter !!!!
n = int(input('Entrez un nombre: '))
if n > 0:
print('positif')
else:
if n < 0:
print('négatif')
else:
print('zéro')
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 5 </h3>
Pour chacun des programme:
1. Sans exécuter les programme, donnez la valeur des variables demandées.
2. Vérifier votre réponse en ajoutant un print à la fin des programmes et en les éxecutants.
**Programme A**
%% Cell type:code id: tags:
``` python
# Programme A
a = 7
b = 12
if a > 5:
b = b - 4
if b >= 8:
b = b + 1
```
%% Cell type:raw id: tags:
La variable b vaut :
%% Cell type:markdown id: tags:
**Programme B**
%% Cell type:code id: tags:
``` python
# Programme B
a = 7
b = 12
if a > 5:
b = b - 4
elif b >= 8:
b = b + 1
```
%% Cell type:raw id: tags:
La variable b vaut :
%% Cell type:markdown id: tags:
**Programme C**
%% Cell type:code id: tags:
``` python
# Programme C
a = 7
b = 12
if a > 5:
b = b - 4
else:
b = b + 1
```
%% Cell type:code id: tags:
``` python
La variable b vaut :
```
%% Cell type:markdown id: tags:
**Programme D**
%% Cell type:code id: tags:
``` python
# Programme D
a = 10
if a < 5:
a = 20
elif a < 100:
a = 500
else:
a = 0
```
%% Cell type:raw id: tags:
La variable a vaut :
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 6 </h3>
Les programmes suivants sont-ils valides (on ne demande pas ce qu’ils font) ? S’ils sont invalides, corrigez les.
**Programme A**
%% Cell type:code id: tags:
``` python
a = 10
if a == 5:
a = 2
```
%% Cell type:markdown id: tags:
**Programme B**
%% Cell type:code id: tags:
``` python
a = 10
elif a == 5:
a = 2
```
%% Cell type:markdown id: tags:
**Programme C**
%% Cell type:code id: tags:
``` python
a = 10
if a = 5:
a == 2
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 7 </h3>
1. Complétez le programme ci-dessous qui demande à l'utilisateur·ice les coefficients d'une équation du second degré $ax^2+bx+c=0$ et qui affiche les solutions.
2. Testez votre programme sur les équations $5x^2-5x-15=0$, $5x^2-5x+15=0$ et $10x^2-20x+10=0$.
%% Cell type:markdown id: tags:
!!! info utiliser des fonctions mathématiques comme la fonction racine carrée $\sqrt{x}$.
Pour calculer la racine carrée d'un nombre $\sqrt{x}$, il faut utiliser la fonction `sqrt` du module `math`. Pour ce faire, votre programme doit commencer par `from math import sqrt` (pour importer la fonction `sqrt` du module `math`). Pour l'utiliser, il suffit de mettre la valeur dont on veut trouver la racine en argument de la fonction `sqrt`. Par exemple, l'instruction `print(sqrt(25))` affichera 5.
!!!
%% Cell type:code id: tags:
``` python
a = ...(input("Entrer le coefficient a = "))
b = ...(input("Entrer le coefficient a = "))
c = ...(input("Entrer le coefficient a = "))
delta = ...
if ... :
x1 = ...
x2 = ...
print("Deux solutions, x1= ",x1, "; x2 = ", x2)
elif ... :
x = ...
print("...")
else :
print("...")
```
%% Cell type:raw id: tags:
Quel est l'ensemble des solution de 5x²-5x-15=0?
Réponse: S = ...
Quel est l'ensemble des solution de 5x²+5x+15=0=0?
Réponse: S = ...
Quel est l'ensemble des solution de 10x²-20x+10=0?
Réponse: S = ...
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 8 </h3>
Écrivez un programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré de dimension 100, puis qui fait le bon dessin.
%% Cell type:code id: tags:
``` python
from turtle import *
done()
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 9 </h3>
Définissez une fonction `temperature()` qui prend en paramètre une température entre -20 et 50 et affiche si cette température est :
* glaciale
* froide
* normale
* chaude
* bouillante
(à vous de choisir les bornes de chaque catégorie)
%% Cell type:code id: tags:
``` python
def temperature(t):
...
temp = int(input("Entrez une température entre -20 et 50 : "))
temperature(temp)
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 10 </h3>
Définissez une fonction `compare` qui prend en paramètres deux nombres `a` et `b`, puis qui dit lequel est le plus grand :
- si le premier nombre est plus grand que le deuxième, le programme affichera « Le premier ! »
- si le deuxième nombre est plus grand que le premier, le programme affichera « Le deuxième ! »
- s'ils sont égaux, le programme affichera « Ils sont égaux. ».
Testez-la avec deux nombres de votre choix.
%% Cell type:code id: tags:
``` python
# programme à compléter
```
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 11 </h3>
Corrigez le programme suivant :
%% Cell type:code id: tags:
``` python
age == 18
revenu == 25000
if age >= 18
if revenu < 25000
print("Vous êtes éligible à la subvention.")
elif revenu < 26000
print("Vous êtes presque éligible à la subvention, vous gagnez 1'000.- de trop.")
else:
print("Vous n'êtes pas éligible à cause de vos revenus trop élevés.")
else:
if revenu < 25000
print("Vous n'êtes pas éligible à cause de votre âge, mais le seriez si vous étiez majeur·e.")
else:
print("Vous n'êtes pas éligible à cause de vos revenus trop élevés et de votre âge.")
```
......