2012-01-08 16 views
0

我通過一些循環練習題,而在特定的語句。這裏是說明:初學者:While循環不正常,語法錯誤,不顯示任何

2.2)修改該程序,讓用戶詢問他們是否每次都想再次猜測。使用兩個變量,數字的數字和答案來回答他們是否想繼續猜測的問題。如果用戶猜測正確的數字或​​回答「否」,程序將停止。 (換句話說,程序繼續,只要用戶沒有回答「不」,也沒有猜到正確的數字。)

這裏是我的代碼:

#!usr/bin/env python 
# 
#While statement 

number = 24 

while number != 24: 
    answer = raw_input("Guess my lucky number! Do you want to keep guessing?") 

    if number == 24: 
     print "You got it! That is great!" 

    elif answer == "no": 
     print "Thank you for playing." 

    else: 
     print "That is not the right answer! Try again." 

當我運行模塊在IDLE中,這是很好的!「 - 變成紅色,並說無效的語法。在終端,如果我運行$ python while.py什麼也沒有加載。我已經嘗試將它作爲Python 3函數與print(」「)但它仍然沒有運行。

感謝任何人都可以幫助。

回答

2

的同時,週期從來沒有進入,因爲條件number != 24從不保存。 這就是爲什麼沒有輸出。

2

你的循環永遠不會執行,因爲你指出數= 24,然後用鼠標右鍵後,while循環纔會開始,如果數!= 24

此外,將的raw_input產生一個字符串,而不是一個int這樣要麼請求「24」,要麼將raw_input轉換爲int。

它還看來你不能給用戶提供一個機會來猜數在所有;你只問用戶他/她是否想繼續玩。

你可能想要做這樣的事情:

number = 24 
answer = "" 
while answer != str(number): 
    answer = raw_input("Guess my lucky number, or type 'no' to quit.") 
    if answer == "no": 
     print "Okay, see you later" 
     break 
    elif answer != str(number): 
     print "wrong number" 

if answer == str(number): 
    print "you got it right" 
+0

@ Twinborn你的意思是'而答案!= 24' – 2012-01-08 19:10:42

0

好了,我不想直出爲您解決,而是採取在while循環看看你的條件。考慮一下,當你運行它時,特別是在「數字」變量中,它會一行一行地發生。

0

其他的答案都在觸摸的問題,但也有更多...

是的,你真的應該檢查你的循環,而不是數量變量的答案變量,但也請記住,是的raw_input會給你一個字符串。所以你不會得到一個int 24,你會得到一個字符串「24」。這裏的想法是從的raw_input採取了答案變量,並檢查變量根據你的號碼和值「no」

數=「24」

1

這裏既有的語法問題:

answer = "" 
while answer != "24": 
    answer = raw_input("Guess my lucky number! Do you want to keep guessing?") 
    if answer == "24": 
     # You can fill in the rest ... 
+0

這不是真正的語法問題,但問題在這裏 – 2012-01-08 19:25:29