Python青少年简明教程:流程控制语句
流程控制是编程语言中用于控制程序执行顺序的机制。它决定了代码块的执行路径,包括哪些语句会被执行、哪些不会被执行以及在什么条件下执行。
本节介绍Python的流程控制语句。
if语句
if语句简单的语法格式如下:
if 表达式:
语句组
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如:a > b and a != c),如果表达式为真,则执行语句组(也称为代码块,同样缩进的多条语句);如果表达式的值为假,就跳过语句组,继续执行后面的语句。流程图如下:
示例:
score = int(input("Enter a number: "))
if score >= 60:
print("及格")
if…else语句
如果遇到只能二选一的条件。其语法格式如下:
if 表达式:
语句组1
else:
语句组2
使用 if…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果满足条件,则执行 if 后面的语句组,否则,执行 else 后面的语句组。流程图如下:
示例:
age = 20
if age < 18:
print("未成年")
elif age >= 18 and age < 65:
print("成年人")
else:
print("老年人")
如果表达式为真,执行语句;而如果表达式为假,则跳过该语句,进行下一个 elif 的判断,只有在所有表达式都为假的情况下,才会执行 else 中的语句。流程图如下:
示例:
score = 75
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("中等")
else:
print("合格")
if语句的嵌套
条件语句的嵌套是指在一个if、elif或else块中再使用其他的if、elif或else语句。
例如,用Python条件语句的嵌套判别一个数能否被2和3整除的情况:
# 定义要检查的数字
number = 9
if number % 2 == 0:
if number % 3 == 0:
print(f"{number} 能被2和3整除")
else:
print(f"{number} 能被2整除,但不能被3整除")
else:
if number % 3 == 0:
print(f"{number} 不能被2整除,但能被3整除")
else:
print(f"{number} 既不能被2整除,也不能被3整除")
注意事项
尽量避免过深的嵌套,以免混淆程序的执行流程。嵌套过多的条件语句可能会使代码变得难以阅读和维护。考虑将复杂的条件逻辑分解成函数来提高可读性。
while 循环
语法如下:
while 条件表达式:
循环体
当条件表达式的返回值为真时,则执行循环体(一组被重复执行的语句)中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。流程图如下:
示例:
count = 0
while count < 5:
print(count,end=" ")
count += 1
输出:
0 1 2 3 4
for循环
for 循环是一个依次重复执行的循环。适用于枚举或遍历序列,以及迭代对象中的元素。语法如下:
for 迭代变量 in 可迭代对象:
循环体
每次遍历一个序列或迭代对象中的元素,就执行语句组,当遍历完元素,退出循环。流程图如下:
示例:
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)
内置函数range()
range() 是 Python 中一个非常有用的内置函数,用于生成一个整数序列。它常用于 for 循环和列表生成。range() 函数有三种调用方式:
range(stop)
range(start, stop)
range(start, stop, step)
start: 序列的起始值(默认为 0)
stop: 序列的结束值(不包含此值)
step: 步长,即两个相邻数之间的差(默认为 1)
示例:
# 生成 0 到 4 的序列
for i in range(5):
print(i) # 输出: 0 1 2 3 4
# 生成 2 到 7 的序列
for i in range(2, 8):
print(i) # 输出: 2 3 4 5 6 7
# 使用步长 2 生成 1 到 9 的奇数序列
for i in range(1, 10, 2):
print(i) # 输出: 1 3 5 7 9
# 使用负步长生成递减序列
for i in range(10, 0, -1):
print(i) # 输出: 10 9 8 7 6 5 4 3 2 1
for 循环中嵌套 if
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
print(f"{num} 是偶数")
else:
print(f"{num} 是奇数")
for 循环嵌套
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
for number in numbers:
for letter in letters:
print(number, letter)
循环中的else子句
循环可以和 else 配合使用,else 下方缩进的代码指的是当循环正常结束之后要执行的代码。 while 和 for 循环也可以配合 else 使用,循环中的 else 是循环执行完后的补充,它只在循环正常结束时执行。
while-else 语句
while 循环的 else 块在循环条件变为 False 时执行(没有被 break 中断),例如:
count = 0
while count < 5:
print(count)
count += 1
else:
print("计数完成")
for-else 语句
for 循环的 else 块在循环正常完成时执行(即没有被 break 中断),例如:
for i in range(5):
print(i)
else:
print("循环正常完成")
循环控制语句
break 语句和 continue 语句都是 Python 中的循环控制语句,它们用于控制循环(for循环、while 循环)的执行流程。
break 用于立即终止当前循环。在遇到 break 之后,控制流将跳出循环,继续执行循环之后的代码。示例:
for i in range(10):
if i == 5:
break
print(i) # 只打印 0 到 4
continue 用于跳过当前循环的剩余部分,直接进入下一次迭代。在 continue 语句出现后,后面的代码将不会被执行,循环将开始下一个迭代。用 continue 语句直接跳到循环的下一次迭代。
示例:
for i in range(5):
if i == 2:
continue
print(i) # 打印 0, 1, 3, 4
循环嵌套
Python的for循环和while循环都可以嵌套。嵌套循环是一个循环内部包含另一个循环的结构。你可以根据需要组合使用for和while循环进行嵌套,但要注意控制好循环条件,以防止出现无限循环。同时,嵌套层数过多可能会导致代码可读性下降。
for循环嵌套示例:
# 简单的乘法表
for i in range(1, 10):
for j in range(1, 10):
print(f"{i}x{j}={i*j}", end="\t")
print() # 换行
这个例子创建了一个9x9的乘法表。外层循环控制行,内层循环控制列。
while循环嵌套:
i = 1
while i <= 5:
j = 1
while j <= i:
print("*", end="")
j += 1
print() # 换行
i += 1
输出:
*
**
***
****
*****
for循环与while循环的组合嵌套
具体取决于你的需求,示例:
for i in range(3): # 外层for循环
j = 0
while j < 2: # 内层while循环
print(f"i = {i}, j = {j}")
j += 1
输出:
i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1