【发布时间】:2017-07-25 02:28:04
【问题描述】:
说明:编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它,并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
except:
print('Invalid input')
continue
if smallest is None or num < smallest :
smallest = num
elif largest is None or num > largest :
largest = num
print("Maximum is", largest)
print("Minimum is", smallest)
所以在输入 7、2、bob、10 和 4,然后输入 done 后,代码不会像我在最后两行中编码的那样打印出最大和最小数字。我的错在哪里?
谢谢
【问题讨论】:
-
您是否尝试过使用调试器逐行执行代码?
-
你不能在你的条件下使用
elif,因为如果你先输入最大的数字,那么这将不起作用。除此之外工作正常,您在输入'done'后看到了什么? (注意:我假设if条件的缩进中的单个空格差异只是一个剪切和粘贴错误 - 否则你会得到一个IndentationError) -
我不知道为什么你的投票率如此之低,但你可以做两件小事来改善你的问题:将标题更改为“查找最大和最小输入数字”之类的内容,因为那是更具描述性(因此人们不会认为您试图让他们做作业),并在示例输入中包含您的代码给出的实际输出。
-
num = int(num)如果输入是浮点数(例如 7.2),则不会产生错误 -
@user55449 我是stackoverflow的新手,所以感谢您的建议,以后会记住的。
标签: python