簡體   English   中英

我的 if 和 elif 語句沒有執行

[英]My if and elif statements are not executing

我正在嘗試學習 python,但我的 if 和 elif 語句遇到了問題。 我檢查了縮進並檢查了我的條件是否正確,但由於某種原因,if 和 elif 語句不會執行。 無論我為用戶輸入 0、1 還是 2,都不會發生任何事情。

我試過改變縮進,但這似乎沒有幫助。 我還嘗試將所有語句更改為 if 語句,但沒有產生任何變化。

while win == False:
    user = input("Is your number: " + str(guess) + "\n")

    if user == 2:
        highRange = guess
        guess = (highRange+lowRange)/2
        counter += 1
    elif user == 1:
        lowRange = guess
        guess = (lowRange + highRange)/2
        counter += 1
    elif user == 0:
        print("I figure it out in " + str(counter) + "tries")
        win = True

它旨在執行 if 和 elif 語句中的內容。

輸入始終是字符串,但您將其與 integer 進行比較。

相反,您可以將其轉換為int ,如下所示:

user = int(input("Is your number: " + str(guess) + "\n"))

或者:

if int(user) == 2:

等等

現在,請記住,用戶可能會鍵入一些我們無法解釋為 integer 的內容。 所以為了安全起見,如果用戶輸入了其他內容,我們可以檢查無效輸入並請求一個數字:

user = None
while user is None:
    try:
        user = int(input("Is your number: " + str(guess) + "\n"))
    except ValueError:
        print("Please enter a number!")

完全不同的策略是通過將數字放在引號中來將比較的右側更改為字符串,如下所示:

if user == '2':

user保留為字符串會使使用它進行數學運算變得更加尷尬。

用戶的類型是字符串,但你的 if 和 elif 與 integer 進行比較。 這就是它不起作用的原因。嘗試使用:

user = int(input("Is your number: " + str(guess) + "\n"))

暫無
暫無

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

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