跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

Python 运算符与语句:条件判断、循环控制及异常处理详解

Python 运算符涵盖算术、赋值、比较、逻辑及三元运算,需遵循特定优先级与类型转换规则。条件语句基于布尔值进行分支选择,循环语句支持序列遍历与条件终止。异常处理机制确保程序在出错时能优雅降级,支持自定义异常类。深入解析各语法细节、常见陷阱及工程化实践,助力构建稳定可靠的 Python 应用。

信号故障发布于 2025/2/6更新于 2026/4/255 浏览
Python 运算符与语句:条件判断、循环控制及异常处理详解

Python 基础语法核心:运算符与控制流

Python 是一门解释型、面向对象且动态数据类型的高级编程语言。其语法简洁清晰,强调代码的可读性。掌握运算符、条件语句、循环结构以及异常处理机制是编写高质量 Python 代码的基础。

一、运算符详解

运算符用于执行各种数学和逻辑操作。Python 支持多种类型的运算符,包括算术、赋值、比较、逻辑等。

1. 算术运算符

算术运算符用于执行基本的数学运算。下表列出了常用的算术运算符及其优先级规则。

运算符描述实例备注
+加1 + 1 输出结果为 2双目运算符
-减1 - 1 输出结果为 0双目运算符
*乘2 * 2 输出结果为 4双目运算符
/除10 / 2 输出结果为 5.0结果总是浮点数
//整除9 // 4 输出结果为 2向下取整
%取余9 % 4 输出结果为 1返回除法余数
**指数2 ** 4 输出结果为 16幂运算
()小括号(1 + 2) * 3 输出结果为 9提高优先级

混合运算优先级顺序: () > ** > * / // % > + -

由于算术运算符是双目运算符,即有两个操作数参加运算,当参加运算的两个操作数的类型不一致时,Python 会首先尝试将两个操作数转换为同一类型,然后进行运算。转换的基本规则如下:

  • 如果参加算术运算的两个操作数中有一个是复数,则把另一个也转换为复数;
  • 如果两个操作数中有一个是浮点数,则把另一个也换成浮点数;
  • 如果两个操作数中有一个是长整数,则把另一个也转换成长整数。

注意: 转换时不同类型之间的转换必须遵守一定方向,例如不可以把一个浮点数隐式转换为一个整数(除非显式调用 int()),也不能把一个复数转换为其它数值类型而不丢失精度。

2. 赋值运算符

赋值运算符用于将值赋给变量。Python 支持多种赋值方式。

单个变量赋值(简单赋值)
num = 1
print(num)
多个变量赋值(序列解包)

在序列赋值语句中,等号左侧是元组或列表表示的多个变量,等号右侧是元组、列表或字符串等序列表示的数据。Python 按先后顺序依次将数据赋值给变量。

num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)      # 10
print(float1)    # 0.5
print(str1)      # hello world

注: 等号右侧为字符串时,Python 会将字符串分解为单个字符,依次赋值给各个变量,此时,变量个数和字符个数必须相等,否则会报错 ValueError: not enough values to unpack。

a, b, c, d, f = 'hello'  # 正确
# a, b, c = 'hello'     # 错误:值太多

序列赋值时,可以在变量名之前使用 *,不带星号的变量仅匹配一个值,剩余的值作为列表赋值给带星号的变量。这被称为'扩展解包'。

a, b, *c = 'hello'
print(a)   # h
print(b)   # e
print(c)   # ['l', 'l', 'o']
多变量赋相同值(多目标赋值)
a = b = 10
print(a)  # 10
print(b)  # 10

3. 复合赋值运算符

复合赋值运算符结合了算术运算和赋值操作,使代码更简洁。

运算符描述等价表达式
+=加法赋值c += a 等价于 c = c + a
-=减法赋值c -= a 等价于 c = c - a
*=乘法赋值c *= a 等价于 c = c * a
/=除法赋值c /= a 等价于 c = c / a
//=整除赋值c //= a 等价于 c = c // a
%=取余赋值c %= a 等价于 c = c % a
**=幂赋值c **= a 等价于 c = c ** a

4. 比较运算符

比较运算符用于比较两个值,返回布尔值 True 或 False。

运算符描述
==等于。如果两个操作数的结果相等,则为 True
!=不等于。如果两个操作数的结果不相等,则为 True
>大于。左侧操作数大于右侧操作数
<小于。左侧操作数小于右侧操作数
>=大于等于。左侧操作数大于等于右侧操作数
<=小于等于。左侧操作数小于等于右侧操作数

5. 逻辑运算符

逻辑运算符用于组合布尔表达式。

运算符逻辑表达式描述实例
andx and y布尔'与':x 和 y 均为 True,结果为 TrueTrue and False 返回 False
orx or y布尔'或':x 和 y 均为 False,结果为 FalseTrue or False 返回 True
notnot x布尔'非':如果 x 为 True,返回 Falsenot True 返回 False

短路求值: Python 的逻辑运算符具有短路特性。例如 A and B,如果 A 为假,则直接返回 A,不再计算 B;A or B,如果 A 为真,则直接返回 A,不再计算 B。

6. 三元运算符

在 Python 中,三元运算符(也称为条件表达式)是一种简洁的方式来编写条件赋值。

语法结构:

value_if_true if condition else value_if_false

示例:

x = 10
y = 20
max_value = x if x > y else y  # 输出:20

二、条件语句(if-elif-else)

条件语句允许程序根据特定条件的真假来执行不同的代码块。

1. if 语句

if 条件:
    # 条件成立执行的代码
    print("条件满足")

2. if...else...

if 条件:
    # 条件成立执行的代码
    pass
else:
    # 条件不成立执行的代码
    print("条件不满足")

3. 多重判断 (elif)

if 条件 1:
    # 条件 1 成立执行的代码
    pass
elif 条件 2:
    # 条件 2 成立执行的代码
    pass
else:
    # 以上条件都不成立执行的代码
    print("默认情况")

4. if 嵌套

if 条件 1:
    if 条件 2:
        # 两个条件都成立
        print("双重满足")

注意事项:

  • Python 使用缩进来表示代码块,通常使用 4 个空格。
  • 任何非零数字、非空字符串、非空容器都被视为真(Truthy),而 0、None、空字符串、空列表/字典被视为假(Falsy)。

三、循环语句(for、while)

循环语句用于重复执行一段代码,直到满足特定条件为止。

1. for 循环

for 循环是 Python 中最常用的循环语句之一,可以遍历任何可迭代对象,如列表、元组、字符串、字典等。

基本语法:

for variable in sequence:
    # 循环体
    pass
[else]
    # 循环体(仅在循环正常结束时执行)

示例:

# 遍历列表或元组
for number in [1, 2, 3, 4, 5]:
    print(number ** 2)

# 遍历字符串
for char in "hello world":
    print(char.upper())

# 遍历字典
my_dict = {'apple': 2, 'banana': 3}
for key, value in my_dict.items():
    print(f"{key}: {value}")

# 遍历文件内容
with open('file.txt', 'r') as f:
    for line in f:
        print(line.strip())

2. while 循环

while 循环基于条件表达式是否成立来决定是否继续执行。

基本语法:

while 条件:
    # 循环体
    pass
[else]
    # 循环体

示例:

fruits = ['apple', 'banana', 'orange']
i = 0
while i < len(fruits):
    print(fruits[i])
    i += 1

3. 循环控制语句

  • break 语句: 立即跳出当前循环,终止整个循环过程。如果从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
  • continue 语句: 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
  • pass 语句: 空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句。

循环 Else 子句: Python 特有的功能。当循环正常结束(即没有被 break 中断)时,else 块才会执行。

四、异常的捕获和处理(try-except-finally)

异常处理机制允许程序在发生错误时优雅地处理问题,而不是直接崩溃。

1. try-except 结构

  • try 语句: 包含可能会引发异常的代码块。如果在 try 代码块中发生异常,程序将立即跳转到 except 代码块。
  • except 语句: 捕获并处理特定类型的异常。异常对象被赋值给变量,可用于获取错误信息。
  • else 语句: 指定当没有异常发生时要执行的代码块。
  • finally 语句: 指定无论是否发生异常都必须执行的代码块,常用于资源清理(如关闭文件、数据库连接)。

2. 自定义异常

开发者可以创建继承自 Exception 类的自定义异常类,以便根据应用程序需求引发和捕获特定的错误。

代码示例:

# 自定义异常类
class MyCustomError(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(self.message)

try:
    # 可能会引发异常的代码块
    some_condition = False
    if some_condition:
        raise MyCustomError("This is a custom error")
    
    result = 10 / 0  # 除以零会引发 ZeroDivisionError
    
except MyCustomError as e:
    print(f"Custom error occurred: {e.message}")
except ZeroDivisionError as e:
    print(f"Division by zero error: {e}")
except Exception as e:
    # 捕获其他所有未处理的异常
    print(f"An unexpected error occurred: {type(e).__name__}")
else:
    # 当没有异常发生时要执行的代码块
    print(f"Result is {result}")
finally:
    # 无论是否发生异常都必须执行的代码块
    print("Cleanup resources here")

3. 最佳实践

  • 避免使用裸 except:,应明确捕获具体的异常类型,防止掩盖编程错误。
  • 在 finally 块中释放外部资源,或使用上下文管理器(with 语句)自动管理资源。
  • 记录异常日志,便于后续排查问题。

五、总结与建议

本文详细解析了 Python 中的核心运算符、条件语句、循环结构及异常处理机制。在实际开发中,建议遵循以下原则:

  1. 代码可读性: 合理使用缩进和注释,保持逻辑清晰。
  2. 健壮性: 对可能出错的操作添加异常捕获,防止程序意外终止。
  3. 性能优化: 在循环中避免不必要的计算,优先使用内置函数和生成器。
  4. 规范命名: 变量和函数名应语义明确,符合 PEP 8 规范。

通过熟练掌握这些基础语法,开发者能够构建出结构严谨、易于维护的 Python 应用程序。

目录

  1. Python 基础语法核心:运算符与控制流
  2. 一、运算符详解
  3. 1. 算术运算符
  4. 2. 赋值运算符
  5. 单个变量赋值(简单赋值)
  6. 多个变量赋值(序列解包)
  7. a, b, c = 'hello' # 错误:值太多
  8. 多变量赋相同值(多目标赋值)
  9. 3. 复合赋值运算符
  10. 4. 比较运算符
  11. 5. 逻辑运算符
  12. 6. 三元运算符
  13. 二、条件语句(if-elif-else)
  14. 1. if 语句
  15. 2. if...else...
  16. 3. 多重判断 (elif)
  17. 4. if 嵌套
  18. 三、循环语句(for、while)
  19. 1. for 循环
  20. 遍历列表或元组
  21. 遍历字符串
  22. 遍历字典
  23. 遍历文件内容
  24. 2. while 循环
  25. 3. 循环控制语句
  26. 四、异常的捕获和处理(try-except-finally)
  27. 1. try-except 结构
  28. 2. 自定义异常
  29. 自定义异常类
  30. 3. 最佳实践
  31. 五、总结与建议
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • 4GB 显存限制下构建 LLM 基础开发环境指南
  • 小型语言模型(SLM)技术最新全面综述
  • Python 入门基础知识:新手必备核心类型与内置方法
  • Qwen2 命名实体识别微调实战指南
  • Dify 与 FastGPT 知识库功能对比及选型指南
  • 大模型技术入门与学习路线详解
  • 国内 AI 大模型发展现状与 GPT-4o 能力对比分析
  • 大模型学习路线与实战项目推荐:多模态、医学 AI 及数字人
  • Web 安全渗透测试入门与进阶学习路线指南
  • 网络安全基础入门教程与学习路线规划
  • 网络安全行业现状、薪资前景及学习路径规划
  • 超大规模集群下大语言模型训练实操指南
  • 基于 RAG 的生成式 AI:使用 LlamaIndex、Deep Lake 和 Pinecone 构建检索增强生成管道
  • AI 应用深度解析:分类、现状、商业化与未来趋势
  • 7 个经典 Python 爬虫实战案例与代码解析
  • 前端程序员转型大模型工程师的实战指南
  • 超级对齐全面综述:构建安全可靠的未来
  • AI 产品经理核心能力培养与学习路径规划
  • 本地部署 AI 问答知识库:基于 FastGPT 的一站式指南
  • 程序员转行大模型领域:热门岗位与学习路径解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online