Bonsoir, j'ai commencé le TP du tuto pour reprendre la main en python, et je ne comprends pas l'erreur que l'interpréteur m'affiche.
Voici le code :
from random import randrange
from math import ceil
cont = 1
banque = 50
n_gagnant = randrange(50)
n_choisi = 50
while cont :
while (n_choisi < 0) or (n_choisi > 49) :
n_choisi = input("Choisissez un nombre entre 0 et 49 banque = %d € " %banque)
try :
int(n_choisi)
except TypeError :
print("Rentrez un nombre et pas autre chose")
n_choisi = 50
continue
mise = input("Choisissez votre mise banque = %d € " %banque)
while (mise > banque) or (mise < 0) :
try :
int(mise)
except TypeError :
print("Rentrez un nombre et pas autre chose")
if mise < 0 : print("Entrez une somme positive")
elif mise > banque : print("Seuil dépassé")
print("Rien ne va plus, la roue tourne et tombe sur", n_gagnant)
if n_gagnant == n_choisi :
banque += mise * 3
elif (n_gagnant % 2) == (n_choisi % 2) :
banque -= ceil(mise/2)
else :
banque -= mise
go_on = input("On recommence ? o/n")
if go_on == 'o' : cont = 1
else :
print("Vous repartez avec %d €" %banque)
cont = 0
L'erreur se situerait à la ligne 10 :
>>>
Choisissez un nombre entre 0 et 49 banque = 50 € 33
Traceback (most recent call last):
File "C:\Users\GDM\Desktop\Python\tp_python.py", line 10, in <module>
while (n_choisi < 0) or (n_choisi > 49) :
TypeError: unorderable types: str() < int()
>>>
Je compare pas 2 types différents puisque je rentre avec n_choisi = 50. Où est le problème ?
Oui je suis con là...
Bon voici le programme fini, j'ai corrigé quelques bugs qui suivaient :
from random import randrange
from math import ceil
cont = 1
banque = 50
n_gagnant = randrange(50)
n_choisi = -1
while cont :
n_choisi = -1
while (n_choisi < 0) or (n_choisi > 49) :
n_choisi = input("Choisissez un nombre entre 0 et 49 (banque = %d €) " %banque)
try :
n_choisi = float(n_choisi)
except ValueError :
print("\nRentrez un nombre et pas autre chose")
n_choisi = -1
continue
mise = 0
while (mise > banque) or (mise <= 0) :
mise = input("\nChoisissez votre mise (banque = %d €) " %banque)
try :
mise = int(mise)
except ValueError :
print("\nRentrez un nombre et pas autre chose")
mise = 0
continue
if mise < 0 : print("\nEntrez une somme positive")
elif mise > banque : print("\nSeuil dépassé")
print("\nAttention rien ne va plus ! ... la roue tourne et tombe sur", n_gagnant)
if n_gagnant == n_choisi :
banque += mise * 3
print("\nBravo, vous avez vu juste ! mise multipliée par 3 ! (banque = %d €)" %banque)
elif (n_gagnant % 2) == (n_choisi % 2) :
banque -=(mise/2)
print("\nVous avez trouvé la bonne couleur ! Vous regagnez la moitié de votre mise"
"\n(vous perdez donc la moitié de votre mise) (banque = %.d €)" %banque)
else :
banque -= mise
print("\nVous ne gagnez rien et perdez votre mise(banque = %d €)" %banque)
go_on = input("\nOn recommence ? o/n ")
if go_on == 'n' :
cont = 0
print("Vous repartez avec %d €" %banque)
Question : Est ce que vous trouvez lisible cette indentation à deux espaces ?
Problème TP
× 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.