簡體   English   中英

蟒蛇 <and><or> 混亂

[英]Python <and><or> confusion

這是我的第一篇文章。 我是30歲的編程語言的新手。我正在學習的語言是python,而且我似乎不明白我簡單的編程代碼的基本缺陷是什么。

    a = input("What is the string?")
    b = input("Enter a number:")
    if(a == "Animal" and b == 1):
        print("No 1 Executed!")
    elif(a == "Dog"):
        print("No 2 Executed")
    else:
        print("No 3 Executed")

即使我輸入“動物”和數字1,也會執行第3行而不是第3行。 1.你們能在這里解釋我的基本錯誤嗎? 謝謝!

b是字符串,如果將其與數字進行比較,則結果為false。 您應該使用:

    if(a == "Animal" and b == "1"):

您也可以使用int(b)將b轉換為數字

問題是輸入函數返回一個字符串。 這意味着變量b將是一個字符串,並且在if語句中,您正在檢查變量b是否等於數字。 您可以通過多種方式解決此問題,一個示例是將if語句更改為:

 if(a == "Animal" and b == "1"):

輸入命令將始終創建一個字符串,因此即使您輸入1,python也會將該值解釋為字符串。 b == 1期望b為數字,因此表達式始終為false。 您可以通過2種方式修復它。

如果要將b保留為字符串,只需更改該表達式即可與字符串進行比較,即b == "1"

如果要將b用作數字,請在b = input("Enter a number:")之后立即將其轉換為整數,只需添加新行: b = int(b) 現在,您的表達式將按預期工作,但是如果您輸入的值不是數字,則程序將失敗。

執行最新行的原因是input返回不等於number的str對象。 為了使其具有可比性,您需要將b轉換為int

b = int(input("Enter a number:"))

暫無
暫無

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

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