第2.3节 Python运算符大全

本文深入讲解Python中的算术运算、布尔类型、比较运算、逻辑运算及运算符优先级,通过实例帮助理解Python运算机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 Python的算术运算
Python的算术运算符与C语言类似,略有不同。包括加(+)、减(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位(>>)、单目求反(-)、幂运算(**)、整除运算(//)、增强运算、增强矩阵乘法(@)。
增强运算是将算术运算符或逻辑运算符放到等号的左侧,与C语言的增强运算符相同。如x+=5,表示x=x+5,该种方法CPU的处理效率高于普通运算方式,且执行优先级也高些。
下面看看这些运算的例子,大家可以理解一下:

>>> 10%3
1
>>> 10//3
3
>>> 10**3
1000
>>> n=False
>>> n
False
>>> type(n)
<class 'bool'>
>>> i=0
>>> i==n
True
>>> 4>>2
1
>>> 4<<2
16
>>> ~4
-5
>>> 2&4
0
>>> 2|4
6
>>> m=2
>>> m**=3
>>> m
8

矩阵乘法目前本人还没弄明白,如果以后弄明白了再补充。

二、 Python的布尔类型
在介绍比较急逻辑运算之前,需要介绍一个前面没有介绍的bool(布尔)数据类型。
布尔数据类型是用于条件判断、比较运算和逻辑运算,只有两个值真(True)和假(False)。布尔类型其实是int的子类,False和True对应的值是0和1。但真正使用时,下面的值都将被视为假:
False None 0 “” () [] {}
也就是说标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真。
看看下面的运算结果:

>>> True == 1
True
>>> False == 0
True
>>> True + True 
2

三、 比较运算

比较运算表达式 解释
x==y x是否等于y
x>y x是否大于y
x<y x是否小于y
x>=y x是否大于等于y
x<=y x是否小于等于y
x!=y x是否不等于y
x is y x是否和y是同一对象
x is not y x是否和y不是同一对象
x in y x是否是y的元素
x not in y x是否不是y的元素


以上运算中的后2个主要用于复杂数据类型的成员判断,后面讲这些数据类型会用到。

四、 逻辑运算
逻辑运算与C语言的类似,有逻辑或(or)、逻辑与(and)、逻辑非(not),但没有C语言的简单运算符号||、&&、!。
看看运算实例:

>>> not 2
False
>>> not 0
True
>>> 2 and 4
4
>>> 2 or 4
2
>>> s='123'
>>> s or 2 or 3
'123'
>>> 2 and 3 and s
'123'

从上面后几个示例看出,逻辑运算符and和or不一定都是返回True或False,or当其中参与运算的数据有个值不为False(包括False、0、空等,下同)则直接返回该数据,and当所有数据都不为False则返回最后一个数据。

五、 运算符的优先级
下面列出了所有运算符的优先级,数值越大,表示优先级越高。
在这里插入图片描述

上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的。老猿认为用处不大,具体内容大家可以在网上查一下。

更正:
在上一章节,关于Python语句部分的前面部分内容强调“必须缩进4个空格”缩进与该章节“Python的代码嵌套格式”描述不一样,实际上相关要求是遵循“Python的代码嵌套格式”的情况下,推荐使用一次缩进4个空格。
另外关于语句中冒号的使用,只说明了那些语句后面必须有冒号,但其实冒号指出来接下来是一段(也可以只有一行)统一缩进的代码块。

### Python 3.11 中乘方运算符 `**` 的使用方法和特性 在 Python 3.11 中,乘方运算符 `**` 是一种用于表示幂运算的二元操作符。其基本语法如下: ```python result = base ** exponent ``` 这里,`base` 表示底数,`exponent` 表示指数,返回的结果是 `base` 提升至 `exponent` 次幂后的值。 #### 运算符优先级 根据运算符优先级的规定[^3],乘方运算符 `**` 的优先级高于加法 (`+`) 和减法 (`-`) 等其他常见算术运算符,但在表达式中仍需注意圆括号的作用来调整执行顺序。例如,在以下表达式中: ```python result = 2 + 3 ** 2 ``` 由于乘方运算符具有较高的优先级,因此会先计算 `3 ** 2` (即 9),然后再加上 2,最终结果为 11。 #### 数据类型的兼容性 乘方运算支持多种数据类型组合,包括但不限于整型 (`int`) 和浮点型 (`float`)。以下是几个典型例子及其行为说明: 1. 当两个操作数均为整数时,结果通常也是整数: ```python result = 2 ** 3 # 结果为8 ``` 2. 如果任意一方为浮点数,则结果会被提升为浮点数: ```python result = 2.0 ** 3 # 结果为8.0 result = 2 ** 3.0 # 同样得到8.0 ``` 3. 对于负指数的情况,该运算会产生倒数形式的结果: ```python result = 2 ** -1 # 结果为0.5 ``` 4. 特殊情况下涉及零次幂或者零作为基数的情形需要注意定义域限制: ```python result = 0 ** 0 # 定义为1, 数上的争议情况在此处遵循惯例处理[^2] result = 5 ** 0 # 总等于1无论基数值为何 ``` #### 高性能场景下的应用扩展 对于更高阶的需求比如大规模科计算领域内可能遇到的大规模矩阵运算等问题解决办法之一可以考虑引入专门优化过的第三方库如 NumPy 或者 SciPy 来加速此类复杂任务完成效率的同时保持代码简洁易维护的特点;而对于纯粹追求极致速度而不介意额外习成本的话也可以探索 PARI/GP 库所提供的强大功能集[^5]不过这往往意味着项目依赖增加以及跨平台移植性的潜在挑战等因素需要综合评估后再做决定。 ```python import numpy as np # 利用NumPy实现向量化幂运算 array_result = np.power([2, 3], [3, 2]) print(array_result) # 输出数组[8, 9] ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值