Pluriel/singulier sur "essai"
Bonjour,
Sur la partie où on écrit le mot essai, je ne comprends la syntaxe de la condition, il n'y a pas les : après le 1 et le else. Comment sa fonctionne et dans quel cas l'utilise-t-on ?
J'ai essayé de faire la même chose mais c'est beaucoup moins lisible :
if try_number == 1:
print(f"Il te reste {try_number} essai")
else:
print(f"Il te reste {try_number} essais")
Est il possible par la même occasion d'avoir un avis sur ma version du code ?
import sys
import random
mystery_number = random.randint(0, 100)
try_number = 5
user_try = ""
increment = 0
#print(f"Le nombre mystère est {mystery_number}")
print("⭐ Le jeu du nombre mystère ⭐")
#Boucle principale
while try_number > 0:
#Définir le nombre d'essais qu'il reste à l'utilisateur
if try_number == 1:
print(f"Il te reste {try_number} essai")
else:
print(f"Il te reste {try_number} essais")
#Demander à l'utilisateur de rentrer un nombre et par la même occasion vérifier si c'est bien un nombre
user_try = input("Devines le nombre : ")
if not user_try.isdigit():
print("Veuillez rentrer un nombre valide.")
else:
try_number -= 1
increment += 1
user_try = int(user_try)
if increment <= 5:
#Le cas dans lequel le nombre mystère est trouvé
if user_try == mystery_number:
if increment == 1:
print(f"Bravo ! Le nombre mystère était bien {mystery_number} !\nTu as trouvé le nombre mystère en {increment} essai\nFin du jeu.")
sys.exit()
else:
print(f"Bravo ! Le nombre mystère était bien {mystery_number} !\nTu as trouvé le nombre mystère en {increment} essais\nFin du jeu.")
sys.exit()
#Le cas dans lequel le nombre mystère est plus petit que ce que l'utilisateur a noté
elif mystery_number < user_try:
print(f"Le nombre mystère est plus petit que {user_try}")
#Le cas dans lequel le nombre mystère est plus grand que ce que l'utilisateur a noté
else:
print(f"Le nombre mystère est plus grand que {user_try}")
else:
print(f"Dommage ! Le nombre mystère était : {mystery_number}")
print("Fin du jeu.")
Merci !
Salut Farouk !
Déjà bien joué pour ton code, il est clair et bien structuré. L'utilisation de la fonction random pour créer un nombre mystère et ta gestion des tentatives est cool, Bravo! pour améliorer le code tu pourrais essayer de reduire le nombre de if imbriqués vers la fin.
Pour revenir à ta question, tu l'utilises correctement, ne t'inquiète pas. Le : est nécessaire après le if et le else en Python pour indiquer où la condition commence et se termine. Donc dans ton cas, tu as raison de mettre : après if try_number == 1: et else:.
Dans la vidéo j'utilise ce qu'on appelle un operateur ternaire, ça permet de faire une condition sur une seule ligne et avec ça tu n'as pas besoin des deux points.
print(f"Il te reste {try_number} {'essai' if try_number == 1 else 'essais'}")
https://book.pythontips.com/en/latest/ternary_operators.html
Ce qui se passe dans le code ci-dessus, c'est que Python évalue d'abord ce qui est entre {}. Il regarde si try_number est égal à 1. Si c'est vrai, il utilise 'essai' sinon, il utilise 'essais'. C'est une façon plus concise d'écrire ton if et else, mais ta façon est aussi parfaitement valide, ça dépend juste de ce que tu trouves le plus lisible.
Et dans la vidéo je fais ça juste avec le "s".
Bonne continuation !
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte