Python 中,改变程序的控制流 continue、break 、assert、return、try、yield、raise的理解

发布时间:2024年01月04日

1、continue 语句---用于循环结构:

  • 用于终止当前循环中的剩余代码,并跳到下一次循环的开始。
  • continue语句通常与条件语句一起使用,以便在某些条件下跳过循环的剩余部分。

示例:

for i in range(5):
    if i == 2:
        continue
    print(i)
0
1
3
4

2、break 语句---用于循环结构:

  • 用于终止循环,即使循环条件没有完全迭代完成。
  • break 执行时,程序将跳出最内层的循环,继续执行循环之后的代码。

示例:

for i in range(5):
    if i == 2:
        break
    print(i)
0
1

3、assert 语句---用于调试和验证:

  • 用于在代码中插入调试断言。
  • 如果 assert 后面的表达式为 False,则会引发 AssertionError 异常。
  • 在开发过程中,assert 语句通常用于检查程序的内部状态是否满足预期条件。在生产环境中,可以通过关闭解释器的 -O 选项来禁用 assert

示例:

x = 5
assert x > 0, "x 应该大于 0"

4、return 语句:

  • 用于从函数中返回值,并终止函数的执行。
  • 在函数中使用 return 将函数调用的结果传递给调用者。

示例:

def add(x, y):
    result = x + y
    return result

print(add(3, 4)) 
7

5、异常处理语句 (try, except, finally):

try 块:

  • try 块包含可能引发异常的代码。
  • 如果在 try 块中的代码引发了异常,程序会跳到与之匹配的 except 块。

示例:

try:
    # 可能引发异常的代码
    result = 10 / 0
except ZeroDivisionError:
    # 处理除以零的异常
    print("除以零错误发生")

except 块:

  • except 块用于捕获和处理 try 块中发生的异常。
  • 一个 try 块可以有多个 except 块,每个用于处理特定类型的异常。

示例:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("除以零错误发生")
except ValueError:
    print("值错误发生")

finally 块:

try:
    # 可能引发异常的代码
    result = 10 / 0
except ZeroDivisionError:
    print("除以零错误发生")
finally:
    # 无论是否发生异常,都会执行这里的代码
    print("这段代码总是会执行")

综合使用这三个关键字,可以实现对异常的捕获和处理,同时确保在发生异常或不发生异常的情况下都能执行一些必要的清理操作。这种结构在处理文件操作、数据库连接等需要及时释放资源的场景中特别有用。

6、yield 语句---用于生成器函数:

  • 用于暂停函数的执行并返回一个值,然后可以在下一次调用时从上一次停止的地方继续执行。
  • 通常与 next() 函数结合使用。
def generator_function():
    yield 1
    yield 2
    yield 3

gen = generator_function()
print(next(gen))  
print(next(gen))  
1
2

7、raise 语句:

  • 用于显式地引发异常,可以是预定义的异常类或自定义异常类的实例。

示例:

raise ValueError("这是一个值错误")

文章来源:https://blog.csdn.net/weixin_51659315/article/details/135310102
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。