day 2 运算符与分支结构

day 2 运算符与分支结构

1.布尔值转换

python中任何类型的数据都可以转换成布尔值,所有为0、为空的值都会转换成False,其他的值都是True

举个栗子

print(bool(0), bool(0.0))      
# False  False
print(bool(100), bool(-1000), bool(''), bool(""), bool('False'), bool(' '))       
# True True False False True True

并且在逻辑运算中如果表达式的值不是布尔值,就转换成布尔值再判断。

2.短路操作

and 的短路操作: 条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不会执行

or 的短路操作: 条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不会执行

False and print('====')
True or print('++++')

如上两段代码都没有执行后半部分语句就结束了。

print(5 and 3)      # 3
print(5 or 3)       # 5
print(0 and 3)      # 0

当文本字符出现在逻辑语句中,就会进行布尔值转换,如第一句代码就打印了3,这是因为and逻辑语判断出前半部分为True,再判断后半部分,无论后半部分是否为False都会执行到该位置,所以就打印出了3。第二句代码同理,or逻辑语中会首先判断前半部分是否为True,如果为True就直接打印前半部分,产生短路操作后半部分不执行,当前半部分为False则会打印后半部分的值。第三句代码因为前半部分出现了False,所以就中断了执行,只执行前半部分,进行短路操作。

3.*位运算

位运算有:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(右移)

应用1:判断整数的奇偶性 - 数字对1进行按位与运算,如果结果是1就是奇数,结果是0就是偶数

print(28 & 1, 10 & 1, 9 & 1)   
# 0 0 0 0
print(11 & 1, 9 & 1, -23 & 1, 1005 & 1)    
# 1 1 1 1

使用函数位运算可以大大提高运算效率,再关于2和2的倍数的运算中可以使用位运算来进行编程,在一些大型企业中很容易考察这类基础知识。

应用2:

数字 << N - 快速乘 2**N

数字 >> N - 快速整除 2**N

数字 << 1 - 快速乘2:数字*2

数字 >> 1 - 快速整除2:数字//2

print(4 << 1, 5 << 1, 5 << 2)       
# 8 10 20
print(4 >> 1, 5 >> 1, -5 >> 1)      
# 2 2 -3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值