为何统计单词中字母出现次数时,count值始终等于单词长度?
问题分析与修复方案
你的代码存在两个核心错误,导致统计结果始终等于单词长度:
- 变量名冲突:循环中使用的
letter变量覆盖了之前输入的目标字母变量,循环内的letter实际是单词的每一个字符,完全丢失了原本要统计的目标字母。 - 判断逻辑错误:
if letter == word[count]的逻辑是在判断当前循环字符与单词第count位字符是否相等,而count初始为0,每次循环都会因为当前字符和对应位置字符相等而自增,最终必然等于单词长度。
修正后的代码
先修改变量名避免冲突,再调整判断逻辑:
word = input('Enter a word\n') target_letter = input('Enter a letter\n') count = 0 for char in word: if char == target_letter: count += 1 print(count)
更简洁的写法
Python字符串自带count()方法,可以直接实现统计需求:
word = input('Enter a word\n') target_letter = input('Enter a letter\n') print(word.count(target_letter))
测试你提供的示例(word=try,target_letter=y),两种写法都会输出预期结果1。
内容的提问来源于stack exchange,提问作者Xavier
相关产品推荐
相关产品推荐

