-1

请原谅我的粗心。在过去的 6 个月里,我一直在访问 Python 书籍和网站,因为我真的非常想学习它,但有时我会遇到障碍,我就是不明白为什么最简单的代码不起作用。

我已经查看了很多关于此的堆栈溢出答案,但无济于事。

我正在做一些明确需要使用 python for 循环计数器系统的练习(我知道有一个叫做 itertools 和 enumerate 的东西)。请看下面:

>>> a = raw_input('Please enter a 7-digit number: ')    
Please enter a 7-digit number: 7893848    
>>> b = raw_input('Please enter a single digit number: ')    
Please enter a single digit number: 8    
    for i in a:            
        count = 0            
        if i == b:                
            count += 1            
        print count

输出:

0
1
0
0
1
0
1

我如何让它返回 3 的总和 - 即变量 a 中 8 的数量?

4

2 回答 2

2

Python 字符串对象有一个count()方法可以满足您的需要:

print(a.count('8'))

或者

print(a.count(b))

应该这样做。

于 2012-12-20T08:26:29.387 回答
2

您在每个循环周期中将计数器设置为零。您必须在循环之外定义它。尝试:

c=0
for i in range(10):
    print c    
    c+=1

如果您只想打印 8 在变量中的次数,您还必须将 print 语句保留在循环之外,这样它只会在循环耗尽后打印:

a='7893848'
b='8'
count=0
for i in a:
    if i==b:
        count+=1
print count
于 2012-12-20T06:35:46.963 回答