我有以下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
为什么显示为“无”?
答案 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']))