2012-03-28 5 views

Respuesta

13

Usted sabe si no se ha introducido para el segundo porque va a levantar una SyntaxError. Se puede coger el error como este:

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

continuación, pruebe

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

o, preferiblemente, utilice raw_input:

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

Para el primero, x habrá una cadena vacía si nada está ingresado La llamada a str es innecesaria - raw_input ya devuelve una cadena. Las cadenas vacías pueden ser probados para explícitamente:

if x == '': 

o implícitamente:

if x: 

porque la única cadena es False y la cadena vacía.

+1

O use 'if x.strip():' para evitar casos en los que alguien ingresó solo espacios ... – hochl

+0

@hochl Si los espacios no son un mensaje válido :) – agf

+0

¡Perfecto! Muchas gracias por su respuesta agf y hochl. :) –

0

Esto también funciona demasiado

y = input('Number>> ') 
while not y: 
    y = input('Number>> ') 
Cuestiones relacionadas