[英]If statement is not working in python in python 3.6
a = input('10+1: ')
if a == 11:
print("correct")
else:
print('wrong')
上面的代碼在我的程序中不起作用。
它給了我這樣的輸出:
10+1: 11
wrong
Process finished with exit code 0
像a == 11
這樣a == 11
比較是在a
(輸入字符串)和11
(數字)之間。
要將數字標記為字符串,請在其周圍添加引號: '11'
。
更改為a == '11'
: a
(輸入字符串)和'11'
(字符串)。
它會像魔術一樣工作:
a = input('10+1: ')
# Compare to string '11'
if a == '11':
print("correct")
else:
print('wrong')
示例運行:
10+1: 11
correct
先前答案中的替代解決方案是將輸入轉換為整數(整數 1、2、3 等),然后再進行比較,這可以使用int()
關鍵字完成:
a = int(input("10+1="))
if a == 11:
print("Correct")
else:
print("Incorrect")
此方法將使您的代碼更具可讀性,並且如果用戶嘗試輸入不是數字的內容,也會引發ValueError
。 當您希望確保只允許特定輸入時,這將很有用。 您的示例中的輸入驗證將是:
while True:
try:
a = int(input("10+1="))
break
except ValueError:
print("Sorry that isn't a valid input!")
pass
if a == 11:
print("Correct")
else:
print("Incorrect")
我的回答可能有點超出范圍,但我希望這會有所幫助
您正在將字符串 '11' 與整數 11 進行比較,因此輸出錯誤。 嘗試比較 a == '11' ,它應該會給出您想要的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.