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

第二个if为啥不能用and

def toUppers(L):

    return [x.upper() for x in L and isinstance(x,str)]

print toUppers(['Hello', 'world', 101])


正在回答

2 回答

这一段最先被执行的部分是  L and isinstance(x,str) 

然后再对这个表达式的值迭代(虽然这个式子返回布尔值并不能迭代,不过这不是重点)

重点是x得有值才能被引用,然而在迭代了之后x才被赋值,并且执行到isinstance(x,str)时迭代还没开始

所以你的写法有问题

2 回复 有任何疑惑可以回复我~
#1

bhjzlwq

受教了
2016-02-18 回复 有任何疑惑可以回复我~
#2

wxa1 提问者

非常感谢!
2016-02-22 回复 有任何疑惑可以回复我~

for循环是迭代不是条件,and用于两个条件之间

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

举报

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

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

进入课程

第二个if为啥不能用and

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