和其他编程语言一样,Python也拥有运算符,用于执行程序代码运算,常用的运算符有1. Python算术运算符2. Python关系运算符3. Python赋值运算符4. Python 逻辑运算符,下面就依次介绍下各个运算符的使用方法:
算术运算符
为了更加直观清晰地分辨出各个运算符之间的差异,这里先申明两个变量a、b,并赋值a=100、b=12;
+ | 两个对象相加 | a+b的值是: 112 |
- | 两个数相减 | a-b的值是: 88 |
* | 两个数相乘或是返回一个被重复若干次的字符串 | a*b的值是: 1200 |
/ | 两个数相除 | a/b的值是: 8 |
% | 取模 - 返回除法的余数 | a%b的值是: 4 |
** | 幂 - 返回a的b次幂 | a**b的值是: 1000000000000000000000000 |
// | 取整除 - 返回商的整数部分 | a//b的值是: 8 |
程序运行结果如图:
备注:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。
如100/12.0=8.33333333333,因为12.0是浮点数
关系运算符
这里同样采用上面的变量和赋值,a=100,b=12
== | 等于,比较对象是否相等 | (a == b) 返回 False |
!= | 不等于,比较两个对象是否不相等 | (a != b) 返回 true |
<> | 不等于,比较两个对象是否不相等,这个运算符类似 != | (a <> b) 返回 true。 |
> | 大于,返回a是否大于b | (a > b) 返回 true |
< | 小于,返回a是否小于b | 所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写,(a < b) 返回 false |
>= | 大于等于 | 返回a是否大于等于b,true |
<= | 小于等于 | 返回a是否小于等于b,false |
程序运行结果如图:
赋值运算符
这里同样采用上面的变量和赋值,a=100,b=12
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c=112 |
+= | 加法赋值运算符 | c += b 等效于 c = c + b,返回 124 |
-= | 减法赋值运算符 | c -= b 等效于 c = c - b,返回 112 |
*= | 乘法赋值运算符 | c *= b 等效于 c = c * b,返回 1344 |
/= | 除法赋值运算符 | c /= b 等效于 c = c / b,返回 112 |
%= | 取模赋值运算符 | c %= b 等效于 c = c % b,返回 4 |
**= | 幂赋值运算符 | c **= b 等效于 c = c ** b,返回 16777216 |
//= | 取整除赋值运算符 | c //= b 等效于 c = c // b,返回 1398101 |
程序运行结果如图:
逻辑运算符
这里同样采用上面的变量和赋值,a=100,b=12
and | 布尔"与" -,如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 | 12 |
or | 布尔"或",如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值 | 100 |
not | 布尔"非" ,如果 x 为 True,返回 False 。如果 x 为 False,它返回 True | Flase |
程序运行结果如图:
当然除了上述常用的运算符外,Python还有位运算符、成员运算符、身份运算符。
位运算符是把数字看作二进制来进行计算的,有
按位与运算符: &(参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0)
按位或运算符: |(只要对应的二个二进位有一个为1时,结果位就为1)
按位异或运算符:^(当两对应的二进位相异时,结果为1)
按位取反运算符:~(对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1)
左移动运算符: <<(运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0)
右移动运算符: >>(把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数)
成员运算符有
in(如果在指定的序列中找到值返回 True,否则返回 False)
not in(如果在指定的序列中找到值返回 True,否则返回 False)
身份运算符有
is(判断两个标识符是不是引用自一个对象)
is not(判断两个标识符是不是引用自不同对象)
备注:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
运算符优先级
当多个运算符同时作用在一个程序中时,它们是有内在的执行优先级的,下面就用一张表罗列下:
** | 指数 (最高优先级) |
~ + - | 按位翻转、正负号 |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
下图操作演示了运算符优先级: