ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# while语句 只要在一个条件为真的情况下,`while`语句允许你重复执行一块语句。`while`语句是所谓 循环 语句的一个例子。`while`语句有一个可选的`else`从句。 ``` #!/usr/bin/python # Filename: while.py number = 23 running = True while running:     guess = int(raw_input('Enter an integer : '))     if guess == number:         print 'Congratulations, you guessed it.'         running = False # this causes the while loop to stop     elif guess < number:         print 'No, it is a little higher than that'     else:         print 'No, it is a little lower than that' else:     print 'The while loop is over.'     # Do anything else you want to do here print 'Done' ``` (源文件:[code/while.py](code/while.py)) ## 输出 ``` $ python while.py Enter an integer : 50 No, it is a little lower than that. Enter an integer : 22 No, it is a little higher than that. Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done ``` ## 它如何工作 在这个程序中,我们仍然使用了猜数游戏作为例子,但是这个例子的优势在于用户可以不断的猜数,直到他猜对为止——这样就不需要像前面那个例子那样为每次猜测重复执行一遍程序。这个例子恰当地说明了`while`语句的使用。 我们把`raw_input`和`if`语句移到了`while`循环内,并且在while循环开始前把`running`变量设置为`True`。首先,我们检验变量`running`是否为`True`,然后执行后面的 while-块 。在执行了这块程序之后,再次检验条件,在这个例子中,条件是`running`变量。如果它是真的,我们再次执行while-块,否则,我们继续执行可选的else-块,并接着执行下一个语句。 当`while`循环条件变为`False`的时候,`else`块才被执行——这甚至也可能是在条件第一次被检验的时候。如果`while`循环有一个`else`从句,它将始终被执行,除非你的`while`循环将永远循环下去不会结束! `True`和`False`被称为布尔类型。你可以分别把它们等效地理解为值`1`和`0`。在检验重要条件的时候,布尔类型十分重要,它们并不是真实的值`1`。 else块事实上是多余的,因为你可以把其中的语句放在同一块(与`while`相同)中,跟在`while`语句之后,这样可以取得相同的效果。 给C/C++程序员的注释 记住,你可以在`while`循环中使用一个`else`从句。