-1

私の愚かさを許してください。私は本当に、本当にそれを学びたいので、過去 6 か月間 Python の本や Web サイトにアクセスしてきましたが、時折、最も単純なコードが機能しない理由がわからないという障害にぶつかることがあります。

これについてかなりの数のスタックオーバーフローの回答を見てきましたが、役に立ちませんでした。

私は明示的に 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 に答える