将python列表作为函数参数传递

时间:2019-10-24 17:42:20

标签: python

我有以下python代码

def fir(a,x):
    for i in x:
        h = getx(a,i)
        return h
def getx(a, i):
    print('Hello {} {}'.format(a, i))

print(fir(2,['hi','Helloooooooooooooooo']))

o / P给了我

Hello 2 hi
None

我不想要无,而是我需要

Hello 2 Helloooooooooooooooo

为什么显示为“无”?

3 个答案:

答案 0 :(得分:3)

在循环后返回时,请确保“返回”代码不在循环内。否则,您将只返回第一次迭代。查看下面更新的代码:

def fir(a,x):
    for i in x:
        h = getx(a,i)
    return h
def getx(a, i):
    print('Hello {} {}'.format(a, i))

print(fir(2,['hi','Helloooooooooooooooo']))

请注意,“ return h”行现在与for循环一致,而不是在其中。

答案 1 :(得分:1)

在第一次循环迭代结束时,您return正在访问,因此代码仅显示“ hi”。

答案 2 :(得分:1)

return带出循环。将getx()的所有结果收集在一个列表中,并将它们加入返回的值中。

并且getx()应该返回格式化的字符串而不是打印它,以便调用者可以打印结果本身。

def fir(a,x):
    return "\n".join(getx(a, i) for i in x)
def getx(a, i):
    return 'Hello {} {}'.format(a, i)

print(fir(2,['hi','Helloooooooooooooooo']))