1、Python 运算符
运算符用于对变量和值执行操作。
Python将运算符分为以下几类:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 身份运算符
- 成员运算符
- 按位运算符
2、Python 算术运算符
算术运算符与数值一起使用以执行常见的数学运算:
运算符 | 描述 | 示例 |
+ | 加 : 两个对象相加 | x + y |
- | 减 : 得到负数或是一个数减去另一个数 | x - y |
* | 乘 : 两个数相乘或是返回一个被重复若干次的字符串 | x * y |
/ | 除 : x除以y | x / y |
% | 取模 : 返回除法的余数 | x%y |
** | 幂 : 返回x的y次幂 | x ** y |
// | 取整除 : 返回商的整数部分(向下取整) | x // y |
例如:
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 c = a + b print c c = a - b print c c = a * b print c c = a / b print c c = a % b print c # 修改变量 a 、b 、c a = 2 b = 3 c = a**b print c a = 10 b = 5 c = a//b print c
注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。
>>> 1/2
0
>>> 1.0/2
0.5
>>> 1/float(2)
0.5
3、Python 赋值运算符
赋值运算符用于为变量赋值:
运算符 | 示例 | 另一种写法 |
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x%= 3 | x = x % 3 |
//= | x // = 3 | x = x // 3 |
**= | x **= 3 | x = x ** 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
例如:
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 21 b = 10 c = 0 c = a + b print c c += a print c c *= a print c c /= a print c c = 2 c %= a print c c **= a print c c //= a print c
4、Python 比较运算符
比较运算符用于比较两个值:
运算符 | 描述 | 示例 |
== | 等于 : 比较对象是否相等 | x == y |
!= | 不等于 : 比较两个对象是否不相等 | x!= y |
> | 大于 : 返回x是否大于y | x> y |
< | 小于 : 返回x是否小于y。所有比较运算符返回1表示真, 返回0表示假。这分别与特殊的变量True和False等价。 | x < y |
>= | 大于等于 : 返回x是否大于等于y。 | x> = y |
<= | 小于等于 : 返回x是否小于等于y。 | x <= y |
例如:
a = 21 b = 10 c = 0 if a == b : print "a 等于 b" else: print "a 不等于 b" if a <> b : print "a 不等于 b" else: print "a 等于 b" if a < b : print "a 小于 b" else: print "a 大于等于 b" # 修改变量 a 和 b 的值 a = 5 b = 20 if a <= b : print "a 小于等于 b" else: print "a 大于 b" if b >= a : print "b 大于等于 a" else: print "b 小于 a"
5、Python 逻辑运算符
逻辑运算符用于组合条件语句:
运算符 | 描述 | 示例 |
and | 如果两个语句都为true,则返回True | x <5 and x <10 |
or | 如果其中一个语句为true,则返回True | x <5 or x <4 |
not | 反转结果,如果结果为true,则返回False | not(x <5 and x <10) |
例如:
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 if a and b : print "变量 a 和 b 都为 true" else: print "变量 a 和 b 有一个不为 true" if a or b : print "变量 a 和 b 都为 true,或其中一个变量为 true" else: print "变量 a 和 b 都不为 true" # 修改变量 a 的值 a = 0 if a and b : print "变量 a 和 b 都为 true" else: print "变量 a 和 b 有一个不为 true" if a or b : print "变量 a 和 b 都为 true,或其中一个变量为 true" else: print "变量 a 和 b 都不为 true" if not( a and b ): print "变量 a 和 b 都为 false,或其中一个变量为 false" else: print "变量 a 和 b 都为 true"
6、Python 身份运算符
恒等运算符用于比较对象,不是相等的对象,而是如果它们实际上是相同的对象,并且具有相同的内存位置:
运算符 | 描述 | 示例 |
is | 如果两个变量都是同一个对象,则返回True | x is y |
is not | 如果两个变量都不是同一对象,则返回True | x is not y |
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
7、Python 成员运算符
成员运算符用于测试对象中是否存在序列:
运算符 | 描述 | 示例 |
in | 如果对象中存在具有指定值的序列,则返回True | y in x |
not in | 如果对象中不存在具有指定值的序列,则返回True | x not in y |
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "变量 a 在给定的列表中 list 中" else: print "变量 a 不在给定的列表中 list 中" if ( b not in list ): print "变量 b 不在给定的列表中 list 中" else: print "变量 b 在给定的列表中 list 中" # 修改变量 a 的值 a = 2 if ( a in list ): print "变量 a 在给定的列表中 list 中" else: print "变量 a 不在给定的列表中 list 中"
8、Python 按位运算符
按位运算符用于比较(二进制)数字:
运算符 | 名称 | 描述 |
& | 按位与运算符(AND) | 如果两个位均为1,则将每个位设置为1 |
| | 按位或运算符(OR) | 如果两位之一为1,则将每个位设置为1 |
^ | 按位异或运算符(XOR) | 如果两位中只有一位为1,则将每个位设置为1 |
~ | 按位取反运算符(NOT) | 反转所有位 |
<< | 左移动运算符 | 运算数的各二进位全部左移若干位, 由 << 右边的数字指定了移动的位数, 高位丢弃,低位补0。 |
>> | 右移动运算符 | 右移动运算符: 把">>"左边的运算数的各二进位全部右移若干位, >> 右边的数字指定了移动的位数 |
例如:
a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 c = a | b; # 61 = 0011 1101 c = a ^ b; # 49 = 0011 0001 c = ~a; # -61 = 1100 0011 c = a << 2; # 240 = 1111 0000 c = a >> 2; # 15 = 0000 1111
9、Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |