我正在学习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)
答案 0 :(得分:1)
尽管您检查是否可以将num
强制转换为int
(使用try-except块),但是您实际上从未将强制转换的结果存储在变量中。 int(num)
仅返回num
的整数;要将num
实际更改为int
,请使用num = int(num)
。程序中发生的是比较字符串而不是数字,从而导致意外行为。