首页 > 编程笔记

Python while循环语句的用法

循环语句指的是在满足某个条件的情况下循环反复地执行某些语句。例如,像 1+2+3+...+100、1+3+5+...+99 这种计算就可以通过循环语句来轻松实现。

在 Python 中,循环语句有两种:while 语句和 for 语句,本节先来介绍一下while语句。

语法:

while 条件:
    ...

如果条件表达式返回为 True,则执行冒号后的代码块。当执行完冒号后的代码块后,会再次判断条件,如果依旧返回 True,则会重复执行代码块……如此循环执行,直到条件表达式返回 False 才结束整个循环,然后才会接着执行 while 循环结构后面的程序。

例如,计算 1+2+3+...+100 的值
n = 1 sum = 0
while n <= 100:
    sum += n # 等价于 sum = sum + n
    n += 1 # 等价于 n = n + 1
print(sum)
输出结果如下:

5050

变量 n 用于递增(也就是循环加 1),其初始值为 1。sum 用于求和,其初始值为 0。对于上述 while 循环,下面一步步地给大家分析一下:
记住,每一次执行 while 循环之前,程序都需要判断条件是否满足。如果满足,则继续执行 while 循环;如果不满足,则退出 while 循环。

当第 101 次执行 while 循环时,由于 n=101,而判断条件 n<=100 返回 False,此时 while 循环不再执行(也就是退出了 while 循环)。退出循环后,接下来就不会再执行 while 中的程序,而是执行后面的 print(sum) 了。

再举个例子,计算 1+3+5 +...+99 的值:
n = 1 sum = 0
while n < 100:
    sum += n # 等价于sum = sum + n
    n += 2 # 等价于n = n + 2
print(sum)
输出结果如下:

2500

在这个例子中,将 while 循环的条件 n<100 改为 n<=99 效果是相同的,因为这两个条件是等价的。当然,上一个例子 n<=100 等价于 n<101。大家可以思考一下为什么。

此外,sum+=n 等价于 sum=sum+n,而 n+=2 等价于 n=n+2。在实际开发中,一般使用简写形式,所以大家一定要熟悉赋值运算符的这种简写形式。至于 while 循环具体是怎么进行的,小伙伴们可以对比上一个例子的具体流程,自己整理一下思路,慢慢消化一下。

最后对于 while 语句,还需要特别说明以下两点。
举一个死循环的例子:
while True:
    print("我也是醉了")
输出结果如下:

我也是醉了
我也是醉了
……

这就是最简单的“死循环”,判断条件一直为 True,因此会一直执行 while 循环,然后不断地输出内容。

如果想要在 VSCode 中停止“死循环”,可以按Ctrl+C快捷键。在实际开发中,一定要避免“死循环”的出现,因为这是一个很低级的错误。

推荐阅读