2017-10-19 2 views
0

Ich möchte, dass der Code ", !, ?, , zählt, aber wenn ich den Code ausführen, zählt es alle eingegebenen Zeichen. Kann mir jemand sagen, wo ich versagt habe?Ich versuche, bestimmte Zeichen in Python zu zählen

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

Sie schreiben 'für y in x'. Aber 'y' ist der Eingabe-String ... –

+0

' sum (y.count (char) für char in x) ' – Reti43

+0

sei dir bewusst, dass du die y-Variable in der for-Schleife überschreibst, was den raw_input y nutzlos macht. Eine andere Sache ist, dass, wenn Sie "für etwas in iterabler" sagen, dann (etwas in iterablen) immer wahr ist. – skilledDt

Antwort

0

Incase wollen .. Ein

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

Ich würde Ihre Doppel für Schleife als

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

Sie Pythonic 1 Liner Lösung wissen, ändern kann auch Zähler verwenden, um von dem Sammelmodul:

from collections import Counter 

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

char_count = Counter(in_s) 

for c in need: 
    print(c, char_count[c]) 
Verwandte Themen