Python 不使用len运算符查找列表的长度

Python 不使用len运算符查找列表的长度,python,Python,我必须编写两位代码来查找列表的长度,而不使用len运算符,一位使用for循环,另一位使用递归。我的递归代码有问题 def list_length(list): sum=0 if not list: print("The list is empty.") exit() if type(list) == type([]): for item in (list): sum+=1 print(

我必须编写两位代码来查找列表的长度,而不使用len运算符,一位使用for循环,另一位使用递归。我的递归代码有问题

def list_length(list):
    sum=0
    if not list:
        print("The list is empty.")
        exit()
    if type(list) == type([]):
        for item in (list):
            sum+=1
        print("The length of the list is ",sum)

    else:
        print("The input is not a list.")
        exit()

my_list = [1,12,15,100];
list_length(my_list)



def recursive_length(list):
    sum=0
    if not list:
        print("The list is empty.")
        exit()
    if type(list) == type([]):
        if list:
            return 1 + recursive_length(list[1:])
            return 0
        print("The length of the list is ",sum)

    else:
        print("The input is not a list.")
        exit()

my_list = [13,12,1];
recursive_length(my_list)

第一个方法按预期工作,但对于我的递归方法,输出是“列表为空”。我应该得到“列表的长度为3”。

sum([1代表mylist中的项])有什么问题?:-)递归解决方案最终总会收到一个空列表。这是意料之中的。这就是递归的“基本情况”。在那种情况下不要退出。考虑在基本情况下应该返回什么。sum([1代表mylist中的项])有什么问题吗?:-)递归解决方案最终总会收到一个空列表。这是意料之中的。这就是递归的“基本情况”。在那种情况下不要退出。考虑在基本情况下应该返回什么。
def recursive_length(my_list):
    if not isinstance(my_list, list):
        raise ValueError("I can only determine the length of a list, sorry.")
    if not my_list:
        return 0

    return 1 + recursive_length(my_list[1:])