2013-12-02 27 views
7

Ho una funzione che valuta l'input, e devo continuare a chiedere il loro input e valutarlo fino a quando non entrano in una riga vuota. Come posso configurarlo?Python: come continuare a ripetere un programma fino a quando non si ottiene un input specifico?

while input != '': 
    evaluate input 

ho pensato di usare qualcosa di simile, ma non ha funzionato esattamente. Qualsiasi aiuto?

+1

Come ci si non funziona? Che cosa fa? Cosa ti aspetti di vedere? – Collin

+0

Quel codice sopra richiede ripetutamente l'input se non è "". Ho bisogno di valutare l'input fino a quando non viene inserita una riga vuota. – user3033494

+1

Possibile duplicato di [Chiedere all'utente l'input finché non danno una risposta valida] (http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid- risposta) – lmiguelvargasf

risposta

16

Ci sono due modi per farlo. In primo luogo è come questo:

while True:    # Loop continuously 
    inp = raw_input() # Get the input 
    if inp == "":  # If it is a blank line... 
     break   # ...break the loop 

Il secondo è simile a questo:

inp = raw_input()  # Get the input 
while inp != "":  # Loop until it is a blank line 
    inp = raw_input() # Get the input again 

Si noti che se si è in Python 3.x, è necessario sostituire raw_input con input.

+0

Questo solleverà un errore EOF all'ultimo input se non ci saranno ulteriori input –

1

probabilmente si desidera utilizzare un valore separato che tiene traccia se l'ingresso è valida:

good_input = None 
while not good_input: 
    user_input = raw_input("enter the right letter : ") 
    if user_input in list_of_good_values: 
     good_input = user_input 
Problemi correlati