首页 > 编程笔记

Python while循环语句的用法

循环结构又称为重复结构,能够根据所设立的条件重复执行某一段程序语句,直到条件不成立才跳出循环。Python 提供了 for、while 两种循环语句来执行重复程序代码的工作。

while 循环主要由两个元素组成:
本文我们重点介绍 Python while 循环,想了解 for 循环的读者请转到:Python for循环的用法

Python while 循环

如果所要执行的循环次数确定,那么使用 for 循环就是最佳选择。但对于某些不确定次数的循环,while 循环就可以派上用场了。

while 循环与 for 循环类似,都属于前测试型循环。两者最大的不同之处就在于 for 循环需要给它一个特定的次数;而  while 循环不需要,只要在判断结果为 True 的情况下就能一直执行。

while 循环内的语句可以是一个语句,也可以是多个语句形成的程序块。while 关键字后面到冒号“:”之间的表达式是用来判断是否执行循环的测试条件,语法格式如下。

while 条件表达式:
    要执行的程序语句


当程序遇到 while 循环时,它会先判断条件表达式中的条件,如果条件成立,那么程序就会执行 while 循环下的语句一次,完成后会再次判断条件,如果还成立那么就继续执行循环,当条件不成立时循环就中止,例如下面的程序。

i=1
while i < 10:   #循环条件表达式
    print( i)
    i += 1   #调整变量增减值


当 i 小于 10 时,执行 while 循环内的语句,所以 i 会加 1,直到 i 等于 10。当条件不成立时,就会中止循环,例如下面的代码。
sum=0
count = 0 #计数器
while count <= 20: 
   sum += count #将3的倍数累加
   count += 3
print('1~20内的3的倍数的总和为: ', sum) #输出累加结果

上面例子中的 while 循环变量 sum 用来存储累加结果;count 是一个计数器,用来取得指定数值范围内所有的 3 的倍数,因此循环每执行一次 count 值就加 3。

Python while 循环应用示例

【示例1】应用 while 循环让用户输入捐款金额,并同步进行累加的工作。当输入的捐款金额为 0 时,输出所有捐款金额的总和。代码如下:
total = 0
money = -1
count = 0 #计数器

# 进入while循环
while money != 0:
    money = int(input('输入捐款金额:')) #用int()转为整数
    total += money
    print('累计:', total)
print('总捐款金额:', total, '元')
输出结果:

输入捐款金额:52
累计: 52
输入捐款金额:68
累计: 120
输入捐款金额:58
累计: 178
输入捐款金额:54
累计: 232
输入捐款金额:89
累计: 321
输入捐款金额:81
累计: 402
输入捐款金额:0
累计: 402
总捐款金额: 402 元

程序解说:
【示例2】利用 while 循环来计算当 1000 依次减去 1、2、3……时,到哪个数相减的结果为负。代码如下:
x,sum=1,1000
while sum>0: #while循环
    sum-=x
    x=x+1
print(x-1)
输出结果:

45

程序解说:
第 2 行:定义 while 循环的成立条件为 “sum>0”,sum 依次减去 x 的值。x 每循环一次就累加一次,当循环条件不成立时,输出 x 的值。

【示例3】利用辗转相除法与while循环来求任意两个正整数的最大公因数。代码如下:
print("求两个正整数的最大公因数:")
print("输入两个正整数:")
#输入两个正整数
Num1=int(input())
Num2=int(input())
if Num1 < Num2:
    TmpNum=Num1                          
    Num1=Num2
    Num2=TmpNum#找出这两个正整数中的较大值
while Num2 != 0:
    TmpNum=Num1 % Num2           
    Num1=Num2                             
    Num2=TmpNum #辗转相除法
print("最大公因数为:%d" %Num1)
输出结果:

输入两个正整数:
72
60
最大公因数为:12

程序解说:

【示例4】利用 while 循环,让用户输入一个整数并将此整数的每一个数字反向输出。代码如下:
n=int(input("请输入任意一个整数:"))
print("反向输出的结果:",end='')
while n!=0:  #while循环
    print("%d" %(n%10),end='') #求出余数值
    n//=10
输出结果:

请输入任意一个整数:987654321
反向输出的结果:123456789

程序解说:

优秀文章