【1】算数操作符
和大多数语言一样,python的算数操作符绝大部分能被我们所理解,注意不是全部。
+ - * / % ** //
加 减 乘 除 取模 求幂 取整
(取余) (math.pow)
前面四个应该不用多说了,大名鼎鼎的四则运算。
num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 ** num2)#5^3 pow(5, 3)
print(num1 // num2)
>>>8
>>>2
>>>15
>>>1.6666666666666667
>>>2
>>>125
>>>1
【2】赋值运算符和赋值运算表达式
赋值运算符 =
赋值运算表达式
格式:变量 = 表达式
功能:计算了等号右侧“表达式”的值,并赋值给等号左侧的变量
值:赋值结束后变量的
num3 = 10
num4 = num3 + 20
print(num3,num4)
>>>10 30
【3】复合运算符
复合运算符
+= 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
【4】优先级问题
当一个表达式存在多个运算符的时候,就可能发生不知道先运行谁的情况;
比如小学数学规定,先括号在乘除,加减是最低,这就是优先级。
例如:
-3 * 2 + 5 / -2 -4
相当于:
(-3) * 2 + 5 / (-2) -4
#这个大家很容易理解
python有一个特殊的乘法,双星号(**)幂运算,
例如:
3 ** 2
星号左侧是底数,星号右侧是指数,这叫做3的2次幂,或者3的2次方
因为幂运算操作符和一元操作符的优先级关系比较特别,幂运算操作符比期左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。
-3 ** 2
>>>9
3 ** -2
>>>0.1111111111111111
【5】位运算符
位运算符:按位运算符是把数字看做二进制数来进行计算
& 按位与运算符
相应的位数都为1,则该位的结果是1,否则为0
print(5 & 7)
'''
5 ->101
7 ->111
101
111
————
101
101->5
'''
>>>5
| 按位或运算符
两个二进制位有一个位1时,结果为1
print(5 | 7)
'''
101
111
---
111
'''
>>>7
^ 按位异或运算符
二进制的两位相异时,结果为1
print(5 ^ 7)
'''
101
111
---
010
'''
>>>2
~ 按位翻转运算符
将二进制数+1之后乘以-1
print(~5)
'''
~101
___
(101+1) * -1
___
(111) * -1
__——
-111
'''
>>>-6
<< 左移动运算符
各二进制位全部左移动若干位,由<<右侧的数字决定,高位丢弃,低位补0
方法: X<<N 将一个数字X所对应的二进制数向左移动N位.
print(2 << 2)
'''
0000 0010
___
0000 1000
'''
>>>8
>> 右移动运算符
各二进制位全部右移动若干位,由>>右侧的数字决定
方法: X>>N 将一个数字X所对应的二进制数向右移动N位.
print(8 << 2)
'''
0000 1000
___
0000 0010
'''
>>>2
【6】比较运算符
比较运算符根据表达式值得真假返回布尔值。
格式: 表达式1 关系运算符 表达式2
== != > < >= <=
python在布尔值处理上有些不同,True等于整数1,False等于整数0
#全等于,包括数据类型,布尔型的
print(1 == 2) >>>False
print(1 == '1') >>>False
print(1 == True) >>>True
#不等于
print(1 != 2) >>>True
print(0 != False) >>>False
print(1 != '1') >>>True
#大于
print(1 > 2) >>>False
print(True > False) >>>True
#小于
print(3 < 8) >>>True
print(True < False) >>>False
#大于等于
print(True >= False) >>>True
print(1 >= True) >>>True
#小于等于
print(3.14 <= 3.14) >>>Ture
print(math.ceil(math.pi) <= math.floor(math.pi)) >>>True
【7】逻辑运算符
逻辑操作符包括and
、or
、not
逻辑与:and操作符左边的操作符为真,右边也为真,那么结果为真。
and执行的是一个串联的短路原则,一个地方坏了都换了(悲观原则)
a = 0
b = 1
print(a==0 and b==1)
print(a==0 and b==2)
>>>True
>>>False
逻辑与:or操作符只需要左边或右边有一个为真,那么结果为真。
or是一个并联的原则,其它的短路了我这里依然是好的,只要一个是好的那就是好的(乐观原则)
a = 0
b = 1
print(a==2 and b==12)
print(a==0 or b==2)
>>>False
>>>True
逻辑非:not操作符是一个一元操作符,它的作用是得到一个和操作符相反的布尔类型。
a = 0
print(not a==1)
print(not a==0)
#这里相当于 !=
>>>True
>>>False
【8】成员运算符
成员运算符包括in
、not in
,从字义上可以看,他是判断在什么里面和不在什么里面,返回一个布尔值。
格式: x in y x not in y
a = 'qwert'
print('e' in a)
print('e' not in a)
>>>True
>>>False
【9】身份运算符
身份运算符包括is
、is not
,判断标识符是不是引用同一个对象。
格式: x is y x is not y