Python 程序设计入门(021)—— 循环结构程序设计(2):while 循环

一、while 循环的语法

while 循环通过一个条件来控制是否继续执行循环体中的语句。其语法格式如下:

while 条件表达式:
    循环体

说明:

(1)当条件表达式的返回值为 True 时,执行循环体中的语句;

(2)循环体执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为 False,退出循环。

例如:

num = 10
while num != 0:
    num = int(input("请输入一个整数:"))
    print("你输入的整数为:",num)
    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:22
你输入的整数为: 22
请输入一个整数:1
你输入的整数为: 1
请输入一个整数:-22
你输入的整数为: -22
请输入一个整数:0
你输入的整数为: 0

二、while True 循环(while 循环的条件永远为真)

while True 循环的格式如下:

while True:
    循环体

例如:

(1)显示当前时间,并且每1秒刷新一次

import time
while True:
    print(time.strftime("%Y-%m-%d  %H:%M:%S",time.localtime()),end="\r")
    time.sleep(1)

以上程序的运行结果如下:

Python 程序设计入门(021)—— 循环结构程序设计(2):while 循环-LMLPHP

(2)显示排班表

import time
list1 = ["张三","李四","王强","张静","刘鹏","王菲","刘莉"]
while True:
    x = list1.pop(0)
    list1.append(x)
    print("当前值班人员名单:",list1[0],end="\r")
    time.sleep(1)

以上程序的运行结果如下:

Python 程序设计入门(021)—— 循环结构程序设计(2):while 循环-LMLPHP

(3)使用 break 退出 while True 循环

num = 0
while True:
    num = int(input("请输入一个数:"))
    if num == 0:
        print("输入的是0,循环结束。")
        break
            
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:10
请输入一个数:-25
请输入一个数:1
请输入一个数:2
请输入一个数:0
输入的是0,循环结束。

三、在循环体中使用 break 语句

使用 break 语句可以终止当前的循环,for 循环和 while 循环都可以使用 break 语句。break 语句的语法比较简单,只需要将其加入 while 或 for 循环的循环体即可。

break 语句一般会结合 if 语句使用,表示在某种条件下跳出循环。如果使用循环嵌套,break 语句将跳出最内层的循环。在 while 循环中使用 break 语句的形式如下:

while 条件表达式1:
    循环代码
    if 条件表达式2:
        break

在 for 循环中使用 break 语句的形式如下:

for 迭代变量 in 对象:
    循环代码
    if 条件表达式:
        break

例如:

(1)判断一个整数是否是素数

使用 for 循环:

num = 3
for i in range(2,int(num ** 0.5) + 1):
    if num % i == 0:
        print(num,"不是素数")
        break
else:
    print(num,"是素数")
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3 是素数

使用 while 循环:

num = 7
i = 2
while i < int(num ** 0.5) + 1:
    if num % i == 0:
        print(num,"不是素数")
        break
    i += 1
if i >= int(num ** 0.5) + 1:
    print(num,"是素数")     
    
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
7 是素数

(2)对输入的数进行累加操作(当输入 0 或者负数时结束)

sum1 = 0
while True:
    s = float(input("请输入数值:"))
    if s <= 0:
        break
    sum1 += s
    print("累加和为:",sum1)
        
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入数值:2
累加和为: 2.0
请输入数值:2.5
累加和为: 4.5
请输入数值:12.6
累加和为: 17.1
请输入数值:0

四、在循环体中使用 continue 语句

continue 语句可以终止本次循环而提前进入下一次循环。continue 语句的语法比较简单,只需要将其加入相应的 for 循环或 while 循环的循环体中。

在 while 循环中使用 continue 语句的形式如下:

while 条件表达式1:
    循环代码
    if 条件表达式2:
        continue

在 for 循环中使用 continue 语句的形式如下:

for 迭代变量 in 对象:
    循环代码
    if 条件表达式:
        continue

例如:对输入的数进行累加操作(忽略负数),输入0结束

sum1 = 0
while True:
    s = float(input("请输入数值:"))
    if s < 0:
        continue
    sum1 += s
    print("累加和为:",sum1)
    if s == 0:
        break
                
程序运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入数值:12
累加和为: 12.0
请输入数值:4
累加和为: 16.0
请输入数值:5.2
累加和为: 21.2
请输入数值:-233
请输入数值:-52
请输入数值:0
累加和为: 21.2
08-16 12:31