Atelier 11 - Fonctions intégrées
Pratique
Numéro 1
Sans les exécuter, essayez de prédire le résultat de chacune des lignes suivantes. Certaines vont vous surprendre! Exécutez-les ensuite pour vérifier vos réponses.
import math
round(2.5)
round(0.5)
int(-7 / 2)
-7 // 2
math.floor(-3.5)
bool("False")
math.fmod(-7, 3)
-7 % 3
Numéro 2
Calculez l'aire d'un cercle en utilisant la valeur de pi du module math.
Exemple:
Entrez le rayon du cercle: 5
L'aire est de: 78.54
Numéro 3
En utilisant les fonctions du module math, calculez le nombre de chances de gagner le gros lot au tirage classique du loto 6/49.
Comment fonctionne le 6/49: 6 numéros sont tirés parmi les 49 disponibles. Si les 6 numéros sont sur votre billet vous gagnez le gros lot.
Petit défi: Afficher le nombre de chances de gagner en utilisant le séparateur de milliers français: l'espace
Exemple de résultat:
# Sans le défi:
Vous avez 1 chance sur 13,983,816 de gagner le 6/49
# Avec le défi:
Vous avez 1 chance sur 13 983 816 de gagner le 6/49
Numéro 4
Demandez un texte à l'utilisateur, sur ce texte:
- Transformez tout en minuscule
- Remplacez les lettres 'e' par des 'o'
- Retirez les lettre 'a'
- Doublez la consonne de votre choix
- Mettre la première lettre seulement en majuscule
Exemple de résultat:
Veuillez écrire quelque chose: Aujourd'hui il fait beau
Ujourrd'hui il fit bou
Numéro 5
Demandez un nombre à l'utilisateur. S'il donne un nombre multipliez le par deux. S'il donne autre chose, affichez un message d'erreur.
Attention, s'il répond 42 (notez les espaces devant le chiffre) vous devez accepter le nombre.
Exemple:
Veuillez saisir un nombre: 5
Le nombre doublé est: 10
Veuillez saisir un nombre: 2,3
Le nombre donné n'est pas valide
Numéro 6
Demandez un nombre entre 1 et 10 à l'utilisateur. Si l'entrée n'est pas valide, affichez le message d'erreur approprié et reposez la question, jusqu'à ce qu'un nombre valide soit entré:
- Si ce n'est pas un nombre entier valide: "Ce n'est pas un nombre entier valide"
- Si le nombre est plus petit que 1: "Le nombre doit être supérieur ou égal à 1"
- Si le nombre est plus grand que 10: "Le nombre doit être inférieur ou égal à 10"
Exemple:
Entrez un nombre entre 1 et 10: abc
Ce n'est pas un nombre entier valide
Entrez un nombre entre 1 et 10: -3
Le nombre doit être supérieur ou égal à 1
Entrez un nombre entre 1 et 10: 15
Le nombre doit être inférieur ou égal à 10
Entrez un nombre entre 1 et 10: 7
Vous avez entré: 7
Numéro 7
Reprendre le numéro 5 de l'atelier 4 du chapitre 2. Corrigez l'erreur d'arrondis lors du calcul des taxes.
Copie de l'énoncé du numéro 5 de l'atelier 4 du chapitre 2:
Demandez à l'utilisateur un nombre de produits et un prix unitaire. Affichez sur 2 décimales: Le sous-total, la TPS, la TVQ et le total.
Exemple (remarquez l'erreur d'arrondis):
Veuillez entrer un nombre de produits: 4
Veuillez entrer un prix unitaire: 9.99
Sous-total: 39.96
TPS: 2.00
TVQ: 3.99
Total: 45.94
Numéro 8
En utilisant le module random (et d'autres fonctions vues dans les notes de cours au besoin), générez et affichez:
- Un nombre entier aléatoire entre -10 et 10
- Un montant aléatoire entre 9.99$ et 19.99$, arrondi à 2 décimales
- Un booléen aléatoire (True ou False)
- Une chaîne de 5 lettres majuscules aléatoires
Exemple de résultat (vos valeurs seront différentes à chaque exécution):
Nombre: -3
Montant: 14.52$
Booléen: True
Chaîne: QXKPL
Analyse
Voici 3 problèmes accompagnés d'une solution déjà écrite (générée par une IA). Le numéro 9 contient un bug, les numéros 10 et 11 fonctionnent correctement mais pourraient être améliorés. Analysez chaque solution et expliquez ce qui pourrait être corrigé ou amélioré.
Numéro 9
Le solde d'un compte a varié de -18$ au total sur 7 jours. Le programme devrait afficher la moyenne arrondie vers le bas (-3), mais affiche -2.
total: int = -18
jours: int = 7
moyenne: int = int(total / jours)
print("Moyenne:", moyenne)
Numéro 10
Affichez le plus grand de 3 nombres.
a: int = 15
b: int = 42
c: int = 8
plusGrand: int
if a > b and a > c:
plusGrand = a
elif b > a and b > c:
plusGrand = b
else:
plusGrand = c
print("Le plus grand est:", plusGrand)
Numéro 11
Calculez l'écart entre un nombre cible et une tentative.
cible: int = 50
tentative: int = 37
ecart: int
if tentative > cible:
ecart = tentative - cible
else:
ecart = cible - tentative
print("Écart:", ecart)