QQ登录

只需一步,快速开始

搜索
鱼C论坛笔记大赛成绩公示
查看: 58|回复: 4

[已解决]代码求解释

[复制链接]
最佳答案
0 
累计签到:41 天
连续签到:1 天
发表于 2017-9-14 07:11:20 | 显示全部楼层 |阅读模式
20鱼币
为何代码输出结果是None
>>> l=None
>>> print(l and len(l.strip()) > 0)
None
最佳答案
2017-9-14 07:11:21
本帖最后由 chunchun2017 于 2017-9-15 16:02 编辑

不要纠结于len(l.strip()),如果纠结于这个,你甚至会发现
>>> len(l.strip())
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    len(l.strip())
AttributeError: 'NoneType' object has no attribute 'strip'
Python是短路逻辑,and运算时,如果第一个是False,后面的就不用判断了,不管后面的语法正不正确
None与任何变量进行and运算时,都是None,另一个变量不用管它是多少,正不正确
最后结果就是None

再加上两个关键点的解释:
http://blog.csdn.net/li_danny/article/details/49815761
http://www.cnblogs.com/an9wer/p/5475551.html

最佳答案

查看完整内容

不要纠结于len(l.strip()),如果纠结于这个,你甚至会发现 >>> len(l.strip()) Traceback (most recent call last): File "", line 1, in len(l.strip()) AttributeError: 'NoneType' object has no attribute 'strip' Python是短路逻辑,and运算时,如果第一个是False,后面的就不用判断了,不管后面的语法正不正确 None与任何变量进行and运算时,都是None,另一个变量不用管它是多少,正不正确 最后结果就是None ...
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
3 
累计签到:83 天
连续签到:1 天
发表于 2017-9-14 07:11:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 chunchun2017 于 2017-9-15 16:02 编辑

不要纠结于len(l.strip()),如果纠结于这个,你甚至会发现
>>> len(l.strip())
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    len(l.strip())
AttributeError: 'NoneType' object has no attribute 'strip'
Python是短路逻辑,and运算时,如果第一个是False,后面的就不用判断了,不管后面的语法正不正确
None与任何变量进行and运算时,都是None,另一个变量不用管它是多少,正不正确
最后结果就是None

再加上两个关键点的解释:
http://blog.csdn.net/li_danny/article/details/49815761
http://www.cnblogs.com/an9wer/p/5475551.html
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
9 
累计签到:198 天
连续签到:1 天
发表于 2017-9-14 08:53:27 | 显示全部楼层
这个打印None没问毛病啊  你想要啥结果?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
129 
累计签到:207 天
连续签到:3 天
发表于 2017-9-14 09:00:49 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
4 
累计签到:101 天
连续签到:2 天
发表于 2017-9-14 09:05:45 | 显示全部楼层
本帖最后由 BngThea 于 2017-9-14 09:08 编辑

python中的 and 判断结果为假的话,如果
1 and两边都是假,取前面的结果
2 and中有一个为假,取假的那个的值

  1. a = None
  2. b = False
  3. c = 1
  4. print(a and b)
  5. print(b and a)
  6. print(c and a)
复制代码


结果:
  1. None
  2. False
  3. None
复制代码
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-9-26 02:46 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表