为什么python输入的结果跟变量相同,但是判定不相同?

import random
a=int(input("最小数值:"))
b=int(input("最大数值:"))
tc=0
if a > b:
    print("错误:最小数值应该小于最大数值")
    exit()
while 1:
    t=random.randint(a,b)
    m=random.randint(a,b)
    print(t,"+",m)
    d = t + m
    c = input("答案=")
    if d == c:
        print("正确")
        print()
    else:
        print("错误")
        print("答案是:",d)
        print()

python,比如说我是这样的:

最小数值:0
最大数值:10
0 + 5
答案=5
错误
答案是: 5

请问为什么python判断5!=5

img
楼上回答的已经差不多算对了。再严谨一点,可以判断输入数据的合法性,

import random
def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass
    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass

    return False
def inputNew(s):
    rst = input(s)
    while not is_number(rst):
        print("输入非法,请重新输入")
        rst = input(s)
    return int(rst)

a=inputNew("最小数值:")
b=inputNew("最大数值:")
tc=0
if a > b:
    print("错误:最小数值应该小于最大数值")
    exit()
while 1:
    t=random.randint(a,b)
    m=random.randint(a,b)
    print(t,"+",m)
    d = t + m
    c = inputNew("答案=")
    if d == c:
        print("正确")
        print()
    else:
        print("错误")
        print("答案是:",d)
        print()

img

运行如图

c = input("答案=") 这个输入默认是字符串,应该改成这样: c = int(input("答案="))