2012-03-28 10 views

Antwort

13

Sie wissen, wenn nichts für die zweite eingegeben wurde, weil es eine SyntaxError erhöhen wird. Sie können den Fehler wie diese fangen:

try: 
    y=input('Number>> ') 
except SyntaxError: 
    y = None 

dann

# not just 'if y:' because 0 evaluates to False! 
if y is None: 

testen oder vorzugsweise verwenden raw_input:

try: 
    y = int(raw_input('Number>> ')) 
except ValueError: 
    print "That wasn't a number!" 

Für die erste, x wird ein leerer String sein, wenn nichts ist eingegeben. Der Aufruf an str ist nicht erforderlich - raw_input gibt bereits eine Zeichenfolge zurück. Leere Strings können explizit getestet werden:

if x == '': 

oder implizit:

if x: 

, weil die einzige False String und leere Zeichenkette.

+1

Oder verwende 'if x.strip():' um Fälle zu vermeiden, in denen jemand nur Leerzeichen eingegeben hat ... – hochl

+0

@hoch Wenn nur Leerzeichen keine gültige Nachricht sind :) – agf

+0

Perfekt! Vielen Dank für Ihre Antwort. Agf und Hochl. :) –

0

diese Arbeit auch zu

y = input('Number>> ') 
while not y: 
    y = input('Number>> ') 
Verwandte Themen