попробуйте блокировать внутри while statement

Я только начинаю с Python 2.7, и я не понимаю, почему что-то происходит:

В следующем коде, украшенной версией примера из учебника python 2.7.2, я получаю неожиданный результат:

while True: try: x = int(raw_input("Please enter a number: ")) break except ValueError: print "Oops! That was not a valid number. Try again..." else: print 'Thanks,',x,'is indeed an integer' finally: print 'all done, bye' 

Когда я помещаю целое число, код игнорирует оператор else: и режет прямо, finally: Очевидно, что это связано с тем while True: наверху, но почему это происходит?

3 Solutions collect form web for “попробуйте блокировать внутри while statement”

Оператор break вытягивается из цикла, поэтому оператор else никогда не будет достигнут.

Вместо этого поместите break в предложение else, например:

 while True: try: x = int(raw_input("Please enter a number: ")) except ValueError: print "Oops! That was not a valid number. Try again..." else: print 'Thanks,',x,'is indeed an integer' break print 'all done, bye' 

Вероятно, это из-за инструкции break , которая оставляет цикл. Оператор break достигается только тогда, когда в строке нет исключения.

Не парень-питон, но как насчет этого

 while True: try: x = int(raw_input("Please enter a number: ")) print 'Thanks,', x, 'is indeed an integer' except ValueError: print "Oops! That was not a valid number. Try again..." finally: print 'all done, bye' 
  • Пока пользовательский ввод петли в диапазоне
  • python repeat program while true
  • Доступ к значениям datetime.now () в Python
  • Получение бесконечного цикла в серии фибоначчи в Python
  • распечатать результат, как только пользовательский ввод «сделан»,
  • Эффективный и быстрый Python Пока цикл во время использования sleep ()
  • Как использовать raw_input () с while-loop
  • Подсчет точек данных в пределах и применение буфера к изолированным точкам
  • отображение в реальном времени в цикле while с matplotlib
  • Pig Latin Translator
  • Эмулировать цикл do-while в Python?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.