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

Python元音辅音统计代码异常排查及优化建议请求

问题排查与改进方案

代码中的错误点

  • 逻辑错误:原代码的else分支仅在字符为空格时执行cons +=1,完全搞反了逻辑——辅音应该是非空格且不属于元音的字符,空格既不是元音也不是辅音,不应被统计到辅音中。
  • 拼写错误:输出语句里的Totle是拼写错误,正确应为Total。
  • 遍历方式冗余:用for i in range(0,len(a))再通过a[i]取字符的写法没必要,Python可直接遍历字符串的每个字符,更直观简洁。
  • 元音判断繁琐:一堆or判断重复冗余,用集合存储元音后直接判断字符是否在集合里,代码更简洁且执行效率更高。

修正后的代码

a = input("Enter the string:-")
vowel = 0
cons = 0
# 用集合存储元音,大小写都包含,判断更高效
vowels_set = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}

for char in a:
    if char != " ":
        if char in vowels_set:
            vowel += 1
        else:
            cons += 1

print("Total vowels:-", vowel)
print("Total cons:-", cons)

额外改进建议

  • 可以把字符转成小写(或大写)后再判断,减少集合元素数量,让代码更简洁:
    for char in a:
        if char != " ":
            if char.lower() in {'a','e','i','o','u'}:
                vowel +=1
            else:
                cons +=1
    
  • 若需要仅统计字母类字符(排除数字、符号等),可加入char.isalpha()判断:
    for char in a:
        if char.isalpha():
            if char.lower() in {'a','e','i','o','u'}:
                vowel +=1
            else:
                cons +=1
    

内容的提问来源于stack exchange,提问作者raksh rajput

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:21:34