赋值与运算符¶
赋值¶
a = 123
运算符¶
假定a=10, b=20
算术运算符¶
比较运算符¶
运算符 | 描述 | 实例 |
---|---|---|
== |
等于,比较两个对象是否相等 | a==b 返回False |
!= |
不等于,比较两个对象是否不相等 | a!=b 返回 True |
<> |
不等于,比较两个对象是否不相等 | a<>b 返回 True |
> |
大于,比较x是否大于y | a>b 返回 False |
< |
小于,比较x是否小于y | a<b 返回 True |
>= |
大于等于,比较x是否大于等于y | a>=b 返回 False |
<= |
小于等于,比较x是否小于等于y | a<=b 返回 True |
赋值运算符¶
运算符 | 描述 | 实例 |
---|---|---|
= |
赋值运算符 | c=a+b ,将a+b 的运算结果赋值给c |
+= |
加法赋值运算符 | c += a 等效于 c = c + a |
-= |
减法赋值运算符 | c -= a 等效于 c = c - a |
*= |
乘法赋值运算符 | c *= a 等效于 c = c *= a |
/= |
除法赋值运算符 | c /= a 等效于 c = c / a |
%= |
取模赋值运算符 | c %= a 等效于 c = c % a |
**= |
幂赋值运算符 | c **= a 等效于 c = c ** a |
//= |
取整除赋值运算符 | c //= a 等效于 c = c // a |
逻辑运算符¶
运算符 | 描述 | 实例 |
---|---|---|
and | “与” | a and b 返回 True |
or | “或” | a or b 返回 True |
not | “非” | no(a and b) 返回 False |
成员运算符¶
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回True,否则返回False |
not in | 如果在指定的序列中没有找到值返回True,否则返回false |
身份运算¶
位运算¶
& 按位与运算符 (a & b)输出结果12,二进制解释: 0000 1100
| 按位或运算符 (a | b)输出结果61,二进制解释: 0011 1101
^ 按位异或运算符 (a ^ b)输出结果49,二进制解释: 0011 0001
~ 按位取反运算符 (~a)输出结果-61,二进制解释: 1100 0011,在一个有符号二进制数的补码形式
<< 左移动运算符 a << 2 输出结果240,二进制解释: 1111 0000
>> 右移动运算符 a >> 2 输出结果15,二进制解释: 0000 1111
赋值语句的语法¶
运算 | 解释 |
---|---|
spam=‘Spam’ | 基本形式 |
spam, ham=‘yum’, ‘YUM’ | 元组赋值运算 |
[spam, han]=[‘yum’, ‘YUM’] | 列表赋值运算 |
a,b,c,d=‘spam’ | 序列赋值运算,通用性 |
a, *b=‘spam’ | 扩展的序列解包 |
spam = ham = ‘hello’ | 多目标赋值运算 |
spams += 42 | 增强赋值运算 |
实例¶
序列运算
>>> nudge = 1
>>> wink = 2
>>> A,B = nudge,wink
>>> A,B
(1, 2)
>>> A
1
>>> B
2
>>> ((a,b),c) = ('sp','am')
>>> a,b,c,
('s', 'p', 'am')
扩展的序列解包
一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项.
先定义一个seq序列用于测试
>>> seq = [1,2,3,4]
a
匹配序列中的第一项,b
匹配剩下的内容
>>> a,*b = seq
>>> a,b
(1, [2, 3, 4])
b
匹配序列中的最后一项,a
匹配序列中最后一项前的所有内容
>>> *a,b = seq
>>> a,b
([1, 2, 3], 4)
第一项和最后一项分别赋值给了a
,c
,而b
获取了二者之间的所有内容
>>> a,*b,c = seq
>>> a,b,c
(1, [2, 3], 4)
带星号的名称可能只匹配单个的项,但是,总会向其赋值一个列表,如果没有剩下的内容可以匹配,那么会返回一个空列表
>>> a,b,c,*d = seq
>>> print(a,b,c,d)
1 2 3 [4]
>>> a,b,c,d,*e = seq
>>> print(a,b,c,d,e)
1 2 3 4 []
多目标赋值语句就是直接把内容,直接赋值给左侧的变量
>>> a = b = c = 'jie'
>>> a,b,c
('jie', 'jie', 'jie')
# 所引用的值也是同一个
>>> id(a),id(b),id(c)
(4324210760, 4324210760, 4324210760)