递归计算字符串的长度(错误:列表索引超出范围)

时间:2018-03-21 18:40:39

标签: python string recursion indexing string-length

这是我的代码,它应该递归地计算字符串的长度,因为它给列表索引的错误超出范围。请纠正我!

s=list()
smallOutput=int()
def lengthh(s):
    if (s[0]=='\0'):
        return 0

    smallOutput=lengthh(s[1:])
    return 1 + smallOutput

strr="abc"
array=list(strr)
print lengthh(array)

1 个答案:

答案 0 :(得分:0)

您的代码假定字符串以null字节结尾。由于您没有明确地将这样的终止符添加到字符串中,因此没有一个终结符,并且您在列表末尾运行了。尝试

if len(s) == 0:
    return 0

或者,假设您不允许使用len,只需

if s:

或者

try:
    dummy = s[0]
exception:
    return 0