2.6 控制语句
2.6 控制语句
2.6.1 if 条件语句
2.6.1.1 基本结构
if
语句用于条件判断,如果条件为真,则执行缩进的代码块。
代码演示:
x = 10
if x > 5:
print("x is greater than 5")
输出:
x is greater than 5
2.6.1.2 if-else 分支
if-else
结构在条件为真时执行if
下的代码,否则执行else
下的代码。
代码演示:
x = 5
if x > 5:
print("x is greater than 5")
else:
print("x is less than or equal to 5")
输出:
x is less than or equal to 5
2.6.1.3 多重条件 if-elif-else
if-elif-else
结构用于多个条件的判断。
代码演示:
x = 20
if x > 30:
print("x is greater than 30")
elif x > 10:
print("x is greater than 10 but less than or equal to 30")
else:
print("x is 10 or less")
输出:
x is greater than 10 but less than or equal to 30
2.6.1.4 条件表达式
条件表达式是一种简洁的方式来进行条件判断。
代码演示:
x = 10
result = "x is positive" if x > 0 else "x is non-positive"
print(result)
输出:
x is positive
2.6.2 for 循环语句
2.6.2.1 遍历序列
for
循环用于遍历序列中的每个元素。
代码演示:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
输出:
apple
banana
cherry
2.6.2.2 使用 range() 循环
range()
函数用于生成一个数字序列,常用于for
循环。
代码演示:
for i in range(5):
print(i)
输出:
0
1
2
3
4
2.6.2.3 循环中的 else 子句
for
循环中的else
子句在循环正常结束后执行,如果循环被break
终止,则不执行。
代码演示:
for i in range(3):
print(i)
else:
print("Loop completed without break")
输出:
0
1
2
Loop completed without break
2.6.3 while 循环语句
2.6.3.1 基本结构
while
循环在条件为真时重复执行代码块。
代码演示:
i = 0
while i < 3:
print(i)
i += 1
输出:
0
1
2
2.6.3.2 使用条件控制循环
while
循环可以与条件语句结合使用来控制循环的继续或终止。
代码演示:
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
输出:
0
1
2
2.6.3.3 无限循环与终止
while
循环可以创建无限循环,直到遇到break
。
代码演示:
while True:
print("Infinite loop")
break
输出:
Infinite loop
2.6.4 嵌套控制语句
2.6.4.1 条件与循环的组合
条件语句可以嵌套在循环中,以实现复杂的控制逻辑。
代码演示:
for i in range(3):
if i == 1:
continue
print(i)
输出:
0
2
2.6.4.2 多层嵌套的实现
循环和条件语句可以多层嵌套。
代码演示:
for i in range(2):
for j in range(2):
if i == j:
print(f"i and j are equal: {i}")
输出:
i and j are equal: 0
i and j are equal: 1
2.6.5 break
2.6.5.1 用于终止循环
break
用于立即终止循环。
代码演示:
for i in range(5):
if i == 3:
break
print(i)
输出:
0
1
2
2.6.5.2 在 for 和 while 循环中的用法
break
可以在for
和while
循环中使用。
代码演示:
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
输出:
0
1
2
2.6.6 continue
2.6.6.1 跳过当前循环
continue
用于跳过当前循环的剩余部分,继续下一次循环。
代码演示:
for i in range(5):
if i == 3:
continue
print(i)
输出:
0
1
2
4
2.6.6.2 用于优化循环逻辑
continue
可以用于优化循环逻辑,跳过某些不需要处理的情况。
代码演示:
for num in [1, 2, 3, 4, 5]:
if num % 2 == 0:
continue
print(num)
输出:
1
3
5
2.6.7 return
2.6.7.1 返回函数的结果
return
用于从函数返回结果。
代码演示:
def sum_two_numbers(a, b):
return a + b
result = sum_two_numbers(2, 3)
print(result)
输出:
5
2.6.7.2 与控制语句的结合
return
可以与控制语句结合使用,提前退出函数。
代码演示:
def get_first_positive(numbers):
for num in numbers:
if num > 0:
return num
return None
print(get_first_positive([-1, -2, -3, 4]))
输出:
4
2.6.8 yield
2.6.8.1 定义生成器
yield
用于定义生成器,每次产生一个值。
代码演示:
def count_up_to(max):
n = 0
while n < max:
yield n
n += 1
counter = count_up_to(3)
for number in counter:
print(number)
输出:
0
1
2
2.6.8.2 生成器在循环中的应用
生成器可以在循环中使用,逐个产生值。
代码演示:
def read_numbers(file_name):
with open(file_name, 'r') as file:
for line in file:
yield int(line.strip())
numbers = read_numbers('numbers.txt')
for number in numbers:
print(number)
2.6.8.3 yield 和 return 的对比
yield
用于生成器,逐个返回值,而return
用于返回单一值。
代码演示:
def with_return(max):
return [i for i in range(max)]
def with_yield(max):
for i in range(max):
yield i
print(with_return(3)) # [0, 1, 2]
print(list(with_yield(3))) # [0, 1, 2]
输出:
[0, 1, 2]
[0, 1, 2]
以上是2.6节“控制语句”的内容,包括基本的if
条件语句、for
和while
循环语句、嵌套控制