ich Python bin mit 2.6.6Python geben Option, wenn Benutzereingaben String
ich diesen Code haben:
height = 20
width = 10
x = input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
while x < (width + 1) or x > 20:
print 'That option is not valid'
x = input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
Wenn der Benutzer nur die Nummer eingibt, funktioniert alles in Ordnung, aber wenn der Benutzer macht Fehler und die Art, zum Beispiel q, es gibt:
NameError: name 'q' is not defined
ich möchte, wenn der Benutzer eine Zeichenfolge einfügt, dem Benutzer, die while-Schleife Kicks und geben: Diese Option ist nicht gültig .... Wie ca n löse ich dies, ohne raw_input zu verwenden, da Breite und Höhe ich als Zahlen behandeln möchte?
Grüße,
Favolas
EDIT Nach Daniel Vorschlag, ich habe meinen Code zu dieser Änderung:
height = 20
width = 10
x = raw_input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
x = int(x)
while x < (width + 1) or x > 20:
print 'That option is not valid'
x = raw_input('Please insert a number between ' + str(width + 1) + ' and ' + str(height) + ': ')
x = int(x)
Wenn der Benutzer nur int Code eingibt, wie geplant funktioniert, aber Es ist nicht sicher vor Benutzerfehlern. Wenn die Benutzer, einen Fehler machen und 'q' eingeben gibt es diesen Fehler:
ValueError: invalid literal for int() with base 10: 'q'
Ich verstehe warum, aber wie löse ich das?
Grüße,
Favolas
Hallo Daniel. Danke für deine Antwort. Folgte Ihrem Vorschlag, hat aber immer noch einige Probleme. Ich habe meine ursprüngliche Frage bearbeitet. Favolas – Favolas
@Favolas, entfernen Sie 'x = int (x)' aus Ihrem Code. Es wird dann perfekt mit 'raw_input' funktionieren. – systemovich
Hallo Geoffrey. Danke, aber wenn ich die beiden entferne x = int (x), wenn ich dies und 12 (seine gültige) einfügen, tritt es in die While-Schleife. Es löst das Problem, dass der Benutzer eine Zeichenfolge einfügt, aber auf der anderen Seite und es funktioniert nicht mehr mit dem int – Favolas