【发布时间】:2019-10-17 19:23:45
【问题描述】:
我正在尝试编写一个程序,该程序会反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它,并发出适当的消息并忽略该数字。
我在打印最大和最小数字时遇到问题。其打印不正确的数字通过以下方法:
largest = None
smallest = None
list1 = []
while True:
num = input("Enter a number: ")
if num == "done" : break
try:
val = int(num)
if int(num):
list1.append(num)
except:
print("Invalid input")
print("Maximum is " + max(list1))
print("Minimum is " + min(list1))
我输入的数字是 7、2、bob、10 和 4。
其打印输出为: 输入无效 最大值为 7 最小值为 10
虽然我正在寻找的输出是: 输入无效 最大值为 10 最小值为 2
【问题讨论】:
-
你想特殊对待
0的值吗?现在你的逻辑(当语法是固定的)忽略 0 因为if 0评估为False。 -
此外,您还可以通过在获得新数字时跟踪最小和最大数字来更有效地执行此操作。不需要
list。
标签: python