Python3基础篇(三)——运算符
Python3基础篇(三)——运算符
前言:
阅读这篇文章我能学到什么?
这篇文章将为你介绍Python3运算符的使用。
1 Python3运算符
同其他语言一样,Python3也具有多种运算符。Python3的7类运算符如下:
运算符类别 | 运算符 |
---|---|
算术运算符 | +、-、*、/、%、**、// |
关系运算符 | ==、!=、>、<、>=、<= |
赋值运算符 | =、+=、-=、*=、/=、%=、**=、//=、:= |
位运算符 | &、|、^、~、<<、>> |
逻辑运算符 | and、or、not |
成员运算符 | in、not in |
身份运算符 | is、is not |
2 算术运算符
算术运算符 | 描述 |
---|---|
+ | 求和 |
- | 求差或求相反数 |
* | 求积 |
/ | 求商 |
% | 取模 |
** | 幂运算 |
代码示例:
python
1 | a = 10 |
运行结果为:
cmd
1 | 12 |
3 关系运算符
关系运算符 | 描述 |
---|---|
== | 判等 |
!= | 判不等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
代码示例:
python
1 | a = 10 |
运行结果为:
cmd
1 | False |
4 赋值运算符
赋值运算符 | 描述 |
---|---|
= | 直接赋值 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
**= | 幂赋值 |
//= | 取整除赋值 |
:= | 海象赋值(Python3.8新增特性),使得Python3开始支持在表达式内赋值。(c/c++的=赋值符号就可以在表达式内赋值) |
代码示例:
python
1 | a = 10 |
运行结果:
cmd
1 | 3 |
5 位运算符
位运算符 | 描述 |
---|---|
& | 按位与运算 |
| | 按位或运算 |
^ | 按位异或运算 |
~ | 按位取反运算 |
<< | 左移位运算 |
>> | 右移位运算 |
代码示例: |
python
1 | a = 10 |
运行结果:
cmd
1 | 0b1010 |
解释下为什么10按位取反的二进制结果是-0b1011,是因为10是有符号数,其反码是负数,而负数在计算机中是以补码形式存储的的(补码就是反码再加1)。
6 逻辑运算符
逻辑运算符 | 描述 |
---|---|
and | 逻辑与,x and y 当x为真时结果为y,当x为假时结果为x |
or | 逻辑或,x or y 当x为真时结果为x,当x为假时结果为y |
not | 逻辑非,not x 当x为真时结果为False,当x为假时结果为True |
代码示例:
python
1 | #以下类型在Python3中都判为逻辑假,其他为真 |
运算结果:
cmd
1 | False |
Python3中将几类判定为假:0
,0.0
,None
,""
,()
,[]
,set()
,{}
,其他为真。简单记忆就是数值为0时,None时,数据类型为空时为假。
7 成员运算符
成员运算符 | 描述 |
---|---|
in | 判定存在其中 |
not in | 判定不存在其中 |
python
1 | Tuple = (1, 2, 3) |
运算结果:
cmd
1 | True |
8 身份运算符
身份运算符 | 描述 |
---|---|
is | 判断是否引用自一个对象 |
is not | 判断是否不是引用自同一个对象 |
说白了就是比较内存地址是否相同。== 用于比较变量内存中的值是否用,is 和is not 用于比较变量的内存地址是否相同。用id() 函数可以获取对象的地址。 |
python
1 | ''' |
运算结果:
cmd
1 | 1932188604144 |
9 运算符优先级
运算符优先级 | 描述 |
---|---|
** | 指数(最高优先级) |
~ + - | 这里的是一元运算符 |
* / % // | |
+ - | 二元运算符 |
>> << | 移位运算符 |
& | 位与 |
^ | | 位运算 |
>= <= > < | 比较运算 |
== != | 判等 |
= %= /= //= -= += *= **= | 赋值运算 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
and or not | 逻辑运算符(优先级最低) |
python
1 | #建议尽量多加括号,不要太相信自己或别人对优先级的记忆,应尽量将表达式写得看起来没有歧义。 |
运算结果:
cmd
1 | 2 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OnlyCalm's Blog!
评论
ValineGitalk