循环语句指的是在满足某个条件的情况下循环反复地执行某些语句。例如,像 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 循环,下面一步步地给大家分析一下:
-
第 1 次执行 while 循环之后,sum=0+1,n=2。
-
第 2 次执行 while 循环之后,sum=0+1+2,n=3。
-
第 3 次执行 while 循环之后,sum=0+1+2+3,n=4。
-
……
-
第 100 次执行 while 循环之后,sum=0+1+...+100,n=101。
记住,每一次执行 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
快捷键。在实际开发中,一定要避免“死循环”的出现,因为这是一个很低级的错误。
本文链接:http://task.lmcjl.com/news/15304.html