我正在尝试在python中为类创建一个程序,我无法弄清楚为什么我无法获得预期的输出 . 程序将获取用户输入值,直到输入“完成”,然后打印这些值的最大值和最小值 . 它还有一些错误检查有效输入(数字而不是文本) .
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" :
break
try:
num=float(inp)
except:
print "Invalid input"
continue
if inp>largest:
largest=inp
if inp<smallest:
smallest=inp
print "Maximum is ", largest
print "Minimum is ", smallest
如果插入“完成”,则循环会正常中断 . 如果输入文本字符串,它不会失败,但也不会打印“无效输入” . 我不是要求某人解决我的家庭作业计划,而是向我提供一个解释,说明为什么我从来没有得到最大或最小的东西,除了他们原来的“无”分配 .
提前致谢 .
7 回答
不要使用None作为初始化,使用浮点数 .
它有效,有点
你永远不会得到一分钟,因为浮动永远不会少于无 .
您需要对比较运算符兄弟做些什么 . 现在你正在检查最小值是否小于输入值(反之,最小值) . 结果:你're switching max and min. Should'是这样的:
它不会报告正确的最大值或最小值,因为您在比较中使用了
inp
(字符串)而不是num
(浮点数) .这是我使用的最终代码 . 在所有回应的帮助下!感谢他们所有的时间 .