文章目录
- 一、while 循环
- 二、for 循环
- 1、遍历字符串
- 2、遍历 range
- 三、跳转语句
- 1、break
- 2、continue
- 四、循环中的 else 子句和 pass 语句
- 1、循环中的 else 子句
- 2、pass 语句
- 五、多层循环
- 六、补充
一、while 循环
while 是每次判断,如果条件成立,则执行循环体中的语句,否则停止。注意,类似于 if 语句,while 语句也需要满足:
- while 后面需要加上冒号 :
- while 语句的代码块需要缩进统一长度,规范写法是缩进 4 个空格
i = 0
while i < 10:print(i)i += 1
二、for 循环
for 循环语句用来按顺序枚举 range、字符串 等数据类型中的元素。for 语句同样需要满足冒号和缩进的要求。
注意:本节重在学习 for 循环,而非学习列表、元组、集合、字典等复杂数据类型,所以 for 语句与这些数据类型 配合的使用技巧 会放到下一章中展开。
1、遍历字符串
for 语句可以遍历字符串中的每个字符。例如:
for c in "python":print(c, end=' ') # 注意c本身也是字符串类型
print() # 输出回车s = "acwing"
for c in s:print(c, end=' ')
print() # 输出回车
"""output
p y t h o n
a c w i n g """
2、遍历 range
range() 函数可以生成 等差数列,可以接收 1个、2个或者3个 整数参数:
- 接收 1个 参数时,rang(x) 会按顺序返回 0, 1, 2, … , x-1 这个数列。
- 接收 2 个 参数时,rang(x, y) 会按顺序返回 x, x+1, … , y-1 这个数列。
- 接收 3 个 参数时,rang(x, y, z) 分为两种情况:
- z > 0 时,会按顺序返回 x, x+z, x+2z, x+3z, … 这个数列中小于 y 的所有数。
- z < 0 时,会按顺序返回 x, x+z, x+2z, x+3z, … 这个数列中大于 y 的所有数。
三、跳转语句
1、break
可以提前从最近的一层循环中退出,一般与 if 语句 搭配。
例题:判断一个大于 1 的整数是否是质数。
n = int(input())is_prime = True
for i in range(2, n):if n % i == 0:is_prime = Falsebreakif is_prime:print("yes")
else:print("no")
2、continue
可以跳过当前这次迭代后面的语句,并继续下一次迭代。作用与 if 语句类似。
例题:求 1∼100 中所有偶数的和。
s = 0for i in range(1, 101):if i % 2 == 1:continues += iprint(s)
四、循环中的 else 子句和 pass 语句
这里一般不怎么用,了解即可
1、循环中的 else 子句
for 或 while 循环可以包括 else 子句,会在 循环结束后执行。不过如果循环是被 break 结束的,那么 else 子句就不会执行 了。
例题:判断一个大于1的整数是否是质数。
n = int(input())for x in range(2, n):if n % x == 0:print("%d = %d * %d" % (n, x, n // x))break
else: # 注意else是for语句的子句,所以需要与for语句对齐print("%d is a prime number" % n)
2、pass 语句
类似于 if 语句,当 for 或者 while 循环里 不想写任何代码 时,可以写上 pass 语句,这个语句不执行任何动作。
for i in range(10): # 不进行任何操作passwhile True: # 死循环pass
五、多层循环
while 和 for 循环内的代码块中也可以包含循环语句。
例题:将1~100打印到一个10 * 10的矩阵中:
k = 1
for i in range(0, 10):for j in range(0, 10):print(k, end=' ')k += 1print() # 输出回车
六、补充
- 注意 多层 for 循环 中所使用的 循环变量 尽量使用 不同的变量名,防止相互干扰。