簡體   English   中英

如果語句在 python 3.6 中的 python 中不起作用

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

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