为什么我的python程序比较完1, 2, 3后输出None???

为什么我的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,也不需要递归这么深,如果处理的列表很大,这么深的递归,栈区可能会直接跑到堆区,直接崩溃