formatiert ist, so dass mir offensichtlich eine Zuweisung zugewiesen wurde, um zu überprüfen, ob eine Eingabe, die ein Benutzer eingegeben hat, korrekt ist, wie AA99AAA (wobei A ein Buchstabe und 9 ist) ist eine Zahl von 0 bis 9). Also für das erste Zeichen in der Eingabe müsste es ein Buchstabe sein oder Python würde eine Art von Fehler zurückgeben und so weiter, Sie bekommen die Idee. Ich habe keine Ahnung, wo ich damit anfangen soll, ich habe versucht, mich umzusehen und habe nichts gefunden - ich glaube, ich weiß einfach nicht, wonach ich suche. Alle Hinweise würden sehr geschätzt werden, danke!Überprüfen, ob eine Eingabe korrekt in Python 3
Antwort
Um dies zu tun, könnten Sie die Zeichenfolge in 3 Teile aufteilen (die erste Gruppe von Buchstaben, die Zahlen und dann die zweite Gruppe von Buchstaben). Dann können Sie s.isalpha()
und s.isnumeric()
verwenden.
Zum Beispiel:
while True:
c=input('Password: ')
if len(c)==7 and c[:2].isalpha() and c[2:4].isnumeric() and c[4:].isalpha():
break
else:
print('Invalid input')
print('Valid input')
Ich war mir nicht bewusst, dass Sie tun könnten: 2 oder 4: so. Es hat meine Formatierung aussortiert und es funktioniert jetzt für mich. Vielen Dank! –
'[: 2]' und '[4:]' sind Spleiße an jedem Ende der Liste. Sie sind nützlich, um beim Schreiben von Code Zeit zu sparen. – boboquack
Können Sie weitere Informationen zu der Frage angeben, ist das Beispiel, das Sie angegeben haben, das Format, das Sie versuchen zu entsprechen? AA99AAA
, also 2-alpha, 2-numerisch, 3-alpha?
Es gibt zwei Ansätze von der Spitze meines Kopfes, die Sie hier nehmen könnten, wäre eine Verwendung von regulären Ausdrücken auf etwas wie [\w]{2}[\d]{2}[\w]{3}
, alternativ könnten Sie die Zeichenfolge durchlaufen (erinnern, dass Zeichenfolgen Zeichenarrays sind).
Für diesen Ansatz würden Sie Substrings erzeugen müssen, um Teile zu isolieren, sind Sie interessiert. Also ..
for c in user_input[0:2]:
if c.isdigit:
print('Invalid Input')
for c in user_input[3:5]:
...
...
Es gibt definitiv mehr pythonic Möglichkeiten, dies zu nähern, aber dies sollte genügend Informationen, um Ihnen zu helfen formalisieren eine Lösung.
Es ist nicht gut, die Lösung jemandem wegzuwerfen, wenn das OP nur einen Vorsprung will und Programmierung lernen will . Das Programmieren auf die harte Tour macht Leute zu einem besseren Programmierer :) –
Ja, das ist das Format, das ich versuche zu vergleichen. Ich sehe, was du hier machst, das hilft sehr, danke! –
Ich habe es endlich geschafft! Nach etwa einer Stunde ...
So habe ich [] Formatierung und .isdigit/.isalpha jeden Teil des Codes zu überprüfen, wie oben empfohlen, jedoch habe ich es auf eine etwas andere Art und Weise:
while True:
regNo = input("Registration number:")
if len(regNo) != 7:
print("Invalid Registration Number! Please try again")
elif regNo[:2].isdigit():
print("Invalid Registration Number! Please try again!")
elif regNo[2:4].isalpha():
print("Invalid Registration Number! Please try again!")
elif regNo[4:].isdigit():
print("Invalid Registration Number! Please try again!")
else:
break
Hoffentlich hilft dies jedem anderen, der über dieses Problem stolpert!
- 1. Überprüfen Sie, ob Werte korrekt
- 2. Überprüfen, ob Eingabe-Widget ausgewählt ist
- 3. Überprüfen, ob die Nummer korrekt ist
- 4. Python 3- Passwort überprüfen
- 5. Überprüfen Sie, ob eine Abhängigkeit korrekt in gradle
- 6. Python 3 Zeitgesteuerte Eingabe
- 7. überprüfen, ob eine Eingabe leer ist (ein Formular validieren)
- 8. überprüfen, ob das ROBDD-Diagramm korrekt ist
- 9. Programm überprüfen, ob das Passwort korrekt ist
- 10. Überprüfen Sie, ob eine Ausnahme in Python 2.7 korrekt ausgelöst wurde.
- 11. Überprüfen, ob die Eingabe leer ist JQuery
- 12. Wie zu überprüfen, ob eine Eingabe gültiger Name in Python ist
- 13. Funktionen, um zu überprüfen, ob die Eingabe des Benutzers korrekt funktioniert
- 14. Python Selen überprüfen alle in Checkbox-Eingabe
- 15. Eine Funktion zum Überprüfen, ob es eine Datei gibt und ob sie korrekt ist
- 16. Überprüfen, ob eine Formulareingabe existiert
- 17. Python 3 - überprüfen sendto() Erfolg
- 18. Überprüfen Sie, ob die Hex-Zeichenfolge im Konverter korrekt ist.
- 19. MongoDB 3 Java überprüfen, ob Sammlung vorhanden
- 20. Überprüfen, ob das von xpath zurückgegebene Element korrekt ist
- 21. Überprüfen Sie, ob ein Doppel = 1/3
- 22. Swift 3 überprüfen, ob der Timer läuft
- 23. Überprüfen, ob Eingabe in ein Array eingegeben wurde
- 24. Python: Wie python eine Summe berechnen, um sicherzustellen, dass eine Eingabe korrekt ist?
- 25. Wie überprüfen, ob eine Aufgabe bereits in Python-Warteschlange ist?
- 26. überprüfen, ob Eingabe auf stdin mit Timeout verfügbar ist
- 27. Python überprüfen, ob Listenelemente Zahlen sind
- 28. Überprüfen Sie, ob Eingabe entspricht Wort in C
- 29. Überprüfen, ob der eingegebene Benutzerwert in einer HTML-Eingabe eine Fließkommazahl ist
- 30. Python überprüfen, ob eine Liste verschachtelt ist oder nicht
Sie können Regex verwenden. Überprüfen Sie: https://docs.python.org/2/library/re.html. und +1, da Sie nicht nach einer Lösung gefragt haben, aber nur der Kopf –
Regex kann etwas schwierig sein, alternativ können Sie über Ihre Zeichenfolge iterieren und überprüfen, dass der ASCII-Wert jedes Zeichens innerhalb des Bereichs der ASCII-Werte von "0" liegt. 9' und 'A' (oder was auch immer Charakter du benötigst) –
Ich werde der Regex einen Versuch geben, aber wenn das zu schwierig wird, wie würdest du es auf die ASCII Art machen? Verwenden Sie einfach eine Art von Schleife und überprüfen Sie es jedes Mal? –