为什么我的python程序比较完1, 2, 3后输出None
# 时间:2021.2.22
# 功能:输入一个整数或浮点数列表,输出其中最大的值
def find_biggest(my__list):
# 功能:输入一个整数或浮点数列表,输出其中最大的值
# 形参:my__list[list]:需要比较的整数或浮点数列表
# 返回:r__intorfloat[int or float]:最大的值
my__list = my__list[:]
print(my__list)
if len(my__list) > 1:
# 当还未比较完时,继续排除
if my__list[0] > my__list[1]:
# print(my__list[1])
del[my__list[1]]
find_biggest(my__list)
elif my__list[0] == my__list[1]:
# print(my__list[0])
del[my__list[0]]
find_biggest(my__list)
else:
# print(my__list[0])
del[my__list[0]]
find_biggest(my__list)
else:
# print(my__list[0])
return my__list[0]
if __name__ == '__main__':
print(find_biggest([1, 2, 3]))
def find_biggest(my__list):
# 功能:输入一个整数或浮点数列表,输出其中最大的值
# 形参:my__list[list]:需要比较的整数或浮点数列表
# 返回:r__intorfloat[int or float]:最大的值
my__list = my__list[:]
print(my__list)
if len(my__list) > 1:
# 当还未比较完时,继续排除
if my__list[0] > my__list[1]:
# print(my__list[1])
del[my__list[1]]
find_biggest(my__list)
elif my__list[0] == my__list[1]:
# print(my__list[0])
del[my__list[0]]
find_biggest(my__list)
else:
# print(my__list[0])
del[my__list[0]]
find_biggest(my__list)
else:
# print(my__list[0])
print( my__list[0])
if __name__ == '__main__':
find_biggest([1, 2, 3])
改成这样即可
你的if条件流程结束没有return呀,默认是return None的
可以用一个for循环迭代"冒泡”比较,不用这么多的if,也不需要递归这么深,如果处理的列表很大,这么深的递归,栈区可能会直接跑到堆区,直接崩溃