百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第二章:Python 运算符与表达式(python语言运算符)

itomcoil 2025-06-28 14:30 13 浏览

2.1 算术运算符

2.1.1 理论知识

算术运算符用于执行基本的数学运算,Python 提供了以下几种算术运算符:

  • 加(+):用于将两个数值相加。
  • 减(-):从第一个数中减去第二个数。
  • 乘(*):将两个数相乘。
  • 除(/):用第一个数除以第二个数,结果为浮点数。
  • 整除(//):执行除法运算并返回商的整数部分。
  • 取余(%):返回除法运算后的余数。
  • 幂运算(**):将第一个数作为底数,第二个数作为指数进行幂运算。

2.1.2 示例代码

a = 10
b = 3

# 加法
result_add = a + b
print(f"{a} + {b} 的结果是: {result_add}")

# 减法
result_sub = a - b
print(f"{a} - {b} 的结果是: {result_sub}")

# 乘法
result_mul = a * b
print(f"{a} * {b} 的结果是: {result_mul}")

# 除法
result_div = a / b
print(f"{a} / {b} 的结果是: {result_div}")

# 整除
result_floor_div = a // b
print(f"{a} // {b} 的结果是: {result_floor_div}")

# 取余
result_mod = a % b
print(f"{a} % {b} 的结果是: {result_mod}")

# 幂运算
result_pow = a ** b
print(f"{a} ** {b} 的结果是: {result_pow}")

2.1.3 代码解释

  • 首先定义了两个变量 a 和 b 并分别赋值为 10 和 3。
  • 然后使用不同的算术运算符对 a 和 b 进行运算,并将结果存储在相应的变量中。
  • 使用 print() 函数输出每个运算的表达式及结果,其中使用了 f 字符串格式化输出,使输出更清晰易读。

2.2 比较运算符

2.2.1 理论知识

比较运算符用于比较两个值的大小关系,运算结果是布尔值(True 或 False)。Python 中的比较运算符包括:

  • 等于(==):判断两个值是否相等。
  • 不等于(!=):判断两个值是否不相等。
  • 大于(>):判断第一个值是否大于第二个值。
  • 小于(<):判断第一个值是否小于第二个值。
  • 大于等于(>=):判断第一个值是否大于或等于第二个值。
  • 小于等于(<=):判断第一个值是否小于或等于第二个值。

2.2.2 示例代码

x = 5
y = 10

# 等于
is_equal = x == y
print(f"{x} == {y} 的结果是: {is_equal}")

# 不等于
is_not_equal = x!= y
print(f"{x}!= {y} 的结果是: {is_not_equal}")

# 大于
is_greater = x > y
print(f"{x} > {y} 的结果是: {is_greater}")

# 小于
is_less = x < y
print(f"{x} < {y} 的结果是: {is_less}")

# 大于等于
is_greater_or_equal = x >= y
print(f"{x} >= {y} 的结果是: {is_greater_or_equal}")

# 小于等于
is_less_or_equal = x <= y
print(f"{x} <= {y} 的结果是: {is_less_or_equal}")

2.2.3 代码解释

  • 定义变量 x 为 5,y 为 10。
  • 使用不同的比较运算符对 x 和 y 进行比较,并将结果存储在相应的布尔变量中。
  • 通过 print() 函数输出每个比较表达式及其结果。

2.3 逻辑运算符

2.3.1 理论知识

逻辑运算符用于组合多个条件,对条件进行逻辑判断,结果也是布尔值。Python 中有以下逻辑运算符:

  • 与(and):只有当两个条件都为 True 时,结果才为 True,否则为 False。
  • 或(or):只要两个条件中有一个为 True,结果就为 True,只有当两个条件都为 False 时,结果才为 False。
  • 非(not):对一个条件进行取反操作,如果原条件为 True,则结果为 False;如果原条件为 False,则结果为 True。

2.3.2 示例代码

condition1 = True
condition2 = False

# 与运算
result_and = condition1 and condition2
print(f"{condition1} and {condition2} 的结果是: {result_and}")

# 或运算
result_or = condition1 or condition2
print(f"{condition1} or {condition2} 的结果是: {result_or}")

# 非运算
result_not = not condition1
print(f"not {condition1} 的结果是: {result_not}")

2.3.3 代码解释

  • 定义了两个布尔变量 condition1 为 True,condition2 为 False。
  • 分别使用 and、or、not 逻辑运算符对这两个条件进行运算,并将结果存储在相应变量中。
  • 最后通过 print() 函数输出每个逻辑运算表达式及其结果。

2.4 赋值运算符

2.4.1 理论知识

赋值运算符用于将右侧的值赋给左侧的变量。除了基本的赋值运算符 = 外,Python 还提供了一些复合赋值运算符,这些运算符在进行运算的同时会将结果赋值给变量。常见的赋值运算符有:

  • 简单赋值(=):将右侧的值赋给左侧变量。
  • 加法赋值(+=):先将变量与右侧的值相加,然后将结果赋给该变量,例如 a += b 等价于 a = a + b。
  • 减法赋值(-=):先将变量减去右侧的值,然后将结果赋给该变量,例如 a -= b 等价于 a = a - b。
  • 乘法赋值(*=):先将变量与右侧的值相乘,然后将结果赋给该变量,例如 a *= b 等价于 a = a * b。
  • 除法赋值(/=):先将变量除以右侧的值(结果为浮点数),然后将结果赋给该变量,例如 a /= b 等价于 a = a / b。
  • 整除赋值(//=):先将变量除以右侧的值并取整数部分,然后将结果赋给该变量,例如 a //= b 等价于 a = a // b。
  • 取余赋值(%=):先将变量对右侧的值取余,然后将结果赋给该变量,例如 a %= b 等价于 a = a % b。
  • 幂运算赋值(**=):先将变量进行幂运算(以自身为底数,右侧值为指数),然后将结果赋给该变量,例如 a **= b 等价于 a = a ** b。

2.4.2 示例代码

num = 5

# 简单赋值
num = 10
print(f"简单赋值后 num 的值为: {num}")

# 加法赋值
num += 3
print(f"加法赋值后 num 的值为: {num}")

# 减法赋值
num -= 2
print(f"减法赋值后 num 的值为: {num}")

# 乘法赋值
num *= 4
print(f"乘法赋值后 num 的值为: {num}")

# 除法赋值
num /= 2
print(f"除法赋值后 num 的值为: {num}")

# 整除赋值
num //= 3
print(f"整除赋值后 num 的值为: {num}")

# 取余赋值
num %= 5
print(f"取余赋值后 num 的值为: {num}")

# 幂运算赋值
num **= 2
print(f"幂运算赋值后 num 的值为: {num}")

2.4.3 代码解释

  • 首先定义变量 num 并赋值为 5。
  • 然后依次使用不同的赋值运算符对 num 进行操作,每次操作后通过 print() 函数输出 num 的新值,展示赋值运算符的效果。

2.5 位运算符

2.5.1 理论知识

位运算符用于对整数在二进制层面上进行操作。Python 支持的位运算符有:

  • 按位与(&):对两个整数的二进制表示逐位进行与操作,只有当对应位都为 1 时,结果位才为 1,否则为 0。
  • 按位或(|):对两个整数的二进制表示逐位进行或操作,只要对应位中有一个为 1,结果位就为 1,只有当对应位都为 0 时,结果位才为 0。
  • 按位异或(^):对两个整数的二进制表示逐位进行异或操作,当对应位不同时,结果位为 1,相同时为 0。
  • 按位取反(~):对一个整数的二进制表示逐位取反,0 变为 1,1 变为 0。由于 Python 中整数的表示方式,取反结果会涉及补码运算。
  • 左移(<<):将一个整数的二进制表示向左移动指定的位数,右边空出的位用 0 填充,相当于乘以 2 的移动位数次方。
  • 右移(>>):将一个整数的二进制表示向右移动指定的位数,左边空出的位根据原数的正负进行填充(正数用 0 填充,负数用 1 填充),相当于除以 2 的移动位数次方并向下取整。

2.5.2 示例代码

a = 5  # 二进制表示为 0000 0101
b = 3  # 二进制表示为 0000 0011

# 按位与
result_and = a & b
print(f"{a} & {b} 的结果是: {result_and}")

# 按位或
result_or = a | b
print(f"{a} | {b} 的结果是: {result_or}")

# 按位异或
result_xor = a ^ b
print(f"{a} ^ {b} 的结果是: {result_xor}")

# 按位取反
result_not = ~a
print(f"~{a} 的结果是: {result_not}")

# 左移
result_left_shift = a << 2
print(f"{a} << 2 的结果是: {result_left_shift}")

# 右移
result_right_shift = a >> 1
print(f"{a} >> 1 的结果是: {result_right_shift}")

2.5.3 代码解释

  • 定义变量 a 为 5,b 为 3,并注释出它们的二进制表示。
  • 使用不同的位运算符对 a 和 b 进行操作,将结果存储在相应变量中。
  • 通过 print() 函数输出每个位运算表达式及其结果,展示位运算符对二进制数据的操作效果。虽然结果以十进制形式输出,但反映了位运算在二进制层面的操作结果。

2.6 运算符优先级

2.6.1 理论知识

当一个表达式中包含多个运算符时,Python 按照一定的优先级顺序来执行运算。优先级从高到低大致如下:

  1. 括号内的表达式:()
  2. 指数运算:**
  3. 按位取反:~
  4. 乘、除、整除、取余:*、/、//、%
  5. 加、减:+、-
  6. 左移、右移:<<、>>
  7. 按位与:&
  8. 按位异或:^
  9. 按位或:|
  10. 比较运算符:==、!=、>、<、>=、<=
  11. 逻辑非:not
  12. 逻辑与:and
  13. 逻辑或:or
  14. 赋值运算符:=、+=、-= 等

在同一优先级的运算符中,按照从左到右的顺序进行计算。如果需要改变运算顺序,可以使用括号 ()。

2.6.2 示例代码

result = 2 + 3 * 4 ** 2 & 7 // 2
print(f"表达式 2 + 3 * 4 ** 2 & 7 // 2 的结果是: {result}")

# 使用括号改变运算顺序
result_with_parentheses = (2 + 3) * (4 ** 2 & 7 // 2)
print(f"表达式 (2 + 3) * (4 ** 2 & 7 // 2) 的结果是: {result_with_parentheses}")

2.6.3 代码解释

  • 第一个表达式 2 + 3 * 4 ** 2 & 7 // 2 按照运算符优先级进行运算,先计算指数 4 ** 2,再依次进行乘、整除、按位与和加法运算。
  • 第二个表达式 (2 + 3) * (4 ** 2 & 7 // 2) 使用括号改变了运算顺序,先分别计算括号内的表达式,再进行乘法运算。通过 print() 函数输出两个表达式的结果,展示运算符优先级和括号对运算顺序的影响。

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...