2 回答
TA贡献1795条经验 获得超7个赞
这段代码看起来像是针对 Python 2.x 的,它input()试图评估输入,如果您键入的字符串不是变量名,则会发出错误信号。Python 3.x 在您键入时不会发出错误信号done。
所以只需比较输入。当您尝试将其转换为int.
while True:
num = input("Enter a number")
if num == "done":
break
try:
num = int(num)
except ValueError:
print("Invalid input")
continue
l.append(num)
l.sort()
largest = l[-1]
smallest = l[0]
TA贡献1772条经验 获得超8个赞
重构逻辑。 NameError不会发生,finally也不需要……只是在“终于”完成时将其放在外面。
nums = []
while True:
num = input('Enter a number or "done": ') # num is a string at this point
if num == 'done':
break
try:
# try to convert num to integer...
num = int(num) # This can fail with ValueError, so is in try
nums.append(num) # This won't run if above raises exception
except ValueError:
print("Invalid input")
# No need to sort...
print("Maximum", max(nums))
print("Minimum", min(nums))
添加回答
举报