Python String auf Buchstaben prüfen?

FXG36  13.03.2021, 13:13

Was genau soll den geprüft werden? An welcher Stelle ein Buchstabe ist? Oder soll ein neuer String erzeugt werden?

Shadowbiker21 
Beitragsersteller
 13.03.2021, 14:02

Es soll geprüft werden, ob an jeder einzelnen Stelle ein Buchstabe oder ein anderes Zeichen vorhanden ist.

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Sagen wir, du hast beispielsweise den folgenden String text gegeben:

text = "Kennst du ein Synonym für „schließlich“?"

Was genau willst du nach der Prüfung haben?

------------

Eine Liste, die für jedes Zeichen des Strings einen Wahrheitswert enthält, ob an der entsprechenden Stelle im String ein Buchstabe ist?

BUCHSTABEN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜßäöüẞ"

text = "Kennst du ein Synonym für „schließlich“?"

isBuchstabeListe = [True if c in BUCHSTABEN else False for c in text]

-----------

Den String, der nur aus den Buchstaben besteht, die in dem String text vorkommen?

BUCHSTABEN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜßäöüẞ"

text = "Kennst du ein Synonym für „schließlich“?"

reducedText = "".join([c for c in text if c in BUCHSTABEN])

------------

Oder möchtest du alle Zeichen durchgehen und immer wenn es ein Buchstabe ist etwas tun, und wenn es kein Buchstabe ist etwas anderes tun?

BUCHSTABEN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜßäöüẞ"

text = "Kennst du ein Synonym für „schließlich“?"

for c in text:
    if c in BUCHSTABEN:
        #tu etwas
    else:
        #tu etwas anderes

-----------

Oder möchtest du etwas anderes machen?

============

Des Weiteren müsste man evtl. genauer klären, was du als Buchstaben zählst. Ich habe mich, wie du evtl. bei meinen Code-Beispielen bemerkt hast, auf die deutsche Schrift bezogen und demnach beispielsweise auch „ä“ oder „ß“ als Buchstaben gezählt.


Shadowbiker21 
Beitragsersteller
 13.03.2021, 17:20

Das letzte Beispiel ist schon sehr hilfreich, danke. Wenn es ein Buchstabe ist soll dieser ausgegeben werden. Wenn es sich um ein Sonderzeichen handelt, soll dieses quasi übersprungen und nicht ausgegeben werden. Gibt es dafür irgendeine Möglichkeit, um die Sonderzeichen zu überspringen?

0
mihisu  13.03.2021, 19:11
@Shadowbiker21

Bei meinem letzten Beispiel kannst du einfache den Teil mit „else:“ weglassen. Dann wird einfach nichts gemacht, wenn ein Sonderzeichen auftritt.

Und bei dem „#tu etwas“ kannst du mit „print(c)“ den Buchstaben ausgeben lassen.

BUCHSTABEN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÖÜßäöüẞ"

text = "Kennst du ein Synonym für „schließlich“?"

for c in text:
    if c in BUCHSTABEN:
        print(c)
1