Ajoute TP1 Python CIEL2
This commit is contained in:
parent
840b8d5fa4
commit
afecc46ce3
15 changed files with 496 additions and 95 deletions
|
|
@ -89,7 +89,7 @@ En utilisant la [documentation du module `math`](https://docs.python.org/3/libra
|
|||
|
||||
1. Donnez les expressions qui permettront de calculer :
|
||||
- la racine carrée de 81
|
||||
- la valeur absolue de -12
|
||||
- la valeur absolue de -12 (celle-ci n'est pas dans `math` mais existe par défaut)
|
||||
- la valeur de $\pi$
|
||||
- le cosinus de $\pi$
|
||||
- la partie entière de 3.56
|
||||
|
|
@ -168,7 +168,7 @@ Les variables peuvent contenir differents types de données. Nous avons surtout
|
|||
4. Affecter la valeur `"<votre prénom>"` à une variable `prenom` et donnez son type.
|
||||
5. Ecrivez `age = '85'` (Attention aux guillemets) dans l'interpréteur. Donnez le type de `age`.
|
||||
6. Ecrivez maintenant `age * 2`. Que se passe-t-il ? comment se comporte l'opérateur `*` lorsqu'il est utilisé avec des chaînes de caractères ?
|
||||
7. Donnez une expression permettant d'affecter le *texte* `'21'` à la variable "mon_age_str" en utilsant uniquement la variable `mon_age` (question 1) et la fonction `str`. Utilisez la fonction type pour vérifier. Qu'en déduisez-vous sur la fonction `str` ?
|
||||
7. Donnez une expression permettant d'affecter le *texte* `'21'` à la variable `mon_age_str` en utilsant uniquement la variable `mon_age` (question 1) et la fonction `str`. Utilisez la fonction type pour vérifier. Qu'en déduisez-vous sur la fonction `str` ?
|
||||
8. De même donnez une expression permettant de d'affecter le *nombre* 85 à la variable `age_int` en utilisant uniquement `age` (question 6) et la fonction `int`. Qu'en déduisez-vous sur ce que fait la fonction `int` ?
|
||||
```
|
||||
|
||||
|
|
@ -182,7 +182,7 @@ Voici un tableau recensant les principaux types de base de Python
|
|||
| bool | Booléen : une valeur pouvant être soit vraie soit fausse | `True` ou `False` |
|
||||
| str | Chaîne de caractères : des caractères qui se suivent pour représenter du texte | `'Hello !'` |
|
||||
|
||||
Les chaînes de caractères peuvent s'écrire avec des guillemets simples `'` (touche <kbd>4</kbd>) (qui est aussi utilisé en apostrphe en français) ou des guillemets doubles `"` (touche <kbd>3</kbd>).
|
||||
Les chaînes de caractères peuvent s'écrire avec des guillemets simples `'` (touche <kbd>4</kbd>) (qui est aussi utilisé en apostrophe en français) ou des guillemets doubles `"` (touche <kbd>3</kbd>).
|
||||
|
||||
Vous pourrez utiliser des `"` lorsque que votre chaîne contiendra des `'` et inversement. Exemples:
|
||||
- `"J'aime les spaghettis"`
|
||||
|
|
@ -338,7 +338,7 @@ Dans un nouveau fichier que vous appellerez `tp-01-conditions.py`
|
|||
|
||||
4. **Bonus :** Imaginons maintenant que l'on ait une autre variable, `annees_de_cotisation`. À partir de 60 ans, si on a 40 années de cotisation, on peut prendre la retraite. Sinon, il faut atteindre 40 années de cotisation.
|
||||
|
||||
Nous allons donc devoir rajouter une condition supplémentaire pour les personnes ayant plus de 60 ans, en fonction de la variable `annee_cotisation`. Rajoutez cette variable, et rajoutez une **condition imbriquée** dans la branche qui concerne les plus de 60 ans.
|
||||
Nous allons donc devoir rajouter une condition supplémentaire pour les personnes ayant plus de 60 ans, en fonction de la variable `annee_cotisation`. Rajoutez cette variable, et rajoutez une **condition imbriquée** dans la branche qui concerne les plus de 60 ans.
|
||||
```
|
||||
|
||||
```admonish success title='À retenir'
|
||||
|
|
@ -357,7 +357,7 @@ else:
|
|||
- Le mot-clé `elif` permet de rajouter des conditions. On peut en mettre autant que l'on veut. Il est optionnel.
|
||||
- Le mot-clé `else` permet de gérer tous les cas qui n'entrent pas dans les précédentes conditions. Il est forcément en dernier et est optionnel.
|
||||
- Il est important de ne pas oublier
|
||||
- Le symbole `:` à la fin de chaque ligne
|
||||
- Le symbole `:` à la fin de chaque ligne commençant par `if`, `elif` ou `else`
|
||||
- D'indenter votre code, pour indiquer à python ce qui est concerné par une condition.
|
||||
- Ne pas indenter correctement un code python est une **erreur de syntaxe**, c'est à dire que le code n'est pas valide et ne pourra pas s'exécuter
|
||||
```
|
||||
|
|
|
|||
|
|
@ -213,25 +213,10 @@ Si on reprend le code de la partie précédente, on voit qu'il permet d'afficher
|
|||
~~~
|
||||
Que fait l'instruction `return` selon vous ? N'hésitez pas à expérimenter
|
||||
2. Donnez le code permettant d'affecter le résultat de la fonction à une variable pour ensuite l'afficher. Vous pourrez calculer l'aire d'un carré de côté 3m pour cet exemple.
|
||||
3. Modifiez la fonction comme suit :
|
||||
~~~python
|
||||
def aire_carre(cote):
|
||||
aire = cote * cote
|
||||
print("Avant return")
|
||||
return aire
|
||||
print("Après return")
|
||||
~~~
|
||||
Exécutez la fonction. Que se passe-t-il ? Pourquoi à votre avis ?
|
||||
|
||||
Vous pouvez retirer les deux lignes `print` pour la suite.
|
||||
4. Modifiez la fonction comme suit:
|
||||
~~~python
|
||||
def aire_carre(cote):
|
||||
aire = cote * cote
|
||||
return
|
||||
~~~
|
||||
1. Affectez le résultat de la fonction à une variable, puis affichez cette variable. Quelle valeur a la variable ? pourquoi ?
|
||||
1. Retirez la ligne return et recommencez. Est-ce que cela change quelque chose ?
|
||||
1. Expérimentez pour répondre aux questions suivantes. Donnez le code utilisé à chaque fois.
|
||||
a. Que retourne une fonction qui utilise l'instruction `return` sans préciser de valeur ?
|
||||
b. Que se passe-t-il si une instruction se trouve après l'instruction `return` dans votre fonction ?
|
||||
c. Que retourne une fonction qui n'a pas d'instruction `return` ?
|
||||
1. Nous voulons maintenant que notre fonction renvoie l'aire **et** le périmètre d'un carré. Pour cela, modifions la fonction comme suit.
|
||||
~~~python
|
||||
def carre(cote):
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
from random import randint
|
||||
from math import ceil
|
||||
|
||||
def miser(argent_restant):
|
||||
numero = choisir_nombre()
|
||||
mise = miser_argent(argent_restant)
|
||||
return numero, mise
|
||||
|
||||
def choisir_nombre():
|
||||
nombre = -1
|
||||
while not (0 <= nombre <= 49):
|
||||
nombre = int(input("Choisissez un nombre (0-49) : "))
|
||||
if not (0 <= nombre <= 49):
|
||||
print("Erreur : le nombre doit être compris entre 0 et 49")
|
||||
return nombre
|
||||
|
||||
def miser_argent(argent_restant):
|
||||
mise = -1
|
||||
while not (0 < mise <= argent_restant):
|
||||
mise = int(input(f"Choisissez votre mise (argent disponible : {argent_restant}) : "))
|
||||
if not (0 < mise <= 49):
|
||||
print(f"Erreur : la mise doit être comprise entre 1 et {argent_restant}")
|
||||
return mise
|
||||
|
||||
def tourner_la_roulette():
|
||||
numero = randint(0, 49)
|
||||
print(f"Le croupier tourne la roulette. Le numéro {numero} est le numéro gagnant !")
|
||||
return numero
|
||||
|
||||
def calculer_gains_couleur(mise):
|
||||
return ceil(mise*0.5)
|
||||
|
||||
def calculer_gains_numero(mise):
|
||||
return mise * 3
|
||||
|
||||
def continuer_de_jouer(argent):
|
||||
if argent <= 0:
|
||||
print("Vous êtes ruiné.e. C'est la fin de la partie.")
|
||||
return False
|
||||
else:
|
||||
print(f"Il vous reste {argent}")
|
||||
rejouer = input("Souhaitez-vous continuer ? (o/n)")
|
||||
if rejouer == "o" or rejouer == "O":
|
||||
return True
|
||||
else:
|
||||
print(f"Vous quittez le jeu avec {argent}")
|
||||
return False
|
||||
|
||||
argent = 100
|
||||
continuer = True
|
||||
|
||||
while continuer:
|
||||
gains = 0
|
||||
numero_misé, mise = miser(argent)
|
||||
|
||||
numero_gagnant = tourner_la_roulette()
|
||||
if numero_misé == numero_gagnant:
|
||||
gains = calculer_gains_numero(mise)
|
||||
print(f"Bravo, vous avez misé sur le numéro gagnant. Vous gagnez {gains}")
|
||||
elif numero_misé % 2 == numero_gagnant % 2:
|
||||
gains = calculer_gains_couleur(mise)
|
||||
print(f"Bravo, vous avez misé sur la bonne couleur. Vous gagnez {gains}")
|
||||
else:
|
||||
gains = -mise
|
||||
print(f"Dommage, vous avez perdu votre mise : {mise}")
|
||||
|
||||
argent += gains
|
||||
continuer = continuer_de_jouer(argent)
|
||||
|
||||
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
from math import ceil
|
||||
from random import randint
|
||||
#TODO
|
||||
|
||||
def miser(jetons_restants):
|
||||
nombre = choisir_nombre()
|
||||
Loading…
Add table
Add a link
Reference in a new issue