2011-04-05 8 views

Respuesta

9

me gustaría sugerir una combinación :)

while True: 
    value = raw_input('Value between 0 and 100:') 
    try: 
     value = int(value) 
    except ValueError: 
     print 'Valid number, please' 
     continue 
    if 0 <= value <= 100: 
     break 
    else: 
     print 'Valid range, please: 0-100' 

espero que ayude.

+0

while True :? ¿que significa? zindel. – kn3l

+0

un bucle sin fin en realidad. Este fragmento de código no permite que el programa siga adelante hasta que no se haya ingresado el valor. En general, es una especie de emulación 'goto' que se ajusta perfectamente bien para este tipo de tareas. Mira, hay sentencias 'break' y' continue' dentro del ciclo, así que no te preocupes, se detendrá en algún momento;) – zindel

+0

'while True:' es un modismo para crear un ciclo infinito (en el ejemplo de @ zindel aquí, un ciclo que se ejecuta hasta que el usuario ingresa un número que está dentro del rango permitido, por lo que la única manera de pasar este bloque de código es ingresar un entero válido (o Ctrl + C, supongo ...) – bgporter

5

if/else es probablemente más apropiado en este caso, ya que las excepciones planteadas serían los que arrojaron a sí mismo (y usted todavía tiene que manejarlos).

1

El enfoque más sencillo sería si/else.

Pero probablemente haría lo tanto un validador con if/else y arrojado una excepción.

Cuestiones relacionadas