NSI1 – Évaluation pratique n°1
Les bases de Python
30 minutes
Copier-coller l’intégralité de ce script dans votre IDE Python. Compléter le code manquant en vous aidant des commentaires.
Vous devez tester votre code avant que je ne corrige votre travail.
# Complétez le code ci-dessous pour répondre aux questions posées.
# 🖐 ne supprimez pas le code déjà existant
# Les endroits à compléter sont marqués par 🛑
import random
liste_mots = ["banane", "abricot", "pomme", "raisin",
"melon", "mangue", "chataigne", "peche", "kiwi"]
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
# Question 1 – input et print
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
print("––– Question 1 –––")
# Demandez à l’utilisateur son âge, stockez-le dans une variable
# Puis affichez dans la console : "Vous aurez 30 ans dans …"
# en indiquant le nombre d’années manquantes pour atteindre 30 ans
# On suppose que l’utilisateur entre toujours un âge "correct"
# 🛑 Demandez son âge à l'utilisateur (nombre entier) et
# stockez-le dans une variable 'age'
# 🛑 Affichez le message demandé (utilisez une f-string)
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
# Question 2 – Boucle for
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
print("\n––– Question 2 –––")
# Compléter les boucles for de manière à ce que
# mot1_contient_i et mot2_contient_i soit True si ces
# mots contiennent la lettre i.
# Sinon, ils doivent rester False
# À chaque exécution du programme, deux mots différents sont tirés au sort.
# Votre code doit fonctionner quel que soit le mot tiré !
# (Interdit d'écrire directement mot1_contient_i = True ou False à la main)
# Tirage au sort de deux mots dans la liste (ne pas modifier)
mot1 = random.choice(liste_mots)
mot2 = random.choice(liste_mots)
mot1_contient_i = False
mot2_contient_i = False
for lettre in mot1:
pass # 🛑 remplacer cette commande par le code nécessaire
for lettre in mot2:
pass # 🛑 remplacer cette commande par le code nécessaire
print(f"{mot1} contient i : {mot1_contient_i}")
print(f"{mot2} contient i : {mot2_contient_i}")
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
# Question 3 : Boucle while
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
print("\n––– Question 3 –––")
# Écrivez une boucle while qui simule le lancer d’un dé à 6 faces
# (random.randint(1, 6)) jusqu’à obtenir un 6.
# Comptez et affichez le nombre de lancers nécessaires.
de = 0
nb_lancers = 0
# 🛑 À compléter avec le code nécessaire
print(f"6 obtenu en {nb_lancers} lancer(s).")
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
# Question 4 : Fonction qui compte les voyelles
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
print("\n––– Question 4 –––")
# Définissez une fonction compter_voyelles(mot) qui prend une chaîne
# de caractères en paramètre et RENVOIE le nombre de voyelles (a, e, i, o, u, y).
def compter_voyelles(mot):
pass # 🛑 À remplacer
# --- Tests automatiques (ne rien modifier) ---
print(f"Voyelles dans 'python' : {compter_voyelles('python')} (attendu : 2)")
print(f"Voyelles dans 'banane' : {compter_voyelles('banane')} (attendu : 3)")
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
# Question 5 : Fonction qui applique une réduction
# –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
print("\n––– Question 5 –––")
# Définissez une fonction prix_remise(prix) qui :
# - RENVOIE (avec return, pas de print !) prix * 0.8 si prix >= 50
# - RENVOIE le prix inchangé sinon.
def prix_remise(prix):
pass # 🛑 À remplacer
# --- Tests automatiques ---
print(f"prix_remise(30) = {prix_remise(30)} (attendu : 30)")
print(f"prix_remise(100) = {prix_remise(100)} (attendu : 80.0)")