我正在用python生成一个if-else代码,输出应该是正确的答案,但它正在打印代码的else部分,我不知道为什么

我正在用python生成一个if-else代码,输出应该是正确的答案,但它正在打印代码的else部分,我不知道为什么,python,python-3.x,python-2.7,if-statement,Python,Python 3.x,Python 2.7,If Statement,守则: user_answer = input("What is 8+13=") answer = 21 if user_answer == answer: print("Correct answer!") else: print("Try Again!") 即使输入为21,也会打印代码的else部分。输入函数将输入的文本作为字符串返回,请参见: 如果存在prompt参数,则将其写入标准输出,而不带尾随换行符。然后,函数从输入中读取一行,将其转换为一个字符串,并返回尾随换行符

守则:

user_answer = input("What is 8+13=")
answer = 21
if user_answer == answer:
    print("Correct answer!")
else:
    print("Try Again!")

即使输入为21,也会打印代码的else部分。输入函数将输入的文本作为字符串返回,请参见:

如果存在prompt参数,则将其写入标准输出,而不带尾随换行符。然后,函数从输入中读取一行,将其转换为一个字符串,并返回尾随换行符

然后,代码将字符串21与整数值21进行比较,将字符串与int进行比较的结果将为false

您可以将字符串转换为可以使用的整数值:

但如果无法将输入转换为int值,则会引发错误。或者,将int转换为字符串:

user_answer = input("What is 8+13")
answer=21
if user_answer == str(answer):
    print("Correct answer!")
else:
    print("Try again!")

例如,如果输入为“21a”,则不会抛出错误的那个或串。当然可以有一个输入验证器。@AntonvBR:是的,谢谢。将在中编辑该内容。
user_answer = input("What is 8+13")
answer=21
if user_answer == str(answer):
    print("Correct answer!")
else:
    print("Try again!")