第四章 运算符

第四章 运算符

算数运算符

a = 3
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b) #1.5 /数学中的除法
print(a//b) # 1 //整除(结果是整数)
print(a%b) # 1 % 模/求余
# 幂 2*2*2
print(2**3)
# ++ -- python中没有

赋值运算符

从右往左进行 支持链式赋值 解包赋值,左右两边个数要一致 复合赋值运算符:赋值+算术 += -= *= /= //= %=

# 从右往左进行
num = 12
num = num + 1
# num = input('请输入:')
print(num)
# 支持链式赋值
# a = 1
# b = 1
# c = 1
a = b = c = 1
print(a,b,c)
print(id(a),id(b),id(c))
# 解包赋值 左右两边个数要一致
# 交换两个数 m=5 n=3 ----》m=3 n=5
# 交换算法 temp
print('-------------')
m = 5
n = 3
temp = m
m = n
n = temp
print(m,n)
print('------------')
m = 5
n = 3
sum = m + n
m = sum - m
n = sum - n
print(m,n)
print('--------只在python中有效--------')
m = 5
n = 3
m,n=n,m
print(m,n)
# 复合赋值运算符 赋值+算术 += -= *= /= //= %=
print('-----------')
x = 2
x += 1 # x = x +1
print(x)

关系运算符

表示两个变量之间的大小关系的 > < >= <= == !=

# 关系运算符 关系表达式的结果是bool
a = 23
b = 12
print(a>=b) #True
print(a<=b) #False
print(a!=b) # !=不等于
print(a==b) # ==表示等于
# 通常不比较float数据,因为小数在内存存储不精确
print(1.1+2.2)
print(1.1+2.2==3.3) #False
# == 比较值
# in / not in 在/不在
print()
s = 'hello'
print('k' in s)
print('k' not in s)

逻辑运算符

主要是连接多个条件(布尔表达式–关系表达式、布尔变量)

and 逻辑与:同真则真,遇假则假

or 逻辑或:有真则真,同假则假

not 取反

# and 同真则真,遇假则假
a = 8
b = 4
print( a >1 and b >2) # True and True
# or 有真则真,同假则假
print(a >10 or b >20)
# not 取反
print(not(a>1))
print(True or True and False)
#结果是True,所以and比or的优先级高

位运算

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

下表中变量 a 为 60,b 为 13,二进制格式如下:

按位与 & :参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

按位或 | :只要对应的二个二进位有一个为1时,结果位就为1。

异或 ^ :当两对应的二进位相异时,结果为1

左移 <<:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

右移>>:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

# 位运算
m = 5
n = 12
print(m&n)
print(m|n)
print(m^n)
#结论:对一个数异或两次,就可以获取原数字本身
#交换两个数
print('------------')
a = 23
b = 12
temp = a ^ b #a^b==b^a
a = temp ^ a
b = temp ^ b
print(a, b)
print('-----------')
#>> 右移 相当于整除,右移1位相当于除以2 ,右移n位相当于除以2的n次方
print(5>>1)
print(5>>2)
#<< 左移 相当于乘法 左移1位相当于乘以2,左移n位相遇乘以2的n方
print(5<<1) # 10
print(5<<2) # 20

运算符的优先级

小括号>算术运算>位运算>关系运算>逻辑运算>赋值运算

先运算 ,再比较 ,再链接,最后赋值

建议大家,把优先高的放在小括号中,这样的代码可读性好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值