Python字符计数问题:输入字符与实际统计字符不一致
问题分析与修复
你的代码存在两个核心问题:
- 变量名冲突:循环里用
char作为迭代变量,直接覆盖了用户输入的char变量。循环结束后,char会变成字符串的最后一个字符,导致输出的字符和你输入的不一致。 - 统计逻辑错误:当前代码只是累加循环次数,本质是统计字符串总长度,并没有判断字符是否匹配目标字符。
修复后的代码
value = input("Input a string: ") target_char = input("Input a character to count: ") count = 0 for c in value: if c == target_char: count += 1 print(f"The character '{target_char}' appears {count} times.")
关键修改说明
- 将用户输入的字符变量名改为
target_char,彻底避免和循环迭代变量的命名冲突 - 循环中用
c作为迭代变量,遍历字符串的每个字符 - 添加
if c == target_char条件判断,只有字符匹配时才增加计数 - 输出时使用
target_char,确保显示的是用户最初输入的目标字符
内容的提问来源于stack exchange,提问作者Nate Gardner
相关产品推荐
相关产品推荐

