1月15日
5.1 运算符与它们的用法
运算符 | 名称 | 说明 | 例子 |
** | 幂 | 返回x的y次幂 | 3 ** 4得到81(即3 * 3 * 3 * 3) |
/ | 除 | x除以y | 4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333 |
// | 取整除 | 返回商的整数部分 | 4 // 3.0得到1.0 |
% | 取模 | 返回除法的余数 | 8%3得到2。-25.5%2.25得到1.5 |
<< | 左移 | 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) | 2 << 2得到8。——2按比特表示为10 |
>> | 右移 | 把一个数的比特向右移一定数目 | 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。 |
& | 按位与 | 数的按位与 | 5 & 3得到1。 |
| | 按位或 | 数的按位或 | 5 | 3得到7。 |
^ | 按位异或 | 数的按位异或 | 5 ^ 3得到6 |
~ | 按位翻转 | x的按位翻转是-(x+1) | ~5得到6。 |
< | 小于 | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | 5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。 |
<= | 小于等于 | 返回x是否小于等于y | x = 3; y = 6; x <= y返回True。 |
== | 等于 | 比较对象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
!= | 不等于 | 比较两个对象是否不相等 | x = 2; y = 3; x != y返回True。 |
not | 布尔非 | 如果x为True,返回False。如果x为False,它返回True。 | x = True; not y返回False。 |
and | 布尔与 | 如果x为False,x and y返回False,否则它返回y的计算值。 | x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算. |
or | 布尔或 | 如果x是True,它返回True,否则它返回y的计算值。 | x = True; y = False; x or y返回True。短路计算在这里也适用。 |
运算符(由低到高) | 描述 | 名称(一些特殊的方法) | 说明 |
1.lambda | Lambda表达式 | 13.*,/,% | 乘法、除法与取余 |
2.or | 布尔“或” | 14.+x,-x | 正负号 |
3.and | 布尔“与” | 15.~x | 按位翻转 |
4.not x | 布尔“非” | 16.** | 指数 |
5.in,not in | 成员测试 | 17.x.attribute | 属性参考 |
6.is,is not | 同一性测试 | 18.x[index] | 下标 |
7.<,<=,>,>=,!=,== | 比较 | 19.x[index:index] | 寻址段 |
8.| | 按位或 | 20.f(arguments...) | 函数调用 |
9.^ | 按位异或 | 21. (experession,...) | 绑定或元组显示 |
10.& | 按位与 | 22. [expression,...] | 列表显示 |
11.<<,>> | 移位 | 23.{key:datum,...} | 字典显示 |
12.+,- | 加法与减法 | 24.'expression,...' | 字符串转换 |
a = b = c
被处理为 a = (b = c)
。分解为:b=c;a=b
1-12
range
返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如, range(1,5)
给出序列 [1, 2, 3, 4]
。默认地, range
的步长为1。如果我们为 range
提供第三个数,那么它将成为步长。例如, range(1,5,2)
给出 [1,3]
。记住,range 向上 延伸到第二个数,即它 不包含第二个数。