2016-02-12 65 views
0

我是Python新手(或任何编码),需要返回用户输入的数组中的最大值和最小值。我可以得到它返回最大的没有问题,但最小给我回<unknown>消息。任何人都可以帮我修复我的最小回报代码吗?谢谢。Python - 从用户输入的数组中返回最小值和最大值

这里是我的代码:

maximum = None 
minimum = None 

while True: 
    #enter the input 
    inp = raw_input("Enter a number:") 

    #handle the edge cases 
    if inp == "done" : 
     break 
    if len(inp) < 1 : 
    break 

    #only accept good input 
    try: 
     num = int(inp) 
     #print num 
    except: 
     print "Invalid input" 
     continue 

    #do the work 
    if num > maximum : 
     max = num 
    if num < minimum : 
     min = num 
    else: 
     num 

print "Maximum is", max 
print "Minimum is", min 
+2

没有数小于'None',所以'min = num'行永远不会运行。 –

+1

但min给我留言< - 这是一个私人信息,或我们可以看到错误? – timgeb

+0

@timgeb这是因为'min'是一个内置的,所以它打印。 –

回答

1

尝试初始化minimummaximum电话号码,并没有None

比较为INT值,在这里,你正在做的strings

-1

尽量把所有输入的数字为INT列表(阵列),然后使用内置的MIN()和MAX()函数...

from __future__ import print_function 

nums = [] 

while True: 
    #enter the input 
    inp = input("Enter a number:") 

    #handle the edge cases 
    if inp == "done" or not len(inp): 
     break 

    #only accept good input 
    try: 
     nums.append(int(inp)) 
    except ValueError: 
     print("Invalid input") 
     continue 

print("Maximum is", max(nums)) 
print("Minimum is", min(nums)) 
1

您可以采取两种方法,在这里。首先,您可以在代码中明确检查None。第二,如@minatverma所述,将初始化您的最小/最大值为一些“无法达到”值。

选项1:

替换此代码...

#do the work 
if num > maximum : 
    max = num 
if num < minimum : 
    min = num 
else: 
    num 

有了这个代码:

#do the work 
if minimum is None: 
    # First time, only 
    minimum = num 
    maximum = num 
elif num > maximum: 
    maximum = num 
elif num < minimum: 
    minimum = num 

选项2:

您需要添加fol在你的代码的顶部降脂行:

import math 

然后,将这段代码:

maximum = None 
minimum = None 

有了这个:

maximum = -math.inf 
minimum = math.inf 

你的代码的其余部分可以保持不变。

相关问题