Python流程控制

目录

1. 条件语句

2. 循环语句

3. 控制循环的语句

4. 异常处理

5. assert 语句

6. with 语句

7. 生成器和迭代器

总结


在 Python 中,流程控制语句用于控制代码的执行路径。

1. 条件语句

条件语句用于根据条件的真假来决定执行哪一块代码。主要的条件语句有 ifelifelse

  • if 语句

    • 用于测试一个条件是否为真,如果为真,则执行相应的代码块。
    x = 10
    if x > 5:
        print("x 大于 5")
    

  • elif 语句

    • 用于在 if 语句的条件不满足时测试其他条件。
    x = 10
    if x > 10:
        print("x 大于 10")
    elif x == 10:
        print("x 等于 10")
    

  • match与case语句: 
    • case 语句通常指的是用于实现类似于其他编程语言中 switch-case 的功能。Python 在 3.10 版本中引入了 match 语句,这是类似于 switch-case 的一种结构,称为模式匹配
def handle_value(value):
    match value:
        case 1:
            print("值是 1")
        case 2:
            print("值是 2")
        case 3:
            print("值是 3")
        case _:
            print("值不在预期范围内")

# 测试
handle_value(2)  # 输出: 值是 2
handle_value(5)  # 输出: 值不在预期范围内

 

2. 循环语句

循环语句用于重复执行代码块。主要有 for 循环和 while 循环。

  • for 循环

    • 用于遍历序列(如列表、元组、字符串等)或其他可迭代对象。、
    for i in range(5):
        print(i)
    
    fruits = ["apple", "banana", "cherry"]
    for fruit in fruits:
        print(fruit)
    

  • while 循环

    • 在给定条件为真的情况下重复执行代码块。循环会一直进行直到条件变为假。
    count = 0
    while count < 5:
        print(count)
        count += 1
    

  • while 循环 + else

    • while 循环语句的 else 子句具有特殊的功能。它的作用是在循环正常结束后执行一段代码。具体来说,else 子句在循环没有被 break 语句中断的情况下执行。如果循环由于 break 语句中断,则 else 子句中的代码不会执行。

      count = 0
      
      while count < 5:
          print("当前计数值:", count)
          count += 1
      else:
          print("循环正常结束,没有被中断。")
      

        

 

3. 控制循环的语句

  • break

    • 用于提前退出循环,不再执行循环体中的剩余代码。
    for i in range(10):
        if i == 5:
            break
        print(i)
    

  • continue

    • 跳过当前循环的剩余部分,直接进入下一次循环的测试条件。
    for i in range(10):
        if i % 2 == 0:
            continue
        print(i)
    

  • pass

    • 占位符,用于表示“空”代码块,通常在需要一个语法结构但又不想实现任何功能时使用。
    for i in range(10):
        pass  # 循环体为空
    

4. 异常处理

异常处理用于捕获和处理运行时错误,以避免程序崩溃。

  • try

    • 包含可能引发异常的代码块。
  • except

    • 用于捕获和处理异常。
  • else

    • 如果没有异常发生,则执行的代码块。
  • finally

    • 不论是否发生异常,始终执行的代码块。

    示例:

    try:
        result = 10 / 0
    except ZeroDivisionError:
        print("不能除以零")
    else:
        print("没有发生异常")
    finally:
        print("无论如何都会执行")
    

5. assert 语句

用于调试,检查条件是否为真。如果条件为假,assert 语句会引发 AssertionError

在 Python 中,AssertionError 是一种内置的异常类型,它用于表示 assert 语句失败时引发的错误。assert 语句是用于调试的工具,帮助开发者在代码中检查条件是否为真。如果条件为假,assert 语句会引发 AssertionError,从而提醒开发者某个预期的条件没有得到满足。 

x = 0
assert x > 0, "x 应该大于 0"
#因为x不满足大于0的条件,就会从触发运行提示

6. with 语句

用于简化资源管理,如文件操作。它会在代码块执行完后自动清理资源。

with open('file.txt', 'r') as file:
    contents = file.read()
    print(contents)
# 文件在这里会自动关闭

7. 生成器和迭代器

  • 生成器 (generator):使用 yield 关键字返回一个值,并在下次调用时从上次停止的地方继续执行。

    def countdown(n):
        while n > 0:
            yield n
            n -= 1
    
    for num in countdown(5):
        print(num)
    

  • 迭代器 (iterator):实现 __iter__()__next__() 方法的对象。

    class MyIterator:
        def __init__(self, start, end):
            self.current = start
            self.end = end
    
        def __iter__(self):
            return self
    
        def __next__(self):
            if self.current > self.end:
                raise StopIteration
            self.current += 1
            return self.current - 1
    
    for num in MyIterator(1, 3):
        print(num)

总结

  • 条件语句ifelifelse 用于基于条件执行不同的代码块。
  • 循环语句forwhile 用于重复执行代码块,breakcontinue 控制循环的执行。
  • 异常处理tryexceptelsefinally 用于处理和管理运行时错误。
  • assert 语句:用于调试,检查条件是否为真。
  • with 语句:用于资源管理,确保资源正确释放。
  • 生成器和迭代器:用于创建和遍历自定义的可迭代对象。

相关推荐

  1. Python流程控制语句

    2024-07-22 20:54:02       48 阅读
  2. Python流程控制

    2024-07-22 20:54:02       20 阅读
  3. 4. 深入 Python 流程控制

    2024-07-22 20:54:02       45 阅读
  4. python】程序的流程控制

    2024-07-22 20:54:02       48 阅读
  5. Python学习笔记(四)流程控制方法

    2024-07-22 20:54:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 20:54:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 20:54:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 20:54:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 20:54:02       55 阅读

热门阅读

  1. lua 写一个函数 判断两个时间戳是否在同一周

    2024-07-22 20:54:02       19 阅读
  2. 在淘客返利系统中使用AOP实现日志记录与审计

    2024-07-22 20:54:02       17 阅读
  3. GANs in Action: Augmenting Target Detection with Synthetic Data

    2024-07-22 20:54:02       16 阅读
  4. Html review1

    2024-07-22 20:54:02       19 阅读
  5. Midjourney绘画提示词精选

    2024-07-22 20:54:02       18 阅读
  6. 三元表达式和if语句优缺点

    2024-07-22 20:54:02       17 阅读
  7. ABC D - Palindromic Number

    2024-07-22 20:54:02       17 阅读
  8. c++命名空间

    2024-07-22 20:54:02       16 阅读
  9. 机器学习中的数据分析

    2024-07-22 20:54:02       15 阅读
  10. C++ STL标准数据库详解

    2024-07-22 20:54:02       17 阅读
  11. POI导入导出

    2024-07-22 20:54:02       15 阅读