为什么这个简单的程序的值超过10

时间:2019-01-05 08:00:09

标签: python python-3.x

我正在学习python,遇到这个问题,要不断获取用户输入,验证它是否是整数,并在最后打印出最大值和最小值。将低于10的值与高于10的值混合时,程序会中断。请帮助我理解原因。

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : 
        break
    try :
        int(num)
        if smallest is None and largest is None :
            smallest = largest = num
        if num < smallest :
            smallest = num
            print(num)
        if num > largest :
            largest = num
            print(num)
    except :
        print("Invalid input")
print("Maximum is ", largest)
print("Minimum is ", smallest)

1 个答案:

答案 0 :(得分:1)

尽管您检查是否可以将num强制转换为int(使用try-except块),但是您实际上从未将强制转换的结果存储在变量中。 int(num)仅返回num的整数;要将num实际更改为int,请使用num = int(num)。程序中发生的是比较字符串而不是数字,从而导致意外行为。