je travail sur un petit programme et ce dernier ne marche pas. L'erreur vient de la gestion d'erreur mais je n'arrive pas à la trouver... :-(
Est-ce que quelqu'un de gentil pourrait m'indiquer ce qui ne va pas svp.
Merci d'avance
voici le code:
import os
bourse=1000
nombre_mise = -1
while nombre_mise < 0 or nombre_mise > 49:
nombre_mise = input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
# On convertit le nombre misé
try:
nombre_mise = int(nombre_mise)
except ValueError:
print("Vous n'avez pas saisi de nombre")
nombre_mise = -1
continue
if nombre_mise < 0:
print("Ce nombre est négatif")
if nombre_mise > 49:
print("Ce nombre est supérieur à 49")
# À présent, on sélectionne la somme à miser sur le nombre
mise = 0
while mise <= 0 or mise > bourse:
mise = input("Tapez le montant de votre mise : ")
# On convertit la mise
try:
mise = int(mise)
except ValueError:
print("Vous n'avez pas saisi de nombre")
mise = -1
continue
if mise <= 0:
print("La mise saisie est négative ou nulle.")
if mise > argent:
print("Vous ne pouvez miser autant, vous n'avez que", bourse, "$")
print("Vous avez misé ",mise,"$ sur le",nombre_mise,". Les jeux sont faits!")
os.system("pause")
Alors chez moi il fonctionne....après quelques corrections :
- tes while : pas d'indentation devant while ligne 4 et 20
- idem pour le print à la fin, ligne 34
- ligne 31 tu mets if mise > argent. Alors que ta variable c'est pas argent, mais bourse.
Après ces petits corrections, chez moi ça marche. En tout cas j'ai pas de problèmes avec la gestion d'erreur, si on tape autre chose qu'un nombre il le signale correctement et boucle.
Merci pour vos réponses, en effet j'avais quelque erreurs (corrigées) dans ce code. Ce dernier faisait partie d'un code plus grand dans lequel je dois faire un jeu de la roulette (je suis la formation OC).
Le problème est le suivant: lorsque je lance le fichier .py, une fenêtre s'ouvre et se ferme instantanément... Suite à quelque testes, je me suis rendu compte que le pb venait de la partie try. Mais même en reprenant la même chose que dans la correction, ça ne marche pas... Et je n'arrive vraiment pas à trouver l'erreur
#-*-coding:utf-8 -*
import os
import math
import random
bourse = 1000
continuer_partie = True
while continuer_partie:
nombre = -1
while nombre < 0 or nombre > 49:
nombre= input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
# On convertit le nombre misé
try:
nombre = int(nombree)
except ValueError:
print("Vous n'avez pas saisi de nombre")
nombre = -1
continue
if nombre < 0:
print("Ce nombre est négatif")
if nombre > 49:
print("Ce nombre est supérieur à 49")
# À présent, on sélectionne la somme à miser sur le nombre
mise = 0
while mise <= 0 or mise > bourse:
mise = input("Tapez le montant de votre mise : ")
# On convertit la mise
try:
mise = int(mise)
except ValueError:
print("Vous n'avez pas saisi de nombre")
mise = -1
continue
if mise <= 0:
print("La mise saisie est négative ou nulle.")
if mise > bourse:
print("Vous ne pouvez miser autant, vous n'avez que", bourse, "$")
print("Vous avez misé ",mise,"$ sur le",nombre,". Les jeux sont faits!")
res = random.randrange(50)
print("Le numéro obtenue est : ",res)
if res == nombre:
print("Bravo! vous avez gagnez",3 * mise,"$! Sacré somme")
bourse += 3 * mise
elif nombre % 2 == res % 2:
print("Bravo! vous avez gagnez",math.ceil( 0.5 * mise),"$! sacré somme")
bourse += math.ceil( 0.5 * mise )
else:
print("Désolé, vous avez perdu la somme de",mise,"$... Essayons encore!")
bourse -= mise
if bourse <= 0:
print("Vous n'avez plus d'argent! GAME OVER")
continuer_partie = False
else:
print("Votre bourse est actuellement de :",bourse,"$!")
quitter = input("Voulez vous quitter la table? (o/n)")
if quitter == "o" or quitter == "O":
print("Bonne journée!")
continuer_partie = False
else:
print("Très bien, continuons alors!")
os.system("pause")
Le problème est le suivant: lorsque je lance le fichier .py, une fenêtre s'ouvre et se ferme instantanément...
Ça veut dire qu'il y a un message d'erreur, mais tu ne peux pas le voir.
Il faut exécuter le programme dans une console type cmd ou powershell (sous Windows) et pas double-cliquer dessus. Ou alors utiliser un IDE ou éditeur de texte qui permet d'exécuter le programme dans une console intégrée.
En plus ça va te permettre de virer cet horrible os.system("pause") qui ne devrait pas exister. Je sais que c'est ce qui est conseillé dans l'un des cours d'OC, mais c'est de la merde.
Après ça tu va pouvoir lire le message d'erreur et ce sera beaucoup plus facile de debugguer tes programmes.
- Edité par LoupSolitaire 19 juillet 2019 à 20:21:41
× 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.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...