Je débute sur python et je suis arrivé au TP ZCasino.
Je l'ai fait, mais il se ferme directement même après l'avoir mis en pause...
Je l'ai donc lancé avec PowerShell, et apparemment, il y a une erreur de syntaxe à la ligne 48(ou 49) à "else".
Le problème, c'est que je ne vois pas pourquoi il y a une erreur, le code:
#-*-coding:Latin-1 -*
import os
from random import randrange
from math import ceil
continuer_partie=True
agent=1000
print("Vous vous installer à la table de roulette avec",argent,"$")
while continuer_partie:
argent_mise=-9
while argent_mise>argent or argent_mise<=0:
argent_mise=input("Quel somme d'argent souhaitez vous miser?:")
if argent_mise>argent:
print("Vous ne pouvez pas miser autant, vous avez seulement",argent,"$")
nombre_mise=-4
if argent_mise<0:
print("Vous avez misé une somme inferieur ou égale à 0")
nombre_mise=-5
try:
nombre_mise=int(nombre_mise)
except:
print("Le somme saisit n'est pas valide")
argent_mise=-5
nombre_mise=-2
while nombre_mise<=0 or nombre_mise>30:
nombre_mise=input("Quel nombre souhaitez vous miser?(entre 1 et 30 compris):")
if nombre_mise<=0:
print("Vous avez miser une somme inférieur ou égale à 0")
nombre_mise=-5
if nombre_mise>30:
print("Vous avez misé un nombre suppérieur à 30")
nombre_mise=-5
try:
nombre_mise=nombre_mise(int)
except:
print("Le nombre saisit n'est pas valide")
nombre_mise=-3
nombre_choisit=randrange(1,30)
if nombre_mise==nombre_choisit:
argent+=argent_mise*3
print("Vous avez misé sur le bon nombre, vous gagnez le montant de votre mise multiplié par 3:",argent_mise*3)
elif nombre_mise%2==nombre_choisit%2:
argent+=ceil(argent_mise/2)
print("Vous avez misé sur la bonne couleur, vous gagnez le montant de votre mise divisé par 2:",ceil(argent_mise/2)
else:
print("Vous n'avez ni misé sur le bon nombre, ni sur la bonne couleur, vous perdez votre mise.")
argent-=argent_mise
print("Vous avez maintenant",argent,"$")
a=True
while a:
continuer_partie=input("Voulez vous continez la partie?(Oui/Non)")
if continuer_partie.lower()=="oui":
continuer_partie=True
elif continuer_partie.lower()=="non":
continuer_partie=False
else:
print("Vous n'avez pas saisit de réponse valide")
continue
Si il y a d'autre erreur, merci de m'en faire part
#-*-coding:Latin-1 -*
import os
from random import randrange
from math import ceil
continuer_partie=True
argent=1000
print("Vous vous installer à la table de roulette avec",argent,"$")
while continuer_partie:
argent_mise=-9
while argent_mise>argent or argent_mise<=0:
argent_mise=input("Quel somme d'argent souhaitez vous miser?:")
try:
nombre_mise=int(nombre_mise)
except:
print("Le somme saisit n'est pas valide")
continue
if argent_mise>argent:
print("Vous ne pouvez pas miser autant, vous avez seulement",argent,"$")
nombre_mise=-4
if argent_mise<0:
print("Vous avez misé une somme inferieur ou égale à 0")
nombre_mise=-5
nombre_mise=-2
while nombre_mise<=0 or nombre_mise>30:
nombre_mise=input("Quel nombre souhaitez vous miser?(entre 1 et 30 compris):")
if nombre_mise<=0:
print("Vous avez miser une somme inférieur ou égale à 0")
nombre_mise=-5
if nombre_mise>30:
print("Vous avez misé un nombre suppérieur à 30")
nombre_mise=-5
try:
nombre_mise=nombre_mise(int)
except:
print("Le nombre saisit n'est pas valide")
nombre_mise=-3
nombre_choisit=randrange(1,30)
if nombre_mise==nombre_choisit:
argent+=argent_mise*3
print("Vous avez misé sur le bon nombre, vous gagnez le montant de votre mise multiplié par 3:",argent_mise*3)
elif nombre_mise%2==nombre_choisit%2:
argent+=ceil(argent_mise/2)
print("Vous avez misé sur la bonne couleur, vous gagnez le montant de votre mise divisé par 2:",ceil(argent_mise/2))
else:
print("Vous n'avez ni misé sur le bon nombre, ni sur la bonne couleur, vous perdez votre mise.")
argent-=argent_mise
print("Vous avez maintenant",argent,"$")
while True:
continuer_partie=input("Voulez vous continez la partie?(Oui/Non)")
if continuer_partie.lower()=="oui":
continuer_partie=True
elif continuer_partie.lower()=="non":
continuer_partie=False
else:
print("Vous n'avez pas saisit de réponse valide")
continue
Je débute aussi mais je crois que tu devrais mettre argent_mise et argent en (int) non ?
Non, ce sont déjà des entiers.
Le problème est en ligne 17: on ne met J-A-M-A-I-S un except tout seul, car sinon on risque de passe sous silence toutes les erreurs (même celles qui pourraient nous être utile, comme c'est le cas ici). Il faut donc T-O-U-J-O-U-R-S préciser l'erreur qu'on veut capturer.
Ici, l'erreur qu'on veut capturer est une ValueError:
En faisant ça, ça va t'afficher une nouvelle erreur (qui était masquée auparavant à cause du except) et que tu pourras facilement corriger (si tu réfléchis un tout petit peu ).
Mais après correction, tu vas retomber sur la même erreur que précédemment (si tu n'entres pas un entier). C'est simplement dû au fait que tu ne réinitialises pas la valeur de argent_mise avant de reboucler (donc elle pointe toujours vers la chaîne de caractères entrée par l'utilisateur).
PS: Puisque 0 est une valeur non acceptée - que ce soit pour argent_mise ou pour le nombre_mise - il serait plus propre d'initialiser ces deux variables à 0, plutôt qu'avec des nombres lambda comme -9, -4, -5, -2, qui non pas du tout de sens. Et dans le cas où 0 est une valeur acceptée, alors on initialise plutôt à -1 (ou 1).
.
Moi11MoiMoi11Moi a écrit:
ça me met(à la ligne 14) que ">" n'est pas supporté entre des "str" et des "int"
Attention à bien faire correspondre la ligne de l'erreur avec le code présenté sur OC. Ici l'erreur est en ligne 13
J'ai un peu modifier la structure, et ça marche presque...
Lorsqu'il me demande quel nombre je veux miser(entre 1 et 30) et que je répond un trop grand nombre, des caracères,ect, il m'affiche bien "le nombre saisit n'est pas valide" mais il m'affiche aussi ça quand je met un nombre valide entre 1 et 30.
J'ai beaucoup relu le code mais je ne vois pas pourquoi ça le fait...
le code:
#-*-coding:Latin-1 -*
import os
from random import randrange
from math import ceil
continuer_partie=True
argent=1000
print("Vous vous installer à la table de roulette avec",argent,"$")
while continuer_partie:
argent_mise=-9
try:
argent_mise=input("Quel somme d'argent souhaitez vous miser?:")
argent_mise=int(argent_mise)
except ValueError:
print("Le somme saisit n'est pas valide")
continue
if argent_mise>argent:
print("Vous ne pouvez pas miser autant, vous avez seulement",argent,"$")
continue
if argent_mise<=0:
print("Vous avez misé une somme inferieur ou égale à 0")
continue
a=True
nombre_mise=-2
while a==True:
try:
nombre_mise=input("Quel nombre souhaitez vous miser?(entre 1 et 30 compris):")
nombre_mise=nombre_mise(int)
a=False
except:
print("Le nombre saisit n'est pas valide")
continue
if nombre_mise<=0:
print("Vous avez miser une somme inférieur ou égale à 0")
a=True
continue
if nombre_mise>30:
print("Vous avez misé un nombre suppérieur à 30")
a=True
continue
nombre_choisit=randrange(1,30)
if nombre_mise==nombre_choisit:
argent+=argent_mise*3
print("Vous avez misé sur le bon nombre, vous gagnez le montant de votre mise multiplié par 3:",argent_mise*3)
elif nombre_mise%2==nombre_choisit%2:
argent+=ceil(argent_mise/2)
print("Vous avez misé sur la bonne couleur, vous gagnez le montant de votre mise divisé par 2:",ceil(argent_mise/2))
else:
print("Vous n'avez ni misé sur le bon nombre, ni sur la bonne couleur, vous perdez votre mise.")
argent-=argent_mise
print("Vous avez maintenant",argent,"$")
while True:
continuer_partie=input("Voulez vous continez la partie?(Oui/Non)")
if continuer_partie.lower()=="oui":
continuer_partie=True
elif continuer_partie.lower()=="non":
continuer_partie=False
else:
print("Vous n'avez pas saisit de réponse valide")
continue
Merci à tous de votre aide le programme fonctionne
- Edité par Tymo2 24 novembre 2017 à 19:54:08
Problème débutant sur le TP ZCasino
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Développeur python amateur et fan de jeux-vidéos !
Développeur python amateur et fan de jeux-vidéos !