Wie realisiere ich über Python das eine einfache Eingabe einer Zeichenkette auf bestimmte Zeichen überprüft wird. Also zum Beispiel dürfen in der Eingabe nur die Zeichen a,b,c,d enthalten sein, falls doch mehr als die gültigen Zeichen. eingegeben werden soll z.B eine Fehlermeldung rausgegeben werden.
LG
String darf nur bestimmte Zeichen enthalten
- __blackjack__
- User
- Beiträge: 14033
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@d_rose: Die Aufgabe kommt mir so bekannt vor: Listenelemente in String finden.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
zeichenkette = input("Geben sie eine Zeichenfolge bestehend aus den Zeichen a,b,c und d ein:")
erlaubteElemente = "abcd"
if zeichenkette in erlaubteElemente :
print ("Eingabe war erfolgreich")
elif zeichenkette != erlaubteElemente:
print("Falsch")
hier ist mein bisheriger code
mein Problem ist das nur genau "abcd" als richtig ausgegeben wird.
ich muss es irgendwie schaffen erlaubteElemente so zu definieren das die Anzahl und Reihenfolge der Strings egal sodass zum Beispiel aabbccdd auch richtig ausgegeben wird.
erlaubteElemente = "abcd"
if zeichenkette in erlaubteElemente :
print ("Eingabe war erfolgreich")
elif zeichenkette != erlaubteElemente:
print("Falsch")
hier ist mein bisheriger code
mein Problem ist das nur genau "abcd" als richtig ausgegeben wird.
ich muss es irgendwie schaffen erlaubteElemente so zu definieren das die Anzahl und Reihenfolge der Strings egal sodass zum Beispiel aabbccdd auch richtig ausgegeben wird.
Ein String ist ein String, da kann man nichts anders definieren. Bei einer Menge an Zeichen könnte man aber auch eine Menge (Set) nehmen. Auf der anderen Seite muß man selbst die Funktionalität programmieren, die man haben möchte und darf nicht hoffen, dass ein Operator (in oder !=) auf magische Weise entgegen der Dokumentation das macht, was man haben möchte. `in` prüft, ob der Teilstring zeichenkette irgendwo in erlaubteElemente am Stück vorhanden ist, das ist bei "bcd" oder "c" der Fall, nicht bei "cb" oder "aa". `!=` vergleicht hingegen, ob die gesamte zeichenkette ungleich erlaubteElemente ist. Da != bei Dir eine Übermenge aller "not in" ist, macht das bei Dir so keine Probleme, richtig wäre es aber trotzdem einen else-Block zu schreiben.