You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python统计字符串元音字母数量时遇TypeError问题求助

问题分析与修复方案

错误原因

  • 变量名冲突:你用vowels作为循环遍历字符串的变量,直接覆盖了原本用来计数的整数变量vowels。循环里的vowels变成了字符串中的单个字符,执行vowels + 1时就会尝试把字符串和整数拼接,触发类型错误。
  • 判断逻辑错误:if vowels == lower or upper的写法完全不符合需求,既没有判断字符是否属于小写元音,也没有判断是否属于大写元音,而且这个条件永远为True(因为非空列表upper的布尔值为True)。

修复后的代码

def count_vowels(sentence: str) -> int:
    # 合并大小写元音为集合,查询效率更高
    vowels_set = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
    count = 0
    for char in sentence:
        if char in vowels_set:
            count += 1
    return count

额外优化思路

可以先把输入字符串转成小写(或大写),减少元音集合的元素数量:

def count_vowels(sentence: str) -> int:
    vowels_set = {'a', 'e', 'i', 'o', 'u'}
    count = 0
    for char in sentence.lower():
        if char in vowels_set:
            count += 1
    return count

内容的提问来源于stack exchange,提问作者karo clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:42:05