为了账号安全,请及时绑定邮箱和手机立即绑定

"因为Python把0、空字符串' '和None看成 False,其他数值和非空字符串都看成 True"这句话里None是如何理解?或者说None的表示形式是这样:>>>print sure sure没有用单引号和双引号来表示字符串,所以就是表示None?

a = True
print a and 'a=T' or 'a=F'

计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?

因为Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True,


正在回答

2 回答

Python中的逻辑操作符 and,or 的返回值是不限制返回值类型。例如,object1 逻辑运算符(and/

or) object2, 其返回值结果肯定是两个对象中的一个,不管这两个对象到底什么类型的(Python把.........其他数值和非空字符串都看成 True),都返回对象本身,而不会明确的返回一个布尔型的结果。

http://img1.sycdn.imooc.com//56dacd9d00013b7807720138.jpg

上面是从帮助API帮助手册上查到的。

 a and 'a=T' or 'a=F'  这个复合逻辑运算表达式的结果是字符串  a=T, 所以print  ..........

当然你可以测试一下下面代码,可以帮助你理解

a= True  and 'abc'

b= '123' and 'abc'

print a 

print b


0 回复 有任何疑惑可以回复我~

对对对对

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

"因为Python把0、空字符串' '和None看成 False,其他数值和非空字符串都看成 True"这句话里None是如何理解?或者说None的表示形式是这样:>>>print sure sure没有用单引号和双引号来表示字符串,所以就是表示None?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信