Physique-Chimie & NSI

Cours complets et originaux de Physique-Chimie & NSI

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)")