Python 2.7 如何在数字列表中查找最小值和最大值
我在课堂上的一个项目上遇到了麻烦,我正在寻求帮助。我需要做一个代码,它会重复要求数字,然后打印出列表中的最小值和最大值。我的老师说我们可以随心所欲地做这件事Python 2.7 如何在数字列表中查找最小值和最大值,python-2.7,while-loop,numbers,Python 2.7,While Loop,Numbers,我在课堂上的一个项目上遇到了麻烦,我正在寻求帮助。我需要做一个代码,它会重复要求数字,然后打印出列表中的最小值和最大值。我的老师说我们可以随心所欲地做这件事 num_list = [] while True: num = raw_input("Enter a number: ") if num == "done" : break if num >= 0: num_list.append(num) print min(num_list) pri
num_list = []
while True:
num = raw_input("Enter a number: ")
if num == "done" : break
if num >= 0:
num_list.append(num)
print min(num_list)
print max(num_list)
这就是我目前所拥有的,它要求输入数字,当我输入done时会中断,但它只会打印列表中最小值和最大值的done。在调用min/max之前,需要将数字转换为整数或浮点类型
# under n >= 0:
num = int(num) # or num = float(num)
num_list.append(num)
因此,工作代码的示例如下:
num_list = []
while True:
num = raw_input("Enter a number: ")
if num == "done" :
break
try: # use a try except to verify user input is in fact a number
num = int(num) + 0 # alternatively use float(num) if non integer numerical inputs will be used
if num >= 0:
num_list.append(num)
print "min: ",min(num_list)
print "max: ",max(num_list)
except:
print "invalid input"
不在每次迭代中调用max/min:
num_list = []
_min, _max = None, None
while True:
num = raw_input("Enter a number: ")
if num == "done" :
break
try: # use a try except to verify user input is in fact a number
num = int(num) # alternatively use float(num) if non integer numerical inputs will be used
if num >= 0:
if not _min or not _max:
_min,_max = num, num
elif num < _min:
_min = num
elif num > _max:
_max = num
num_list.append(num)
except:
print "invalid input"
print "min:", _min
print "max:", _max
为什么要添加0并不断调用min和max?我添加0是为了验证num实际上是一个数值,并将其删除。使用了一个_min,_max引用,而不是重复调用min/max函数,你是对的,这样效率更高。我的意思是,当循环结束固定缩进时,应该打印最小值和最大值。不可能知道循环内外是什么。