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

Python单个字符计数代码异常求助:返回结果不符合预期

问题修复指南

问题背景

我第一次学习计算机相关课程,目前处于第2周第2章的学习阶段,需要编写一个程序:输入包含一个字符和一个短语的字符串,输出该字符在短语中的出现次数。但代码运行结果异常,以下是相关信息,请求找出问题所在。

相关内容

原代码

user_string = input()
user_character = user_string[0][0]

times = user_string.count('user_character') # 问题行 #

print(user_string)
print(user_character)
print(times)

输入内容

t Just trying to find all the ts.

期望输出

t Just trying to find all the ts.
t
5

实际输出

t Just trying to find all the ts.
t
0 <<< 为什么是0?

问题根源

  1. 核心错误:调用count()方法时,你把变量名user_character用单引号括起来了。Python会将带引号的内容识别为普通字符串字面量,所以程序实际在输入字符串中查找的是'user_character'这一串字符,而非变量中存储的t,自然找不到匹配项,结果返回0。
  2. 次要冗余:user_string[0][0]属于多余写法,user_string[0]已经能取到输入的第一个字符,额外加的[0]完全没必要。

修复后的代码

user_string = input()
user_character = user_string[0]

times = user_string.count(user_character)

print(user_string)
print(user_character)
print(times)

额外补充

如果你的需求是仅统计短语部分(即跳过开头的字符和空格,只统计后面的内容),可以修改为以下代码:

user_string = input()
user_character = user_string[0]
# 从索引2开始截取,跳过开头的字符和空格
phrase = user_string[2:]
times = phrase.count(user_character)

print(user_string)
print(user_character)
print(times)

不过按照你的期望输出,是要统计整个输入字符串中t的出现次数(包括开头的那个),所以第一种修复代码就完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:45:12