簡體   English   中英

初學者:雖然循環無法正常運行,但語法錯誤,未顯示任何內容

[英]Beginner: While loop not functioning properly, syntax errors, displays nothing

我正在通過一些Looping練習,尤其是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中運行模塊時,That的結尾引號很棒!”-變為紅色並表示語法無效。在終端中,如果我運行$ python while.py沒有加載。我嘗試將其編寫為帶有print的Python 3函數(“”),但它仍然無法運行。

感謝任何可以幫助您的人。

永遠不會輸入while循環,因為條件number != 24永遠不會成立。 這就是為什么沒有輸出的原因。

您的循環永遠不會執行,因為您聲明數字= 24,然后緊接着,僅當數字!= 24時您的while循環才會開始。

另外,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"

這是語法問題:

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 ...

好吧,我不想直接為您解決問題,而是在while循環中查看您的條件。 在運行時逐行考慮會發生什么,尤其是在“ number”變量中。

其他答案正在解決這個問題,但還有更多...

是的,您確實應該在循環中檢查答案變量,而不是數字變量,但還要記住,raw_input將為您提供一個字符串。 因此,您將不會獲得整數24,而將獲得字符串“ 24”。 這里的想法是從raw_input中獲取答案變量,並根據您的數字和值“ no”檢查該變量

數字=“ 24”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM