编辑:以下是测试值(7、2、bob、10和4)和所需输出
无效输入 最大值为10 最小值为2 对于需要它们的人:)
你好!!所以我遇到了一个问题,我必须从用户那里获取输入,然后当类型完成时,最大值和最小值就会出来。有一小部分,如果你把错误的数据,它会告诉你,但我得到了完美的“完成”。但我必须决定最大和最小的部分是我的问题。我为每个值设置了Nonetype,但当我把它放在if语句中时,它只是选择第一个输入作为最大值。我在下面附上了我的代码。任何修改都会有所帮助。多谢各位
Largest = None
Smallest = None
while True :
num = input("Enter a number: ")
if num == "done" :
break
try :
fnum = int(num)
except :
print("Invalid input")
continue
if Largest is None:
Largest = fnum
elif Smallest is None:
Smallest = fnum
elif fnum > Largest:
fnum = Largest
elif fnum < Smallest:
fnum = Smallest
print("Maximum is",Largest)
print("Minimum is",Smallest)
理想情况下,您可以使用
==
(等于)来比较None
印刷品
现在,所有的条件都是
if
和elif
,因此在第一次迭代中,每次都分配最大的条件(因为这是第一个真条件),在第二次迭代中分配最小的条件(因为这是第二个真条件),并且这种逻辑可能并不总是这样您可以做的是,同时设置最大值和最小值,即在比较之前具有相同的参考点
最后,您不是在更新最小的和最大的,而是反向更新(如注释中所指出的)
把它缝合在一起
有很多方法可以做到这一点。您应该尝试使用数组。 首先,创建一个存储所有数字的数组。如果用户键入“done”,则将数组的最大数和最小数存储在两个变量中。真的很简单
如果希望将最大值和最小值保留为
None
,可以执行条件表达式来分配值。这将导致将第一个值同时指定给最大值和最小值,如果值较大或较小,则仅指定给最大值中的最小值这不是实现这一点的最佳方式,但它可以完成任务
以单个数字输出
输出你的数字
相关问题 更多 >
编程相关推荐