统计单词Mississippi中字母s的出现次数,Python代码为何无法得到正确结果?
代码问题分析及修复方案
你的代码存在多个关键问题,导致无法实现统计字母出现次数的需求:
- 核心逻辑偏离:当前函数找到第一个匹配字母就立刻返回索引,执行
return index时函数直接终止,完全没做「统计次数」的操作,自然拿不到预期的4。 - 循环无法推进:while循环里没有对
index做有效自增(index=index等于没写,还在return之后,根本执行不到),就算没提前return,也会卡在index=0陷入死循环。 - 变量作用域错误:函数外的
print(index)会直接报错,因为函数内部的index是局部变量,外部未定义。 - 冗余无效代码:
return index之后的所有代码都不会执行,index=index这行完全多余。
修复后的手动统计代码
def count_letter(word, letter): count = 0 index = 0 while index < len(word): if word[index] == letter: count += 1 index += 1 # 每次循环推进索引,避免死循环 return count # 调用并打印结果 print(count_letter("Mississippi", "s")) # 输出:4
更简洁的Python内置方法实现
Python字符串自带count()方法,可直接统计字符出现次数,无需手动写循环:
print("Mississippi".count("s")) # 直接输出:4
内容的提问来源于stack exchange,提问作者Baziga
相关产品推荐
相关产品推荐

