QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
查看: 84|回复: 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 
累计签到:113 天
连续签到: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. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
12 
累计签到:198 天
连续签到:1 天
发表于 2017-9-14 08:53:27 | 显示全部楼层
这个打印None没问毛病啊  你想要啥结果?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
136 
累计签到:254 天
连续签到:12 天
发表于 2017-9-14 09:00:49 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
168 
累计签到:152 天
连续签到:1 天
发表于 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. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-18 05:11

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