大家好,我是皮皮。

一、前言

前几天在Python黄金交流群【dcpeng】问了一道​​Python​​类型的基础问题,如下图所示。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python入门

二、实现过程

针对这个问题,大佬们一起讨论,给出了具体的结论,​​Python​​里的布尔值是数字类型。这里【崔峰】给了一个代码,如下所示:

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python入门_02

可以看到,布尔类型和​​int​​类型的实例是同一个,但是​​True​​和​​1​​这两个变量指向的对象​​id​​不相同,便是同个不同的对象,一个布尔对象,一个是。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python基础_03后来【瑜亮老师】补充了最强王者交流群之前针对该类似问题的讨论记录。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python基础_04# yyds干货盘点 # Python布尔值属于数字类型吗?_python_05

还记得【小小明大佬】的​​bool​​值加数字对字符串进行切片操作么?

# yyds干货盘点 # Python布尔值属于数字类型吗?_python_06

后来【格格物 এ คิดถึง】补充了一个重要的知识点,如下图所示。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python基础_07

布尔值属于数字类型。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python自学_08后来【flag != flag】也查到​​int​​是​​bool​​的父类。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python自学_09

果然是真的。

# yyds干货盘点 # Python布尔值属于数字类型吗?_python_10

这里使用​​__base__​​属性查看父类,可以看到布尔类型的父类的确是​​int​​。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python自学_11

顺利解决粉丝的问题。最后关于​​is​​和​​==​​的区别,这里【瑜亮老师】给了一个比方,挺清晰了,一起学习下。

# yyds干货盘点 # Python布尔值属于数字类型吗?_Python基础_12

引申:# yyds干货盘点 # Python布尔值属于数字类型吗?_Python自学_13

参考阅读:《Python中神秘的-5到256》:​​https://zhuanlan.zhihu.com/p/33907983​

《Python中字符串的intern机制》:​​https://www.cnblogs.com/greatfish/p/6045088.html​

《Python中字符串的intern机制》:​​ https://mrcuriosity.org/python-string-intern.html​

如果有遇到问题,随时联系我解决,欢迎加入我的​​Python​​学习交流群。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一道​​Python​​类型基础的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【dcpeng】提问,感谢【月神】、【瑜亮老师】、【崔峰】、【flag != flag】给出的思路和代码解析,感谢【此类生物】、【猫药师Kelly】、【冯诚】、【此类生物】、【忌讳@】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。