问题的措辞如下:编写一个名为 double letters 的递归函数,它有一个参数 astr,它是一个字符串。如果 astr 是包含“双字母”(同一字母连续出现两次)的字符串,则该函数返回 True,否则返回 False。例如,双字母 ("hello") 返回 True,而双字母 ("hi there") 返回 False。
-- 不要求任何人为我做这项工作,但这就是我所拥有的。我知道它正确流动,就好像我用 Print('True') 替换 return True ,反之亦然替换为 False,它会打印那些。递归函数不能很好地处理 boolean 值,还是我遗漏了一些明显的东西?
def double_letters(astr):
if len(astr) >= 2:
if astr[0] == astr[1]:
return True
else:
double_letters(astr[1:])
else:
return(False)
else:
return double_letters(astr[1:])
否则你会递归地调用你的函数,但你丢弃了它的返回值,你的函数实际上返回了None
。
我是一名优秀的程序员,十分优秀!