Kontrollieren, ob ein String mindestens 3 Buchstaben enthält (Python)?
Moin Moin Leute, wir müssen gerade in der Schule ein konsolenbasiertes Spiel machen und ich versuche gerade die Bedingungen für den Usernamen zu erstellen. Da kommt nämlich auch schon meine Frage: Wie kann man in Python prüfen, ob ein eingegebener String mindestens aus 3 Buchstaben besteht?
Wäre euch echt dankbar, wenn ihr mir dabei helfen könntet!
Vielen Dank im Voraus. Euer Niction
2 Antworten
Da hilft nur ein Counter innerhalb einer Schleife, welche jeden Character einzeln auf "[A-ZÄÖÜa-zäöüß]" oder "[:letter:]" (RegExp) prüft.
Funktioniert wirklich, interessant :D. Danke dir. Aber wie genau funktioniert das Prinzip mit
re.match("[A-ZÄÖÜa-zäöüß]", c
"re" ist ein Regular Expression Objekt (kurz "RegExp").
RegExp ist ein Zeichenfolgen-Vergleichs-Modul, was sehr viel komplexere String-Vergleiche ermöglicht als nur "gleich" oder "ungleich".
Hier mal einige Beispiele:
Text = "Dies ist 1 Text von 2."
Jetzt kannst Du mit alten Text-Suchen z.B. nur nach "1" oder "2" suchen, aber nicht nach irgend einer Zahl. Mit RegExp findest Du mit diesen Suchmustern alle Zahlen:
Suche = "\d"
Suche = "\d+"
Suche = "[0123456789]"
Suche = "[0-9]"
Suche = "[:digit:]+"
Das sind alles unterschiedliche Suchmuster die alle Zahlen oder Ziffern suchen und diese dann ausgeben. Alle Suchmuster repräsentieren nur eine Ziffer. Das "+" hierbei erweitert die Suche nach Strings mit einer oder mehr Ziffern. Die eckigen Klammern umschließen eine Auswahlmöglichkeit. Der letzte Ausdruck funktioniert nicht in allen RegExp-Maschinen, bietet aber eine universellere Option in Deinem Fall ("[:letter:]"), welche nicht nur das deutsche Alphabet umfasst, sondern alle (also auch z.B. "[éđĸłæ]").
Schau Dir mal im Netz die RegExp-Tutorials an. Man kann noch viel mehr damit machen und richtig genutzt ist das schon fast eine eigene Skriptsprache.
Geht easy über "len"
if len(username)<3.....
Len gibt die Länge eines strings in Zeichen aus
Jo, das kontrollieren ich auch schon und gucke auch ob der Name nur ein Zahlen besteht mit .isdigit(), aber ich wollte auch zusätzlich noch kontrollieren, ob der eingegebene Name aus mindestens 3 Buchstaben besteht :S.
Die Negation von "isdigit()" beinhaltet auch alle anderen Zeichen außer den Zahlen, also auch Interpunktion, Smileys, mathematische Operatoren, etc., etc., etc.
Der Unicode-Satz umfasst 65.535 Zeichen und nur 10 davon werden durch "isdigit()" abgedeckt. Aber nicht alle restlichen 65.525 Zeichen sind Buchstaben!
Okay so genau hab ich mir isdigit nicht angesehen. Nie damit gearbeitet^^
Würde sagen der genervte Markus hilft dir ab hier weiter.
Ehrlich, bei solchen Technik-Fragen bin ich immer t-o-t-a-l tiefen-entspannt.
Da geht's ja auch nicht um "Meinungen".
(^,^)
Ich kenne mich jetzt nicht wirklich mit Python aus und musste mal eben nachschauen, aber es sollte so funktionieren:
Hat mich gerade doch selbst mal interessiert ;)