2017-10-15 87 views
-4

我正在尝试编写一个小练习,其中用户猜测数字,被引导的更高或更低,当他们猜测正确时退出,并在输入“退出”时退出。当我输入“退出”时,如果我的猜测太高,控制台会返回相同的响应。我不知道如何解决这个问题。此外,我愿意提出改进我的基本代码的建议。新手:数猜测游戏

from random import randrange 

number = randrange(0,11) 

guess = False 
counter = 0 

while guess == False: 
    guess = input("Guess the number (1-10): ") 
    if guess < number: 
     print "Guess a bit higher." 
     print 
     guess = False 
    elif guess > number: 
     print "Guess a bit lower." 
     print 
     guess = False 
    elif guess == number: 
     print 
     print "Right on the money!" 
     print "Amount of attempts:", counter 
     guess = True 
    else: 
     guess == "Exit" 
     print "Thanks for playing, I guess.", counter 
     guess = True 
    counter += 1 
+0

我刚要更新您的标记,但被另一个用户殴打。将来,请记住标记相关的**编码**语言。有关详细信息,请参阅有关[**如何提出良好问题**](http://stackoverflow.com/help/how-to-ask)的帮助文章,并参加该网站的[**游览**](http://stackoverflow.com/tour):) –

+0

Python 2允许在不同类型之间进行比较,''exit'> 3'(因为'str'>'int''!) – jonrsharpe

回答

1

这是在Python3中完成的。看看猜测是否是第一个数字,如果是,则将猜测改为int。如果不是,它会保持猜测为一个字符串并退出。

from random import randrange 

number = randrange(0,11) 

guess = False 
counter = 0 

while guess == False: 
    guess = input("Guess the number (1-10): ") 
    if guess.isdigit(): 
     guess=int(guess) 
     if guess < number: 
      print ("Guess a bit higher.") 
      print 
      guess = False 
     elif guess > number: 
      print ("Guess a bit lower.") 
      print 
      guess = False 
     elif guess == number: 
      print 
      print ("Right on the money!") 
      print ("Amount of attempts:", counter) 
      guess = True 

    else: 
     guess == "Exit" 
     print ("Thanks for playing, I guess.", counter) 
     guess = True 
     guess=str(guess) 

    counter += 1 
+0

我没有了解.isdigit()方法并修复了我的错误;感谢您花时间帮助解决我的练习。 – JustinShotMe

+0

'guess ==“退出”'什么都不做,我什至不能想到'guess = str(guess)'会尝试做什么。 – JJJ