2017-10-19 10 views
0

"!?,のコードをカウントしますが、コードを実行すると、すべての文字がカウントされます。誰かが私が混乱した場所を教えてもらえますか?Pythonで特定の文字を数えようとしています

def how_eligible(): 
    total = 0 
    x = ('"','!','?',',') 
    y = raw_input('Write your essay here.') 
    for y in x: 
     if y in x: 
      total = total + 1 
    print total 
+1

「for y in x」と書いてください。しかし、 'y'は入力文字列... –

+0

' sum(xのcharのためのy.count(char)) ' – Reti43

+0

は、forループのy変数を上書きしているので、raw_inputは役に立たなくなります。別のことは、 "iterableの何かのために"と言うなら、iterableの何かは常に真実です。 – skilledDt

答えて

0

を包みなさい知りたいと私はループのためのあなたの二重を変更します。.. Python的1ライナーソリューション

x = ('"','!','?',',') 
y = input('Write your essay here.') 
len([i for i in y if i in x]) 
0

for c in y: 
    if c in x: 
     total = total + 1 
0

また、コレクションモジュールからカウンターを使用することができます。

from collections import Counter 

in_s = 'abc?c?"!' 
need = ['"', '!', '?'] 

char_count = Counter(in_s) 

for c in need: 
    print(c, char_count[c]) 
関連する問題