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

这代码怎么不对

def toUppers(L):

    for x in L:

        if isinstance(x, str):

            return [x.upper()]

        else:

            return


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

为什么这个结果只有‘HELLO’



如果如下代码怎么又出不来了,(只是少了else而已)

def toUppers(L):

    for x in L:

        if isinstance(x, str):

            return [x.upper()]

  

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


正在回答

2 回答

我将你的代码做了一下修改,每一次循环后输出的是一个值,而你的这一个值却没有地方存储,这就是为什么到最后你输出的只有第一个值。最后返回的值应该是个列表。

def toUppers(L):

    m=[]

    for x in L:

        if isinstance(x, str):

            m.append(x.upper())

    return m

          

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


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

第一个结果只有Hello是因为第一步做if的判断语句,判断元素x是不是字符串,是则输出大写,不是则返回空值,所以你的语句里缺乏for循环,去遍历列表中的所有元素值

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

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

举报

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

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

进入课程

这代码怎么不对

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