Python无限循环

时间:2013-10-08 21:42:08

标签: python loops while-loop

我无法完全理解为什么:

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,这个问题出现了,我找不到足够的解释。

提前致谢。

3 个答案:

答案 0 :(得分:11)

那是因为while-loop的工作原理。 while循环在条件为True时继续(或者至少计算为True)。如果它是False(或评估为False),则会中断。此外,每次迭代都会重新评估条件。

考虑到这一点,从False条件开始自然意味着它永远不会执行。

此外,此行为并非Python独有。所有while循环都以这种方式工作。它们可以被理解为“当这个条件成立时,执行此代码块”。

也许你在想一个do-while-loop,它运行一个代码块然后评估条件。但是,Python没有do-while-loop。

答案 1 :(得分:0)

如果condition为False,程序甚至不会进入循环

答案 2 :(得分:-3)

所有工人45小时以上的小时工资奖励时间一半。

45,10.50
def computepay(h,r)
    if h>40:
       sum=45*10.50+5*5.25
       return sum
    else:
       sum=h*r
       return sum

使用if的正确代码。如果不建议我