程序的三个流程:
- 顺序 —— 从上向下,顺序 执行代码
- 分支 —— 根据 条件 判断,决定执行代码的 分支
- 循环 —— 让 特定代码 重复 执行
for 循环
- 语法
for iterating_var in sequence:
statements(s)
-
流程图:
- 实例:
for i in range(10):
print(i)
print "Good bye!"
- 输出结果:
1
2
3
4
5
6
7
8
9
Good bye!
while 循环
- 作用:让 指定的代码 重复的执行
- 基本语法:
初始条件设置 —— 通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件(计数器 + 1)
-
小练习:
- 需求:打印 5 遍 Hello Python
- 代码实现:
# 1. 定义重复次数计数器 i = 1 # 2. 使用 while 判断条件 while i <= 5: # 要重复执行的代码 print("Hello Python") # 处理计数器 i i = i + 1 print("循环结束后的 i = %d" % i)
-
计数方式:
- 两种计数方式:
- 自然计数法(从 1 开始)—— 更符合人类的习惯
- 程序计数法(从 0 开始)—— 几乎所有的程序语言都选择从 0 开始计数
- 两种计数方式:
-
循环计算小练习一:
- 需求:计算 0 ~ 100 之间所有数字的累计求和结果
- 代码实现:
# 0. 定义最终结果的变量 result = 0 # 1. 定义一个整数的变量记录循环的次数 i = 0 # 2. 开始循环 while i <= 100: # print(i) # 每一次循环,都让 result 这个变量和 i 这个计数器相加 result += i # 处理计数器 i += 1 print("0~100之间的数字求和结果 = %d" % result)
-
循环计算小练习二
- 需求:计算 0 ~ 100 之间 所有 偶数 的累计求和结果
- 代码实现:
# 0. 最终结果 result = 0 # 1. 计数器 i = 0 # 2. 开始循环 while i <= 100: # 判断偶数 if i % 2 == 0: # print(i) result += i # 处理计数器 i += 1 print("0~100之间偶数求和结果 = %d" % result)
循环控制 break
和 continue
- 作用:
-
break
某一条件满足时,退出循环,不再执行后续重复的代码 -
continue
某一条件满足时,不执行后续重复的代码
-
- 说明:
break
和continue
只针对 当前所在循环 有效
break
- 使用情况:在循环过程中,如果 某一个条件满足后,不再希望 循环继续执行,可以使用
break
退出循环 - 代码:
i = 0
while i < 10:
# break 某一条件满足时,退出循环,不再执行后续重复的代码
# i == 3
if i == 3:
break
print(i)
i += 1
print("over")
0
1
over
continue
- 使用情况:在循环过程中,如果 某一个条件满足后,不希望 执行循环代码,但是又 不希望 退出循环,可以使用
continue
- 代码:
i = 0
while i < 10:
# 当 i == 7 时,不希望执行需要重复执行的代码
if i == 7:
# 在使用 continue 之前,同样应该修改计数器
# 否则会出现死循环
i += 1
continue
# 重复执行的代码
print(i)
i += 1
print("over")
0
1
2
3
4
5
6
8
9
over
while 循环嵌套
- 嵌套循环:循环中还有循环:
- 格式:
while 条件 1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
while 条件 2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件 2
处理条件 1
- 练习
- 普通的打印小星星
# 1. 定义一个计数器变量,从数字1开始,循环会比较方便 row = 1 while row <= 5: print("*" * row) row += 1
- 使用循环嵌套打印小星星
row = 1 while row <= 5: # 假设 python 没有提供字符串 * 操作 # 在循环内部,再增加一个循环,实现每一行的 星星 打印 col = 1 while col <= row: print("*", end="") col += 1 # 每一行星号输出完成后,再增加一个换行 print("") row += 1
- 打印九九乘法表
# 定义起始行 row = 1 # 最大打印 9 行 while row <= 9: # 定义起始列 col = 1 # 最大打印 row 列 while col <= row: # end = "",表示输出结束后,不换行 # "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐 print("%d * %d = %d" % (col, row, row * col), end="\t") # 列数 + 1 col += 1 # 一行打印完成的换行 print("") # 行数 + 1 row += 1
常用的转义字符:
转义字符 | 描述 |
---|---|
\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
n | 换行 |
t | 横向制表符 |
r | 回车 |