Python-运算符

  1. 运算符
    1. 标准算数运算符
    2. 逻辑运算符(布尔运算符)
    3. 可变类型的is比较
    4. 不可变类型的is比较
    5. 链式比较
    6. 运算符的优先级
    7. 赋值运算符=

运算符

标准算数运算符

+:加
-:减
*:乘
/:除
//:地板除,运算结果只保留整数部分,就是运算一个数值是另一个数值的多少倍
%:取余,余数是介于0到除数之间
**:幂运算,也可调用内置函数pow()来进行幂运算

>>> 1 + 1
2
>>> 3 - 1
2
>>> 5.0 * 6
30.0
>>>
>>> 5.0 / 6
0.8333333333333334
>>> 5.0 / 5
1.0
>>> 9 // 4
2
>>> 9 // -4
-3
>>> 9 % -4
-3
>>> 2 ** 2
4
>>> -2 ** 2
-4

>>> pow(2, 2)
4
>>> pow(-2, 2)
4
a += b  --> a = a + b
a -= b  --> a = a - b
a *= b  --> a = a * b
a /= b  --> a = a / b

逻辑运算符(布尔运算符)

and:逻辑与
or: 逻辑或
not:逻辑非

比较运算符
>
<
==:用于比较两个运算数时候相等,“相等性测试”
>=
<=
!=
is:比较两个运算数是否是同一个对象,“同一性测试”
is not

可变类型的is比较

>>> a = b = [1, 2, 3]
>>> c = [1, 2, 3]
>>>
>>> id(a)
140032055835656
>>> id(b)
140032055835656
>>> id(c)
140032060966088
>>>
>>> a == b
True
>>> a == c
True
>>> a is b
True
>>> a is c
False

不可变类型的is比较

对于不可变类型的对象,其内存可能被重用,比如数值较小的整数对象

>>> a = 10
>>> b = 10
>>> id(a)
139944117569408
>>> id(b)
139944117569408
>>> a is b
True
>>>
>>>
>>> c = 111111111111111111111
>>> d = 111111111111111111111
>>> id(c)
139944118708864
>>> id(d)
139944118708904
>>> c is d
False
>>>

链式比较

并不是从左到右依次比较,而是两两比较进行与运算

>>> 3 > 2 > 1
True

>>> 3 > 2 and 2 > 1
True

>>> 6 > 4 is True            ##等价于6 > 4 and 4 is True,结果为False
False

>>> 6 > 4 and 4 is True
False

>>> (6 > 4) is True
True

运算符的优先级

先乘除,后加减,有括号先算括号
56aff379-b1d3-4076-b44e-b49043e08614-Image.png

赋值运算符=

多个变量同事赋值,赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量同事赋值

>>> a, b = 1, 2
>>> print(a, b)
1 2

>>> a, b = [3, 4]
>>> print(a, b)
3 4

>>> a, b = b, a
>>> print(a, b)
4 3

赋值运算符左右两边的元素个数必须是相同的,否则会抛出ValueError

>>> a, b = 1, 2, 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

可以在赋值运算符左边的某个变量前添加*,以匹配赋值运算符右边的0个或多个元素。

>>> a, *b, c = 1, 2, 3, 4
>>> print(a, b, c)
1 [2, 3] 4

>>> *a, b, c = 1, 2, 3, 4
>>> print(a, b, c)
[1, 2] 3 4

>>> a, b, *c = 1, 2, 3, 4
>>> print(a, b, c)
1 2 [3, 4]

>>> *a, b, c = 1, 2
>>> print(a, b, c)
[] 1 2

>>> a, *b, c = 1, 2
>>> print(a, b, c)
1 [] 2

>>> a, b, *c = 1, 2
>>> print(a, b, c)
1 2 []

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com