#使用迭代查找一个list中最小和最大值,并返回一个tuple(元组)
def findMinAndMax(L):
L = []
for i in range(L):
L.append(L[i])
while i <= 0:
if L[i] == 0:
return False
else:
L[i] < L[i-1]
min_value = L[i]
max_value = L[i-1]
i = i - 1
return (min_value, max_value)
L1 = [1, 2, 3]
findMinAndMax(L1)
不明白代码问题出现在哪?
参考GPT和自己的思路:
这段代码存在几个问题:
槽点太多,不知道该说什么了
就你这个代码,够我讲一节课的内容了。也够我发一篇质量分89分的博文了。
def findMinAndMax(L): # 定义函数,并接收参数 L 没问题
L = [] # 。。。。你把参数的数据清了是个什么鬼?
for i in range(L): # 你想干什么?L好歹是个list对象,你怎么可以用 range 呢?
L.append(L[i]) # 。。。。
while i <= 0: # 别的不说, i 从哪来的?他现在的值是多少?
if L[i] == 0:
return False # 别的且不说,你都说自己期待返回一个 tuple 了,你这里返回个 False 是干什么?
else:
L[i] < L[i-1] # 。。。。你这里是不是应该有个 if?
min_value = L[i] # 你确定不需要和原来的最小值再比较一次?
max_value = L[i-1] # 你确定不需要和原来的最大值再比较一次?
i = i - 1
return (min_value, max_value) # 返回元组,没问题
L1 = [1, 2, 3] # 初始值,没问题
findMinAndMax(L1) # 调用函数,没问题
def findMinAndMax(L):
min_value = L[0]
max_value = L[0]
i = len(L)
if len(L) == 0:
return False
else:
while i >= 0:
if L[i-1] < L[0]:
min_value = L[i-1]
else:
max_value = L[i-1]
i = i - 1
return (min_value, max_value)
L1 = [1, 2, 3]
findMinAndMax(L1)
修改了代码还是等不到想要的结果,这是为什么?