我是Python(或任何编码)的新手,需要从用户输入的数组中返回最大值和最小值。我可以让它返回最大没问题,但是min给了我<unknown>
消息。任何人都可以帮我修复我的最小回报代码吗?感谢。
这是我的代码:
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
答案 0 :(得分:1)
尝试将minimum
和maximum
初始化为数字,而不是None
。
作为INT
值进行比较,此处您正在执行strings
答案 1 :(得分: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:
您需要在代码顶部添加以下行:
import math
然后,替换此代码:
maximum = None
minimum = None
有了这个:
maximum = -math.inf
minimum = math.inf
其余代码可以保持不变。
答案 2 :(得分:-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))