求解,我这个为什么返回的总是L[0]和L[-1]啊,找不到问题在哪
Topic source(我也是初学者,如有错误,感谢指正)问题在于for循环下面的判断。if x>=L[0]意味着在进行循环遍历整个数组时,把每个数都拿来与数组中第一个数进行大小比较,如果前者不小于后者则令其为max。现在假设某次执行后max被替换为了X1,那么在后续再次执行时,仍会拿X2去与数组的第一个数作比较,因此最终返回值总会是L[0]和L[-1]。可以这样子修改:在else下面,for循环之前,令max_nun=L[0],min_num=L[0],(初始化的索引值可以随意,因为最终都会遍历),把后续判断的L[0]分别改为max_num与min_num,这样能使后被判断的值总能与之前的最值进行比较。
- 1
月球上的人
def MM(L):
if not L :
return (None,None)
else:
for x in L:
if x>=L[0]:
max=x
for y in L:
if y<=L[0]:
min=y
return(max,min)