python if是如何判断true或False的呢? is和== 有什么区别呢?

Python中的is和的区别,is判断值是否相等,id判断地址是否一致
Python中的is和
的区别

Python中的对象包含三要素:id、type、value。

其中id用来唯一标示一个对象,type标识对象的类型,value是对象的值。

is判断的是a对象是否就是b对象,是通过id来判断的。

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

那么问题来了
[]作为 一个空列表

[]==None
Out[85]: False

[]==True
Out[86]: False

[]==False
Out[88]: False

如果是[[]]呢,跟上边的结果是一样的。
but…
如果是if []: print(4)
if [[]]: print(4)
那么上边两个结果输出是什么呢?[[]]会输出结果
但是思考一下,这种情况下,if 判断的是bool值,bool值对一般值得判断是怎样的呢,bool函数
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
bool 是 int 的子类
是时候我的文档学习法出马了!
下面是Python文档中对bool值得定义
Truth Value Testing
大致的意思是通常任何对象都应该是true值,当 if 或者 while 判断条件,或者bool操作符是会用到bool值。
一下几种情况会被认为是false,bool()函数返回Fasle,或者len()函数返回0,

  1. 被定义为False或None的常量
  2. 0或者任何数字类型的0
  3. 空的序列或集合,元组(),列表[],range(0)
    Any object can be tested for truth value, for use in an if or while condition or as operand of the Boolean operations below.

By default, an object is considered true unless its class defines either a bool() method that returns False or a len() method that returns zero, when called with the object. [1] Here are most of the built-in objects considered false:

constants defined to be false: None and False.
zero of any numeric type: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
empty sequences and collections: ‘’, (), [], {}, set(), range(0)
Operations and built-in functions that have a Boolean result always return 0 or False for false and 1 or True for true, unless otherwise stated. (Important exception: the Boolean operations or and and always return one of their operands.)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值