Python的控制流语句有哪些?

简介: Python的控制流语句有哪些?

Python中的控制流语句用于控制程序的执行流程,主要包括以下几类:

条件语句

条件语句通过判断条件表达式的值来决定执行哪部分代码。

if condition1:
    # 条件1满足时执行
    pass
elif condition2:
    # 条件1不满足但条件2满足时执行
    pass
else:
    # 所有条件都不满足时执行
    pass
  • 执行逻辑:依次检查条件表达式,一旦某个条件为True,则执行对应代码块并跳过后续条件;若所有条件均为False,则执行else块(如果有)。
  • 注意事项
    • 条件表达式必须返回布尔值或可隐式转换为布尔值的类型。
    • elifelse子句可选,但if是必需的。
    • Python使用缩进来划分代码块,需确保同一代码块的缩进一致。

循环语句

循环语句用于重复执行代码块,Python提供了两种主要的循环结构:

1. for循环

用于遍历可迭代对象(如列表、元组、字符串、字典等)。

for element in iterable:
    # 对每个元素执行操作
    pass
  • 示例:遍历列表并打印元素
    fruits = ["apple", "banana", "cherry"]
    for fruit in fruits:
      print(fruit)
    
  • 搭配range()函数:生成数字序列
    for i in range(5):  # 生成0到4的整数
      print(i)
    
  • 遍历字典:默认遍历键,也可显式遍历键、值或键值对
    person = {
         "name": "Alice", "age": 30}
    for key in person:          # 遍历键
      print(key)
    for value in person.values():  # 遍历值
      print(value)
    for key, value in person.items():  # 遍历键值对
      print(f"{key}: {value}")
    

2. while循环

当条件为True时持续执行代码块。

while condition:
    # 条件满足时执行
    pass
else:  # 可选
    # 循环正常结束(非break中断)时执行
    pass
  • 示例:计算1到10的和
    sum = 0
    i = 1
    while i <= 10:
      sum += i
      i += 1
    print(sum)  # 输出55
    
  • 注意事项:需确保循环条件最终会变为False,否则会导致无限循环。

循环控制语句

用于改变循环的执行流程:

1. break

立即终止当前所在的循环,跳出循环体。

for i in range(10):
    if i == 5:
        break  # 当i等于5时跳出循环
    print(i)  # 仅输出0到4

2. continue

跳过当前循环的剩余代码,直接进入下一次循环迭代。

for i in range(10):
    if i % 2 == 0:
        continue  # 当i为偶数时跳过后续代码
    print(i)  # 仅输出奇数:1, 3, 5, 7, 9

3. else子句(循环中的特殊用法)

  • 当循环正常结束(未被break中断)时,执行else块。
  • 常用于检查循环是否找到特定元素。
    for i in range(5):
      if i == 10:
          print("找到10")
          break
    else:  # 循环结束时未执行break
      print("未找到10")
    

嵌套控制流

控制流语句可以嵌套使用,例如在循环中嵌套条件语句或多层循环。

for i in range(3):
    for j in range(2):
        if i + j == 2:
            print(f"i={i}, j={j}")  # 输出i=1, j=1和i=2, j=0

异常处理与控制流

虽然不属于传统控制流,但try-except语句可捕获并处理运行时错误,改变程序执行路径。

try:
    result = 10 / 0  # 触发ZeroDivisionError
except ZeroDivisionError:
    print("除数不能为零")
finally:
    print("无论是否发生异常,都会执行")

掌握这些控制流语句是编写结构化Python程序的基础,可根据需求灵活组合使用。

相关文章
|
弹性计算 运维 负载均衡
我对ECS的理解
云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的云计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。专业的售前技术支持,协助您选择最合适配置方案。
463 57
|
存储 编解码 缓存
阿里云CDN+点播服务助力云学堂全面提升用户在线学习体验
CDN将云学堂的点播视频资源缓存至阿里云遍布全球的加速节点上,当终端用户请求访问和获取该资源时,无需回源,系统自动调用离终端用户最近的CDN节点上已缓存的资源,提高用户访问效率和访问速度。
2124 57
阿里云CDN+点播服务助力云学堂全面提升用户在线学习体验
|
Web App开发 监控 网络协议
如何构建低延时的直播体验,让互动更实时?
传统的直播技术,已经不能满足对互动要求更高的直播要求,为此,2019年阿里云与淘宝直播共同推出超低延时直播服务RTS(Real-time Streaming),该方案基于WebRTC实现,采用UDP传输协议打造,实现可以承载大规模并发,端到端延时1秒内的低延时直播体验。由于RTS服务部署于阿里云CDN节点,复用CDN的节点和网络资源,在接入成本、节点覆盖、承载能力上实现了平衡
3610 57
如何构建低延时的直播体验,让互动更实时?
|
消息中间件 Java Kafka
Apache Flink 漫谈系列(15) - DataStream Connectors之Kafka
聊什么 为了满足本系列读者的需求,在完成《Apache Flink 漫谈系列(14) - DataStream Connectors》之前,我先介绍一下Kafka在Apache Flink中的使用。所以本篇以一个简单的示例,向大家介绍在Apache Flink中如何使用Kafka。
9099 57
|
数据采集 测试技术 Python
【资料下载】Python 第十讲——xpath元素定位获取及爬虫中使用实例
直播时间:4月2日 20:00——21:00 直播介绍:python是非常适合敏捷开发的语言,用python编写爬虫快速获取数据,并做数据分析,对日常生活和工作能起到一定帮助。而python爬虫有很多种爬取方式,例如Requests+正则表达式、selenium+Chrome/PhantomJS等,xpath定位是其中的一种,以其使用简便、运行高效、应用场景多的优点,被很多爬虫开发者使用。
10229 58
|
数据采集 Python
【Python 学习进阶月刊】 第三期
欢迎订阅Python学习进阶月刊 精彩直播:Python系列直播——Python 进阶教程 课程简介:python 中的函数,类,魔法方法,异步io,多线程,多进程等是学习python中不可缺少的部分。
2249 57
|
存储 索引 Python
Python 技术百问
如何让用户保持登录状态https://yq.aliyun.com/ask/495120 如何迭代Pandas Dataframe中的行https://yq.aliyun.com/ask/495119 如何在Python中查找或删除列表中的子串列表https://yq.
10085 57
|
数据采集 机器学习/深度学习 新零售
【Python 学习进阶月刊】 第二期: Python 资料汇总
欢迎订阅Python学习进阶月刊 精彩直播: Python 系列直播——深入Python与日志服务,玩转大规模数据分析处理实战 IPython/Jupyter Notebook非常流行,但随着数据量越来越大(例如几百亿条电商平台访问日志),如何继续保持灵活的交互式分析,是一个挑战。
4582 57
|
SQL 测试技术 API
Apache Flink 漫谈系列(13) - Table API 概述
什么是Table API 在《Apache Flink 漫谈系列(08) - SQL概览》中我们概要的向大家介绍了什么是好SQL,SQL和Table API是Apache Flink中的同一层次的API抽象,如下图所示: Apache Flink 针对不同的用户场景提供了三层用户API,最下层ProcessFunction API可以对State,Timer等复杂机制进行有效的控制,但用户使用的便捷性很弱,也就是说即使很简单统计逻辑,也要较多的代码开发。
7960 55
|
Windows Python Linux
Django logging模板使用样例
还要注意,如果开发在WINDOWS上, 而正式运行在LINUX上, 还要分个叉判断一下的。
2407 57