再帰とは関数がそれ自体を呼び出すときであることを理解していますが、関数がそれを自分自身で呼び出して目的の結果を得る方法を正確に理解することはできません。関数に与えられた文字列の母音を数えるだけです。
def recVowelCount(s):
'return the number of vowels in s using a recursive computation'
vowelcount = 0
vowels = "aEiou".lower()
if s[0] in vowels:
vowelcount += 1
else:
???
ここからの洞察のおかげで、私は最終的にこれを思いついた。
def recVowelCount(s):
'return the number of vowels in s using a recursive computation'
vowels = "aeiouAEIOU"
if s == "":
return 0
elif s[0] in vowels:
return 1 + recVowelCount(s[1:])
else:
return 0 + recVowelCount(s[1:])