python数据类型案例,python基本数据类型之布尔

布尔类型

布尔类型是计算机中最基本的类型,它是计算机二进制世界的体现,一切都是0和1。Python中的布尔类型只有两种值:True和False。(注意:首字母都是大写,与C++、JavaScript中的小写有所不同)

布尔类型回答的是是非问题,那么什么情况下是True,什么情况下是False呢? Python里面实现了一个类型对象叫做bool,bool是一个int的子类,内置的True和False就是bool仅有的两个实例对象。

使用bool我们就可以对对象进行布尔真假判断:

print(bool(None))

# False

print(bool(0))

# False

print(bool([]))

# False

print(bool(()))

# False

print(bool(''))

# False

print(bool({}))

# False

以上是判断为假的情况,总结一下为假的情况有:

None, False

数值中的0, 0.0, 0j(虚数), Decimal(0), Fraction(0, 1)

空字符串('')、空元组(())、空列表([])

空字典({})、空集合(set())

对象默认为True,除非它有bool()方法且返回False或len()方法且返回0.

布尔运算: and, or, not

下面的表列举了布尔运算的结果,优先级为升序:

运算表达式结果说明

或运算x or y如果x为False则取决于y;如果x为True则不考虑y(1)

与运算x and y如果x为False则不考虑y;如果x为True则取决于y(2)

非运算not x如果x为False则为True,否则为False(2)

说明:

(1)or 是一种“短路运算符”,只有当第一个为False时才去验证第二个。即:两个变量只要有一个为True则为True。

(2)and也是种“短路运算符”,只有当第一个为True时才去验证第二个。即:两个变量都为True时结果才为True。

(3)not的优先级比非布尔运算符底,所以not a == b解释为not (a == b),并且a == not b是语法错误。

1 == not 2

#File "D:/test/safety.py", line 2

#   1 == not 2

#         ^

# SyntaxError: invalid syntax

print(not 1 == 22)

# True

上面讲到,or, and, not的优先级是依次递增的,优先级跟小学数学中先乘除后加减但括号里面的更优先是一样的。

那么小猿们猜猜下面的代码会输出什么:

print('' or 'b' and 'c')

优先级and大于or,所以先计算and:

(1)先计算'b' and 'c'时,'b'是True,则结果取决于'c',因此返回'c'。

(2)再计算'' or 'c',''是False,则结果取决于'C',因此返回'c'。

(3)最后打印出:c。

你算对了吗?

比较运算

前面提到,布尔值反应的是“是非”,有比较才有是非。Python中有8中比较运算。它们有相同的优先级,比布尔运算的优先级高。比较运算符可以任意的连写,比如:x

下面我们用表格来说明这8种不同的比较运算:

3d6096c07f7a0d646d7f62a8f5d0f362.png

总结

布尔类型(True, False)表示“是非”,是比较运算的结果,是条件判断的结果,从而决定程序的流程和分支走向。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值