Python - 从用户输入的数组中返回最小值和最大值
问题描述:
我是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
答
尝试初始化minimum
和maximum
电话号码,并没有None
。
比较为INT
值,在这里,你正在做的strings
答
尽量把所有输入的数字为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))
答
您可以采取两种方法,在这里。首先,您可以在代码中明确检查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
你的代码的其余部分可以保持不变。
没有数小于'None',所以'min = num'行永远不会运行。 –
但min给我留言 timgeb
@timgeb这是因为'min'是一个内置的,所以它打印。 –