Python逻辑运算结果的类型

Python的逻辑运算符如下:

x and y, 如果x为False, 不计算y的值,直接返回x。否则返回y。
x or y, 如果x为True,不计算y的值,直接返回x。否则返回y。
not x, 如果x为False,返回True。否则返回False。

在and和or运算中,python使用了短路计算。即如果x的值已经决定了结果,将不执行y。x和y可以是变量或者表达式。

我们知道Python中,数字,字符串,列表等都能参与逻辑运算。0,空字符串,空列表当作False;而非空值当作True。

所以需要注意的是:and和or的运算结果不一定是布尔类型!具体类型是由返回的x或y决定的。只有not操作返回的才一定是布尔类型!

>>>0 and 23
0
>>>type(0 and 23)
<type 'int'>
>>> '' or 'abcd'
''
>>> type('' or 'abcd')
<type 'str'>
>>>not ''
True
>>>type(not '')
<type 'bool'>

所以有了这样的用法:

x > 0 and "Positive" or "Negative"

如果x>0的值是True,and的结果就是"Positive"。"Positive"和"Negative"进行or运算,因为“Positive”是True,所以继续返回“Positive”。

如果x>0的值是False,and的结果就是False。False和”Negative“进行or运算,返回”Negative“。
这和条件表达式的作用完全一样:"Positive" if x > 0 else "Negative"。

还有这样:

'''写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”'''
for x in range(101): 
    print “fizz”[x%3*4:] + “buzz”[x%5*4:] or x

如果or前面的是空字符串,则返回数字x,因为空字符串是False。

所以在Python中,逻辑运算符并非只能用于逻辑运算。

转载于:https://www.cnblogs.com/cypine/p/3339821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值