2

下面是问题的表述方式:编写一个名为双字母的递归函数,带有一个参数 asr,它是一个字符串。如果 astr 是包含“双字母”(同一字母的两次连续出现)的字符串,则 functin 返回 True,否则返回 False。例如,double letters("hello") 返回 True,而 double letters("hi there") 返回 False。

- 不要求任何人为我做这项工作,但这就是我所拥有的。我知道它流动正确,好像我用 Print('True') 替换 return True ,反之亦然,它会打印那些。递归函数不能很好地处理布尔值还是我错过了一些明显的东西?

def double_letters(astr):
    if len(astr) >= 2:
        if astr[0] == astr[1]:
            return True
        else:
            double_letters(astr[1:])
    else:
        return(False)
4

2 回答 2

5
        else:
            return double_letters(astr[1:])

否则,您确实会递归调用您的函数,但您会丢弃它的返回值,而您的函数实际上会返回None

于 2013-11-01T01:54:24.430 回答
2
double_letters(astr[1:])

在一条线上,就其本身而言,并没有多大作用。你的意思是return double_letters(astr[1:])

于 2013-11-01T01:54:18.233 回答