python for循环计数器返回0

时间:2012-12-20 06:34:26

标签: python for-loop counter

请原谅我的无聊。在过去的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的数量?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

print(a.count('8'))

print(a.count(b))

应该这样做。