Bonjour, je suis en train de suivre le tutoriel "Apprendre à programmer en Python" du site du zéro et j'essaie de créer le TP de la roulette, j'écrit le code suivant dans roulette.py :
import math
import random
points = 1000
tours = 0
while True:
print("Vous avez",points,"points")
choisi = int(input("Tapez un nombre entre 0 et 49"))
if (choisi < 50) and (choisi > -1):
mise = int(input("Combien voulez-vous misez?"))
if mise <= points:
roulette = math.ceil(random.randrange(50))
if roulette==choisi:
points += 2 * mise
print("Gagne! Vous gagnez le double de votre mise")
elif (roulette % 2 == 0) and (choisi % 2):
points += 0.5 * mise
print("Tous les deux pairs, vous gagnez la moitie de votre mise")
roulette += 1
choisi += 1
elif (roulette % 2 == 0) and (choisi % 2):
points += 0.5 * mise
print("Tous les deux impairs, vous gagnez la moitie de votre mise")
else:
points -= mise
print ("Perdu! Vous perdez votre mise.")
tours +=1
if points<1:
break
print("Vous avez survecu pendant",tours,"tours")
j'essaie d'éxécuter le code mais ça m'affiche :
File "roulette.py", line 20
elif (roulette % 2 == 0) and (choisi % 2):
^
SyntaxError: invalid syntax
Ton erreur viens du fait que tes conditions (if, elif, elif, etc) sont imbriqué les unes dans les autres alors qu'elles devraient être au même niveau d'identation Plus précisement un elif et un else "répondent" à un if et doivent donc être au même niveau que lui.
Cela devrait donc donner ca :
import math
import random
points = 1000
tours = 0
while True:
print("Vous avez",points,"points")
choisi = int(input("Tapez un nombre entre 0 et 49"))
if (choisi < 50) and (choisi > -1):
mise = int(input("Combien voulez-vous misez?"))
if mise <= points:
roulette = math.ceil(random.randrange(50))
if roulette==choisi:
points += 2 * mise
print("Gagne! Vous gagnez le double de votre mise")
elif (roulette % 2 == 0) and (choisi % 2):
points += 0.5 * mise
print("Tous les deux pairs, vous gagnez la moitie de votre mise")
roulette += 1
choisi += 1
elif (roulette % 2 == 0) and (choisi % 2):
points += 0.5 * mise
print("Tous les deux impairs, vous gagnez la moitie de votre mise")
else:
points -= mise
print ("Perdu! Vous perdez votre mise.")
tours +=1
if points<1:
break
print("Vous avez survecu pendant",tours,"tours")
Pour info, les parenthèses sont la plupart du temps autorisées dans python même si elles ne "servent à rien".
Oui, c'est normal, mais je te dis juste que la prochaine fois que tu auras une question sur Python, ce sera plus simple que tu ailles directement sur le forum Python pour la poser. Peu de gens qui font du Python parcourent ce forum, alors que sur le forum Python, tu aurais probablement eu la bonne réponse en moins de 10 minutes.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
comme ceci