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

遇到数字元素 为什么会返回None

L=['good','boy','bye',28,'thanks','no','yes',55]

def mys(x):

    if isinstance(x,str):

        return x.upper()

        

print [mys(i) for i in L]


运行成功,输出错误

['GOOD', 'BOY', 'BYE', None, 'THANKS', 'NO', 'YES', None]

下面这样写就不会出现None

L=['good','boy','bye',28,'thanks','no','yes',55]

def mys(x):

        return x.upper()

        

print [mys(i) for i in L if isinstance(i,str)]


正在回答

2 回答

函数没有return语句或者return语句不带表达式的时候返回 None。


0 回复 有任何疑惑可以回复我~
你最后一行代码的  if isinstance(i,str)  可以判断变量i 是否是字符串,有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。
所以运行成功,不会把数字打印出来


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

举报

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

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

进入课程

遇到数字元素 为什么会返回None

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