Seite 1 von 1

String darf nur bestimmte Zeichen enthalten

Verfasst: Mittwoch 31. Oktober 2018, 11:19
von d_rose
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

Re: String darf nur bestimmte Zeichen enthalten

Verfasst: Mittwoch 31. Oktober 2018, 11:26
von Sirius3
Das ist doch wohl Deine Hausaufgabe‽ Was hast Du schon gelernt über Strings, über if-Abfragen, etc.?

Re: String darf nur bestimmte Zeichen enthalten

Verfasst: Mittwoch 31. Oktober 2018, 11:30
von __blackjack__
@d_rose: Die Aufgabe kommt mir so bekannt vor: Listenelemente in String finden.

Re: String darf nur bestimmte Zeichen enthalten

Verfasst: Mittwoch 31. Oktober 2018, 11:36
von d_rose
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.

Re: String darf nur bestimmte Zeichen enthalten

Verfasst: Mittwoch 31. Oktober 2018, 11:46
von Sirius3
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.