2009-11-23 7 views
6

Dire che voglio usare raw_input come questo:Come lasciare una ripetizione raw_input fino a quando non voglio uscire?

code = raw_input("Please enter your three-letter code or a blank line to quit: ")

sotto:

if __name__=="__main__": 

Come posso lasciarlo ripetere più volte, piuttosto che solo una volta ogni volta che esegue il programma?
Un'altra domanda è scrivere quale codice può soddisfare la condizione "o una riga vuota per uscire (il programma)".

risposta

0
if __name__ == '__main__': 

    input = raw_input("Please enter your three-letter code or leave a blank line to quit: ") 
    while input: 
     input = raw_input("Please enter your three-letter code or leave a blank line to quit: ") 
6

migliore:

if __name__ == '__main__': 
    while True: 
    entered = raw_input("Please enter your three-letter code or leave a blank line to quit: ") 
    if not entered: break 
    if len(entered) != 3: 
     print "%r is NOT three letters, it's %d" % (entered, len(entered)) 
     continue 
    if not entered.isalpha(): 
     print "%r are NOT all letters -- please enter exactly three letters, nothing else!" 
     continue 
    process(entered) 
4
while 1: 
    choice=raw_input("Enter: ") 
    if choice in ["Q","q"]: break 
    print choice 
    #do something else 
1
def myInput(): 
    return raw_input("Please enter your three-letter code or a blank line to quit: ") 

for code in iter(myInput, ""): 
    if len(code) != 3 or not code.isalpha(): 
     print 'invalid code' 
     continue 
    #do something with the code