2

質問の言い回しは次のとおりです。文字列である単一のパラメーター astr を使用して、二重文字と呼ばれる再帰関数を記述します。関数は、astr が「2 文字」 (同じ文字が 2 回連続して出現する) を含む文字列である場合に True を返し、それ以外の場合は False を返します。たとえば、2 文字 ("hello") は True を返し、2 文字 ("hi there") は False を返します。

-- 誰かに仕事を頼んでいるわけではありませんが、これが私が持っているものです。return True を Print('True') に、またはその逆を False に置き換えると、それらが出力されるように、正しく流れることがわかります。再帰関数はブール値でうまく機能しませんか、それとも露骨に明らかな何かが欠けていますか?

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:])

on a line 自体は、あまり効果がありません。ということreturn double_letters(astr[1:])ですか?

于 2013-11-01T01:54:18.233 に答える