python 递归元音计数

标签 python string recursion

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/

相关文章:

javascript - Vim : Moving Through Code

python - CSV 删除字段值换行引号

java - 简单的JAVA问题。但对我来说很难

string - 如何在 Vala 中从 uint8[] 创建字符串?

java - 递归方法,接受输入 s 和 k 并生成长度为 k 的所有字符串

python - 如何在列表中使用 "\\"字符进行拆分

python - 设置缩放 QGraphicsItem 的变换点

c - C 中使用动态字符串的文件 I/O

python - 使用递归删除字符串中的空格

Python:try/except 调用返回错误值,不需要调用 except 子句