如何计算字符串中的字符数?(Python)

Att*_*ila 2 python count

# -*- coding:UTF-8 -*-

str= "Green tree"
scr= "e"

cstr= len(str)
n=0
a=0

while n < cstr:
    if str[n] == scr:
        print(len(scr))
    n=n+1
Run Code Online (Sandbox Code Playgroud)

我必须计算 -str- 字符串中的“e”,但是当我运行这个脚本时,我得到

1
1
1
1
Run Code Online (Sandbox Code Playgroud)

而不是 4。

有什么问题?

And*_*ark 5

首先,不要str用作变量名,它会掩盖内置名称。

至于对字符串中的字符进行计数,只需使用以下str.count()方法:

>>> s = "Green tree"
>>> s.count("e")
4
Run Code Online (Sandbox Code Playgroud)

如果您只是想了解当前代码为何不起作用,那么您将打印1四次,因为您会发现 'e' 出现四次,而当发现出现时,您正在打印len(scr)始终为1.

len(scr)您应该增加一个计数器,而不是在您的 if 块中打印,以跟踪找到的总出现次数,看起来您设置了一个a未使用的变量,因此对代码进行最小的更改即可获得它工作将如下(但是如上所述,str.count()是更好的方法):

str= "Green tree"
scr= "e"

cstr= len(str)
n=0
a=0

while n < cstr:
    if str[n] == scr:
        a+=1
    n=n+1
print(a)
Run Code Online (Sandbox Code Playgroud)