def minimum(x):
mini = x[0]
for i in x[0:]:
if i < mini:
mini = i
else:
mini = x[0]
return (mini)
b = [1,2,3,4,5]
c= [3,6,2,7,9]
print minimum(b)
print minimum(c)
我的代码适用于我以前测试的第一个列表(b)(它返回1作为最小值),但是对于第二个列表(c)它返回(3)并且我无法弄清楚为什么。谢谢!
:编辑:想出来,删除&#34;否则&#34; for循环的一部分修复了问题
答案 0 :(得分:2)
删除else
子句:
def minimum(x):
mini = x[0]
for i in x[0:]:
if i < mini:
mini = i
return mini
每次找到大于目前发现的miminum的值时,您不希望将最小值设置为第一个值...
如果没有else
,您会记住到目前为止找到的最低值。对于不低于此值的值,无需执行任何其他操作。