1.算术运算符
算术运算符包括一元运算符和二元运算符。
(1)一元算术运算符
+(正号),例:+a
-(负号),例:-a
(2)二元算术运算符
+,求和,例:a+b
-,求差,例:a-b
*,求乘积,例:a*b
/,求除,例:a/b
%,取余,例:a%b,a除b的余数,5%3=2
**,幂,例:a**b,a的b次幂,2**3=8
//,整除,例:a//b,返回商的整数部分,7//2=3
2.比较运算符
比较两个表达式大小,结果是布尔类型数据,即真True或假False
==,等于,例:1==2,结果False
!=,不等于,例:1!=2,结果True
>,大于,例:1>2,结果False
<,小于,例:1<2,结果True
>=,大于等于:1>=2,结果False
<=,小于等于,1<=2,结果True
注意:其他类型可以转换吗?比较运算符可以用于任意类型数据,当两种数据类型要相互兼容,例如整数、浮点和布尔三种类型相互兼容。例如:
a=’Hello‘
b=’Hello‘
a == b
结果:True
那么字符可以比较大小吗?其实也可以的,字符怎么会有大小,实际上比较的是他们的Unicode码值,可以自己在代码中尝试哦!当类型不兼容时,就会出现报错TypeError
3.逻辑运算符
逻辑运算符用于布尔型变量运算,结果时布尔类型。
not,逻辑非,例:not a,a为True,not a为False
and,逻辑与,例:a and b,a、b全为True,结果True,否则都为False
or,逻辑或,例:a or b,a、b全为False,结果False,否则都为True
注:感兴趣可以看离散数学,也是计算机中非常重要的内容,电路设计中就利用与非门。
>>>a = 1
>>>b = 0
>>>def f1():
print('函数f1为真')
return True
>>> (a>b) and f1()
函数f1为真
True
>>> (a<b) and f1()
False
>>> (a>b) or f1()
True
>>> (a<b) or f1()
函数f1为真
True
4.位运算符
以二进制bit位进行运算,结果是整数类型
~,位反,例:a的二进制按位取反
&,位与,例:a&b,a与b按位进行与运算
|,位或,例:a|b,a与b按位进行或运算
^,位异或,例:a^b,将a与b按位进行异或运算
>>,右移,例:a>>b,将a向右移b位,高位采用符号位补位
<<,左移,例:a<<b,将a向左移b位,低位用0补位
>>> a = 0b00001011 #十进制数11
>>> b = 0b00001000 #十进制数8
>>> a | b
11
>>> a & b
8
>>> a ^ b
3
>>> ~a
-12
>>> a >> 1 #右移1位变为0b00000101
5
>>> a << 1 #左移1位变为0b00010110
22
注:位反可用公式计算~a=(a+1)* -1,你可以任意验算。
5.赋值运算符
+=,加赋值,例:a+=b等于a=a+b
-=,减赋值,例:a-=b等于a=a-b
*=,乘赋值,例:a*=b等于a=a*b
/=,除赋值,例:a/=b等于a=a/b
%=,取余赋值,例:a%=b等于a=a%b
**=,幂赋值,例:a**=b等于a=a**b
//=,整除赋值,例:a//=b等于a=a//b
&=,位与赋值,例:a&=b等于a=a&b
|=,位或赋值,例:a|=b等于a=a|b
^=,位异或赋值,例:a^=b等于a=a^b
<<=,左移赋值,例:a<<=b等于a=a<<b
>>=,右移赋值,例:a>>=b等于a=a>>b
>>> a=2
>>> b=1
>>> a+=b
>>> a
3
>>> a-=b
>>> a
2
>>> a*=b
>>> a
2
>>> a/=b
>>> a
2.0
>>> a%=b
>>> a
0.0
>>> a=0b00001011
>>> b=0b00001000
>>> a |=b
>>> a
11
>>> a^=b
>>> a
3
6.运算符的优先级
优先级:
(),小括号
**,幂
~,位反
+,-,正负号
*,/,%,//,乘、除、取余、取整除
+,-,加、减
<<,>>,位移
&,位与
^,位异或
|,位或
<,<=,>,>=,<>,!=,== 比较
not 逻辑非
and,or 逻辑与、逻辑或
注:算术运算符>位运算符>关系运算符>逻辑运算符>赋值运算符
建议在代码中用表达式尝试测试运算符优先级。