python 运算符

扫码查看

python3 运算符

本篇文章主要介绍一下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))为格式化字符串

海象运算符

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

位运算符

位运算符是把数字当做 二进制 来计算的

  1. 先把其他进制转化为 二进制

  2. 二进制 计算之后返回 十进制 结果。

注:以下数字是二进制

&按位与:都为 1,才为 1,否则为 01---1 → 1
1---0 → 0
0---1 → 0
0---0 → 0
|按位或 :只要其中一个为 1 就位为11---1 → 1
1---0 → 1
0---1 → 1
0---0 → 0
^按位异或:两个不同,结果才为11---1 → 0
1---0 → 1
0---1 → 1
0---0 → 0
~按位取反:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-11 → 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

andx and y"与" 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 22。
orx or y"或" 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 11。
notnot 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。

身份运算符

身份运算符用于比较两个对象的 存储单元

isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

is 与 == 区别:

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

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

**指数 (最高优先级)
~ + -按位取反, 一元加号(正号)和一元减号(负号) (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,求余数和取整除
+ -加法减法
>> <<右移,左移运算符
&位 'AND'
^ |位运算符
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符
12-25 17:40
查看更多