2013-10-08 2 views
1

я не могу полностью понять, почему это:Python Неопределенный петли

while True: 
    age = int(raw_input("What is your age? ")) 
    if age >= 21: 
     print "Okay! You are old enough to drink." 
     break 
    else: 
     print "Bzzt! You are not old enough to drink." 

работает, но это не делает:

while False: 
    age = int(raw_input("What is your age? ")) 
    if age >= 21: 
     print "Okay! You are old enough to drink." 
     break 
    else: 
     print "Bzzt! You are not old enough to drink." 

Второй даже не выполнять. Моя основная проблема заключается в понимании того, как компьютер читает это, и значения, которые он проверяет. Простите, если это кажется очень простым. Я преподавал сам Python, и эта проблема возникла, и я не мог найти достаточного объяснения.

Заранее спасибо.

ответ

9

Это потому, что работает while-loop. While-loops продолжаются, пока их состояние равно True (или, по крайней мере, составляет True). Если это False (или оценки False), они ломаются. Кроме того, условие переоценивается с каждой итерацией.

С учетом этого, начиная с состояния False, естественно, это означает, что он никогда не будет выполнен.

Кроме того, это поведение не уникально для Python. Все тактические петли работают именно так. Их можно понимать как «пока это условие истинно, выполните этот блок кода».

Возможно, вы думали о цикле do-while, который запускает блок кода , тогда оценивает состояние. Однако у Python нет цикла do-while.

+0

ооо хорошо я думал он сначала оценивал блок кода, и теперь это имеет большее значение благодаря большому счету! – impactblu

0

если условие ложно, программа обыкновения даже войти в цикл

-2

премия время и половина для почасовой ставки всех рабочих выше 45 hours.using 45,10.50 Защиту computepay (H, R) если Н> 40: сумма = 45 * 10,50 + 5 * 5,25 возврата суммы еще: сумма = Н * г возврата суммы Это правильно со де используя, если .Если не предложить мне

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