def count_vowels(s):
if not s:
return 0
elif s[0] in VOWELS:
return 1 + count_vowels(s[1:])
else:
return 0 + count_vowels(s[1:])
我发现这段代码非常适合查找字符串中元音的数量。我也理解递归总是需要一个基本情况。我想这段代码的主要问题是第一个 if 语句的实际含义是什么?它检查什么?
if not s:
return 0
如果什么不是?有什么方法可以编写没有该部分的代码吗?
最佳答案
这是递归的退出。您的递归必须在某个时间点停止(否则它将永远运行)。
这意味着如果字符串为空 - 返回 0(空字符串中没有元音)并停止。
关于python 递归元音计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952470/