Häufigkeit eines spezifischen Zeichens innerhalb einer Zeichenkette ausgeben (Python)?

2 Antworten

satz = input("Geben Sie einen Satz ein: ")
zeichen = input("Geben Sie ein, welches Zeichen gesucht werden soll: ")[0]

print("Anzahl aller Zeichen: ", len(satz))
print(f"Anzahl des Zeichens '{zeichen}':", len([z for z in satz if z == zeichen]))

Es gibt hier wirklich viele Möglichkeiten wie du das lösen kannst. Hier würde ich dich eigentlich ganz gerne an eine Suchmaschine verweisen, weil es sicherlich interessant sein könnte mal die Vor- und Nachteile der Lösungen zu sehen ;)

Aber ich kann dir ja mal einen ersten Aufschlag geben.

Um mir Arbeit zu sparen definieren wir mal

zk = zeichenkette

und

sz = suchzeichen

count = 0
for i in range(len(zk)):
    if(string[i] == sz):
        count = count + 1
risingEagle 
Fragesteller
 01.11.2021, 14:25

Kannst du kurz den Sinn von „count“ erklären und welche Funktion das „range“ hier hat?

0
Slevi89  01.11.2021, 14:38
@risingEagle

naja count ist im warsten Sinne des Wortes ein Zähler. "Range" wird benutzt um der for-schleife zu sagen wie oft sie durchlaufen werden soll. range(5) z.B. würde von 0 bis 4 zählen.

0
risingEagle 
Fragesteller
 01.11.2021, 15:04
@risingEagle

Habs jetzt ein wenig anders gelöst, nämlich mit dem .count

Wie könnte ich jetzt bei einer Zeichenkette die Gesamtzahl der Buchstaben ausgeben lassen? Das verwirrt mich noch ein wenig 😅

0
risingEagle 
Fragesteller
 01.11.2021, 15:41
@risingEagle

Das Zählen der Buchstaben habe ich jetzt so gelöst:

liste1 = list(zeichenkette)
count = 0
for i in range(len(zeichenkette)):
    if (liste1[i] == "a" or "b" or "c" or "d" or "e" or "f" or "g" or "h" or "i" or "j" or "k" or "l" or "m" or "n" or "o" or "p" or "q" or "r" or "s"
    or "t" or "u" or "v" or "w" or "x" or "y" or "z" or "A" or "B" or "C" or "D" or "E" or "F" or "G" or "H" or "I" or "J" or "K" or "L" or "M" or "N" or "O" or "P" or "Q" or "R" or "S"
    or "T" or "U" or "V" or "W" or "X" or "Y" or "Z" or "ü" or "Ü" or "ä" or "Ä" or "ö" or "Ö" or "ß"):
        count = count + 1
print("Anzahl der Buchstaben (es werden nur jene des dt. Alphabets unterstützt): ", count)

Das geht doch sicherlich schöner, oder? 😂

0
Slevi89  02.11.2021, 08:41
@risingEagle

Naja das entspricht doch aber nicht der Aufgabenstellung oder? Du meintest doch, der Buchstabe der gezählt werden soll, wird über die Eingabe abgefragt?

0
risingEagle 
Fragesteller
 02.11.2021, 11:47
@Slevi89

Ja, den Teil habe ich ja schon gelöst mit count gelöst. Ich meinte jetzt aber den Teil, in dem die Buchstaben in der Zeichenkette gezählt werden sollen.

0
Slevi89  02.11.2021, 13:01
@risingEagle

Achso, dann war die Aufgabe zweideutig formuliert ;)

Du kannst hier also auch einen build in nutzen:

Beispiel

from collections import Counter
Counter('qwertyqweryyyy')
0