Python:用于获取最大值和最小值而不使用最大值和最小值函数的程序

问题描述:

我编写了下面的代码来获取最大值和最小值作为我的MOOC分配的一部分。这个程序不断接受用户的输入,直到用户键入'完成'。Python:用于获取最大值和最小值而不使用最大值和最小值函数的程序

一旦完成键入,程序会给出最大值和最小值的结果。问题是最大值的结果总是正确的,但最小值的结果始终为“无”。

largest = None 
smallest = None 
while (True) : 
    inp = raw_input('Enter a number: ') 
    if inp == 'done' : 
     break 
    try: 
     inp = float(inp) 
    except: 
     print 'Invalid input' 
    continue 
    if inp is None or inp > largest: 
     largest = inp 
    if inp is None or inp < smallest: 
     smallest = inp 
print largest, smallest 

您发布的代码给出的最大和最小值都为None。尝试抓住后有一个继续声明,显然它只是继续输入并且不会终止。继续会告诉循环跳到下一次迭代。所以继续必须进入除了块(这可能是一个缩进错误)。其次,你将输入与None进行比较。我想这是一个错字的你,如果条件(它应该是“如果最大的是无”不是“如果INP是无”)

修改后的代码:(检查最后2如果条件):

largest = None 
smallest = None 
while (True) : 
    inp = raw_input('Enter a number: ') 
    if inp == 'done' : 
     break 
    try: 
     inp = float(inp) 
    except: 
     print 'Invalid input' 
     continue 
    if largest is None or inp > largest: 
     largest = inp 
    if smallest is None or inp < smallest: 
     smallest = inp 
print largest, smallest 
+3

你想要在except块内的continue语句,否则谁知道什么是inp(就像一个字符串!) – MasterOdin

+0

对不起,错过了!谢谢! @MasterOdin – Quark

+0

除了block以外的用意是,如果用户输入的不是字符串或其他数据类型等数值以外的东西,而只是输出Invalid Input并返回到开头,因为我们不需要任何其他数据类型。我完成了这项任务。非常感谢您的帮助。 –