[英]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.