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

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("这是一个值错误")

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值