我在课堂上遇到麻烦,我正在寻求帮助。我需要制作一个代码,它会反复询问数字,然后打印出列表中的最小值和最大值。我的老师说我们无论如何都可以做到这一点。
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)
这就是我到目前为止所要求的数字输入,当我输入完成后它会中断,但它会仅打印出来"完成"列表中的最小值和最大值。
答案 0 :(得分:1)
在调用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