目录
本篇文章主要介绍一下python的运算符
3 + 2 = 5
“3” 和 “2” 被称为 操作数
“+” 就是一种 运算符
python3主要支持以下几种运算符
运算符 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
%(取模) | 返回除法的余数 |
** | 幂 |
// | 向下取整 |
a = 9 % 4 # 取除法的余数
b = 9 ** 4 # 9的4次幂
c = 9 // 4 # 先做除法,再向下取整
d = -9 // 4
-----------------------------
a = 1
b = 6561
c = 2
d = -3
运算符 | 功能 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
注意:返回结果是布尔值(True / False)
运算符 | 功能 |
---|---|
= | 赋值 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
**= | 幂赋值 |
//= | 取整赋值 |
:=(海象运算符) | 在表达式内为变量赋值 |
a += b 等价于 a = a + b
a -= b 等价于 a = a - b
同理以上
--------------------------------------------------------------------
海象运算符
a = (0,1,2,3,4,5,6,7,8,9,10,11)
if (n := len(a)) > 10: # n>10 为一个表达式,:=为变量n赋值
print(f"The tuple is too long. ({n} elements, expected <= 10)")
print("The tuple is too long. ({n} elements, expected <= 10)")
# run code---------------------------------------------------------
"The list is too long. (12 elements, expected <= 10)"
"The tuple is too long. ({n} elements, expected <= 10)"
# print(f(str))为格式化字符串
加 f 之后可以在字符串里面使用 花括号{ } 括起来的变量和表达式,如果字符串里面没有表达式,那么前面加不加 f 都一样。
其它进制 | 方法 | 相应进制的数字表示 |
---|---|---|
二进制 | bin() | 0b |
八进制 | oct() | 0o |
十进制 | int() | |
十六进制 | hex() | 0x |
二进制:满 2 进 1
1
10(满2, 1 + 1 =10)
11
100
101
110
111
1000
…
八进制
1
2
…
7
10
11
…
17
20
21
…
十进制:满 10 进 1
1
2
3
…
9
10
11
…
十六进制:满 16 进 1
1
2
3
…
9
A
B
C
D
E
F
10
11
12
…
19
1A
…
位运算符是把数字当做 二进制 来计算的
先把其他进制转化为 二进制
二进制 计算之后返回 十进制 结果。
注:以下数字是二进制
a = 0001 1100
b = 0011 0100
a & b = 0001 0100
a | b = 0011 1100
a ^ b = 0010 1000
~ a = - 0001 1101
运算符 | 描述 | 二进制 1 和 0 |
---|---|---|
& | 按位与:都为 1,才为 1,否则为 0 | 1---1 → 1 1---0 → 0 0---1 → 0 0---0 → 0 |
| | 按位或 :只要其中一个为 1 就位为1 | 1---1 → 1 1---0 → 1 0---1 → 1 0---0 → 0 |
^ | 按位异或:两个不同,结果才为1 | 1---1 → 0 1---0 → 1 0---1 → 1 0---0 → 0 |
~ | 按位取反:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | 1 → 0 0 → 1 |
<< | 左移动:二进制数字全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | 0011 1100<< 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动:把">>"左边的二进制数字全部右移若干位,">>"右边的数指定移动的位数 | 0011 1100>> 2 输出结果 15 ,二进制解释: 0000 1111 |
>>> 11 and 22 # 返回后一个True
22
>>> 22 and 11
11
-----------------------------
>>> 11 or 22 # 返回第一个为True
11
>>> 22 or 11
22
-----------------------------
>>> not 11
False
>>> not 22
False
>>> not 0
True
以下假设 a = 11, b = 22
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | "与" 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 22。 |
or | x or y | "或" 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 11。 |
not | not x | "非" 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
身份运算符用于比较两个对象的 存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
>>>a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:] # 把 a 的第一个到最后一个list值全部赋值给 b
>>> b is a
False
>>> b == a
True
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位取反, 一元加号(正号)和一元减号(负号) (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,求余数和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND‘ |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
原文:https://www.cnblogs.com/yuelu/p/11981444.html