2015-07-03 2 views
-1

Я новый программист, и я изо всех сил с решением этой проблемы:нужно короче/более элегантное решение питона во время цикла

ввода данных пользователем с петлями и условные. Используйте raw_input(), чтобы вызвать номер между 1 и 100. Если вход соответствует критериям, укажите это на экране и выйдите. В противном случае отобразится сообщение об ошибке и повторно запросите пользователя до получения правильного ввода.

Моя последняя попытка, наконец, работал, но мне интересно знать ваши более элегантные решения, моя память ценит все ваши ввода: P

n = int(input("Type a number between 1 and 100 inclusive: ")) 
if 1 <= n <= 100: 
    print("Well done!" + " The number " + str(n) + " satisfies the condition.") 
else: 
    while (1 <= n <= 100) != True: 
     print("Error!") 
     n = int(input("Type a number between 1 and 100: ")) 
    else: 
     print ("Thank goodness! I was running out of memory here!") 

ответ

4

Вы можете упростить код, используя один цикл:

while True: 
    n = int(input("Type a number between 1 and 100 inclusive: ")) 
    if 1 <= n <= 100: 
     print("Well done!" + " The number " + str(n) + " satisfies the condition.") 
     print ("Thank goodness! I was running out of memory here!") 
     break # if we are here n was in the range 1-100 
    print("Error!") # if we are here it was not 

Вы только распечатываете вывод и break, если пользователь вводит правильный номер, или будет напечатан print("Error!"), и пользователь будет запрошен снова.

На стороне примечания, если вы используете python2, вход является эквивалентом eval(raw_input()), если вы принимаете пользовательский ввод, вы должны обычно использовать raw_input в соответствии с инструкциями в своем вопросе.

+0

Вы печатаете быстро, +1 – paisanco

+0

@paisanco. если бы вы видели, как я печатаю, вам интересно, как;) –

Смежные вопросы