为什么会打印True和0呢?

img

第一个和第二个print为什么会打印出True和0呢?
不是应该打印出1和0吗

is 一般是地址判断,最好改成==
打印true是因为当el = true的时候,才会进入for循环,1不会,因为1是int型。
True是相当于1的,所以print 这个index的时候,虽然写的是el(值是True),但是写进去之后的效果就是lst.index(1)
因为1的索引是0,所以print 0


# list.index方法只返回第一个匹配value的序号

>>> int(True)
1
>>> int(False)
0

# bool类型其实是int类型的一个子类  bool类型还可以做运算
>>> True + False + 1 * True
2