逻辑运算符
运算符 | 解释 | 格式 | 说明 |
and | 与 | x and y | x为True,返回y的值;x为False,不计算y,返回False |
or | 或 | x or y | x为True,则不计算y,返回Ture;x为False,返回y |
not | 非 | not x | x为True,返回False;x为False,返回True |
d=True
e=False
f=d and e
g=d or e
h=not d
i=not e
print(f)
print(g)
print(h)
print(i)
比较运算符
返回1表示真,返回0表示假,即对应True和False。
eg:a=15,b=30
运算符 | 描述 | 实例 |
== | 等于,是否相等 | (a==b) False |
!= | 不等于,是否不相等 | (a!=b) True |
> | 大于,X是否大于Y | (a>b) False |
< | 小于,X是否小于Y | (a<b) True |
>= | 大于等于,X是否大于等于Y | (a>=b) False |
<= | 小于等于,X是否小于等于Y | (a<=b) True |
*在python中,关系运算符可以连用
j=4
print(j<=30)
if(3<j<10):
print("j在3到10之间")
k=10<30 and 50<100
l=100<200 and 20>50
print(k)
print(l)
m=200
n=50<m<200
print(n)
位运算符(按位运算符是把数字看作二进制来进行计算的)
运算符 | 描述 |
& | 按位与运算符,参与计算的二值,若两个相对应的位置都为1,则该位置结果位1,否则为0 |
| | 按位或运算符,只要对应的两个二进制有一个为1时,结果为1 |
^ | 按位异或运算符,当两个对应的二进制位相异时,结果位1 |
~ | 按位取反运算符,对数据的每个二进制取反,把1变为0,把0变为1,~x类似于-x-1 |
<< | 左移动,运算数的每个二进制位全部左移若干位,由<<右边的数字控制,高位丢弃,低位补0 |
>> | 右移动,运算数的每个二进制位全部右移若干位,由<<右边的数字控制,高位丢弃,低位补0 |
o=0b11001
p=0b01000
print(bin(o|p)) #bin()可以将数字转成二进制表示,'0b11001'
print(bin(o&p)) #与
print(bin(o^p)) #异或
print(3<<2) #左移一位相当于乘以2,左移两位相当于:3*4
print(20>>1) #右移一位相当于除以2
同一运算符
is | isnot |
比较id | 比较值 |
比较地址 | 本质:_eq_() |
判断两个标识符是不是引用的同一对象 | 判断两个标识符是不是引用的不同对象 |
同一运算符用于比较两个对象的存储单元,实际比较的时对象的地址。
*整数缓存
命令行模式下,python仅仅对比较小的整数对象进行缓存,范围为[-5-256]并非是所有整数对象。
文件模式下,所有数字都会被缓存,范围是[-无穷大,+无穷大]
a=30
b=30
c=50
print(id(a))
print(id(b))
print(a is b)
print(a is not c)
成员运算符
成员运算符测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 |
in | 如果在指定的序列中找到值返回True,否则返回False |
not in | 不在,则返回True |
d="python"
e="py"
print(d in e) #True
f=[10,20,30]
print(10 not in f) #False
运算符优先级
1,复杂公式用小括号组织
2,乘除优先加减
3,位和算术>比较>赋值>逻辑
*增强型赋值运算。
运算符+,-,*,/,//,**,%和赋值符=可以构成增强型赋值运算
运算符 | eg | 等价 |
+= | a+=2 | a=a+2 |
-= | a-=2 | a=a-2 |
*= | a*=2 | a=a*2 |
/= | a/=2 | a=a/2 |
//= | a//=2 | a=a//2 |
**= | a**=2 | a=a**2 |
%= | a%=2 | a=a%2 |
*中间不能加空格
a=3.14
b=314e-2
a+=2
print(b)
print(a)
x=y=3
y *=x+2 #y=y*(x+2)
print(y)