Python:无需使用max和min函数即可获得最大值和最小值的程序

Tal*_*ved 5 python-2.7

我编写了下面的代码,用于获取最大值和最小值作为我的MOOC分配的一部分.该程序不断地从用户接收输入,直到用户键入"完成".

输入'done'后,程序会给出最大值和最小值的结果.问题是最大值的结果总是正确的,但最小值的结果总是"无".

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
Run Code Online (Sandbox Code Playgroud)

Qua*_*ark 3

您发布的代码对于最大和最小都没有给出。try catch 之后有一个 continue 语句,所以显然它只是继续接受输入并且永远不会终止。continue 将告诉循环跳到下一次迭代。所以继续必须出现在 except 块中(这可能是一个缩进错误)。其次,您将输入与 None 进行比较。我猜这是你 if 条件中的一个拼写错误(应该是“如果最大的是无”而不是“如果 inp 是无”)

修改后的代码:(检查最后2个if条件):

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
Run Code Online (Sandbox Code Playgroud)

  • 您希望在 except 块内使用 continue 语句,否则谁知道 inp 是什么(就像字符串!) (3认同)