2009-10-05 6 views
2

Pourquoi mon programme me signale-t-il une erreur?Problème lors de l'exécution d'un programme Python très simple

import random 

TheNumber = random.randrange(1,200,1) 
NotGuessed = True 
Tries = 0 

GuessedNumber = int(input("Take a guess at the magic number!: "))     

while NotGuessed == True: 
    if GuessedNumber < TheNumber: 
     print("Your guess is a bit too low.") 
     Tries = Tries + 1 
     GuessedNumber = int(input("Take another guess at the magic number!: ")) 

    if GuessedNumber > TheNumber: 
     print("Your guess is a bit too high!") 
     Tries = Tries + 1 
     GuessedNumber = int(input("Take another guess at the magic number!: ")) 

    if GuessedNumber == TheNumber: 
     print("You've guess the number, and it only took you " + string(Tries) + "!") 

L'erreur est sur la dernière ligne. Que puis-je faire?

Edit:

Aussi, pourquoi peut, t-je utiliser Tries ++ ici en Python? N'y a-t-il pas un code d'autoincrémation?

Edit 2: L'erreur est:

Traceback (most recent call last): 
    File "C:/Users/Sergio/Desktop/GuessingGame.py", line 21, in <module> 
    print("You've guess the number, and it only took you " + string(Tries) + "!") 
NameError: name 'string' is not defined 
+0

vous avez une boucle infinie – SilentGhost

+0

'string' ->' str' – jfs

+0

'chaîne' n'est pas défini :) – OscarRyz

Répondre

2

il est str, pas string. mais votre boucle infinie est un plus gros problème. auto-incrément est écrit comme ceci:

Tries += 1 

Commentaire général: vous pouvez améliorer votre code légèrement:

the_number = random.randrange(1,200,1) 
tries = 1 

guessed_number = int(input("Take a guess at the magic number!: ")) 
while True: 
    if guessed_number < the_number: 
     print("Your guess is a bit too low.") 

    if guessed_number > the_number: 
     print("Your guess is a bit too high!") 

    if guessed_number == the_number: 
     break 
    else: 
     guessed_number = int(input("Take another guess at the magic number!: ")) 
     tries += 1 

print("You've guessed the number, and it only took you %d tries!" % tries) 
+0

Je l'ai corrigé avec votre code, et mon ordinateur s'est tiré lui-même sur la carte mère. Merci beaucoup. –

+0

Avez-vous réparé la boucle infinie avant la prise de vue? – foosion

+0

Je voulais dire que cette boucle infinie fait que mon ordinateur se tue xD –

3

Dans votre dernière ligne, remplacer string avec str - qui devrait prendre soin de l'erreur Python se plaint, au moins.

Questions connexes