2017-10-15 112 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