零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

3.3.1 while循环

循环语句是程序设计中常用的语句之一。任何编程语言都有while循环,Python也不例外。while循环的格式如下所示。


01     while(表达式):
02         …
03     else:
04         …

while循环的执行过程:当循环表达式为真时,依次执行while中的语句。直到循环表达式的值为False,程序的流程转到else语句。其中else子句可以省略,表达式两侧的括号也可以省略。

注意 while循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。

下面这段代码演示了while循环的使用。程序首先要求输入5个数字,然后依次输出这5个数字。


01     # while循环
02     numbers = input("输入几个数字,用逗号分隔:").split(",")
03     print(numbers)
04     x = 0
05     while x < len(numbers):         # 当x的值小于输入字数的个数的时候,执行循环内容    
06         print (numbers[x])
07         x += 1                            # 一个循环结束时给x加1

【代码说明】

·第2行代码使用input()捕获输入。按照提示输入5个数字,并用逗号分隔。input()根据输入的逗号,生成一个列表。

·第3行代码输出列表numbers的内容。

·第4行代码定义变量x的值为0。

·第5行代码循环列表numbers。

·第6行代码输出列表中第x+1个数字的值。

·第7行代码,每次循环使变量x增1。

下面【例3-6】中的这段代码演示了else子句在while循环中的使用。当变量x的值大于0时,执行循环,否则输出变量x的值。

【例3-6.py】


01     # 带else子句的while循环
02     x = float(input("输入x的值:"))        # 接收用户输入的数字并转换为float类型
03     i = 0
04     while(x  != 0):                            # Python 3中的不等于不再使用<>,一律使用!=
05         if(x > 0):
06             x -= 1                            # 如果x大于0,则减1
07         else:
08             x += 1                           # 如果x小于0,则加1
09         i = i + 1
10         print( "第%d次循环:%f" %(i, x))
11     else:
12         print ("x等于0:", x)

【代码说明】

·第2行代码输入变量x的值。

·第3行代码定义变量i,变量i表示循环次数。

·第4行代码,给出循环条件x!=0。如果x不等于0,则执行第5行代码;否则,执行else子句的内容。

·第5行代码,判断变量x的值是否大于0。

·第6行代码,如果x的值大于0,则每次循环都减1。

·第7行代码,判断变量x的值是否小于0。

·第8行代码,如果x的值小于0,则每次循环都加1。

·第9行代码,每次循环使变量i的值加1。

·第11行代码,循环结束,else子句输出变量x的值。输出结果(假设输入数字为0):x等于0:0。

在使用循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:


01     i = 1
02     while i > 0:     # i永远大于0
03         i = i + 1
04         print(i)

这段代码就是一个死循环,变量i的值永远都大于0。