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可以在forwhile循环中使用。

代码演示:

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条件语句、forwhile循环语句、嵌套控制

在这里插入图片描述