这是我的代码,它应该递归地计算字符串的长度,因为它给列表索引的错误超出范围。请纠正我!
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)
答案 0 :(得分:0)
您的代码假定字符串以null
字节结尾。由于您没有明确地将这样的终止符添加到字符串中,因此没有一个终结符,并且您在列表末尾运行了。尝试
if len(s) == 0:
return 0
或者,假设您不允许使用len
,只需
if s:
或者
try:
dummy = s[0]
exception:
return 0