ProblemPython: Dateierweiterung prüfen und fordert erneut Eingabe, wenn ungültige Dateierweiterung
eine while-Schleife Doing Dateierweiterung zu bestätigen. Wenn eine Dateierweiterung nicht .exe oder .bat ist, fragen Sie die Benutzereingabe erneut. Ich suche nach einer Lösung ohne import
endswith
break
Funktionen zu verwenden.
Code
format = " "
while file[:-4] != ".bat" and file[:-4] != ".exe":
format = input("Enter file you like to open: ")
if format[:-4] == ".bat" or format[:-4] == ".exe":
callFunction(format)
else:
file = input("Enter file you like to open: ")
@ShadowRanger Ihre Bearbeitung war eine Quelle der Inspiration.tx – gboffi
Nur ein Kopf hoch, der Satz literal Ansatz wird mehr kosten auf älteren Python; 'Tuple's von Literalen werden in allen Versionen von Python im Konstantenspeicher pro Funktion zwischengespeichert, aber [Membership-Tests für Set-Literale werden nur in' Frozenset's konvertiert und im Konstantenspeicher auf Python 3.2 + gespeichert.] (https://docs.python.org/3/whatsnew/3.2.html#optimizations); Bei 3.1 und früher (einschließlich aller 2.x-Versionen) muss das 'set' jedes Mal erstellt werden, dann wird ein Mitgliedschaftstest durchgeführt; Die Nachschlagetabelle einzusparen, indem das 'set' jedes Mal neu erstellt wird, ist ein Nettoverlust. Für zwei Elemente ist das 'Tupel' sogar in 3.2+ in Ordnung. – ShadowRanger
@ShadowRanger Vielen Dank für das Interesse, die Diskussion und den Link. Jetzt ist der Grund Ihrer Bearbeitung wirklich klar. Ich habe meine Antwort entsprechend bearbeitet (nun, ich hoffe es ...) – gboffi