# -*- 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
我必须在 -str- 字符串中计算“e”,但是当我运行这个脚本时,我得到了
1
1
1
1
而不是 4。
有什么问题?
请您参考如下方法:
首先,不要使用str作为变量名,它会掩盖内置名称。
至于计算字符串中的字符数,只需使用 str.count()方法:
>>> s = "Green tree"
>>> s.count("e")
4
如果您只是想了解为什么您当前的代码不起作用,您将打印 1 四次,因为您会发现四次出现的“e”,当发现一次出现时,您正在打印 len(scr),它始终为 1。
不是在你的 if block 中打印 len(scr),你应该递增一个计数器来跟踪找到的总出现次数,看起来你设置了一个变量 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)
