第二章: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 按照一定的优先级顺序来执行运算。优先级从高到低大致如下:
- 括号内的表达式:()
- 指数运算:**
- 按位取反:~
- 乘、除、整除、取余:*、/、//、%
- 加、减:+、-
- 左移、右移:<<、>>
- 按位与:&
- 按位异或:^
- 按位或:|
- 比较运算符:==、!=、>、<、>=、<=
- 逻辑非:not
- 逻辑与:and
- 逻辑或:or
- 赋值运算符:=、+=、-= 等
在同一优先级的运算符中,按照从左到右的顺序进行计算。如果需要改变运算顺序,可以使用括号 ()。
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,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)