从函数返回值

DR8*_*DR8 1 python return function

def greet():
    for name in names:
        return (f'Hello, {name.title()}!')

names = ['ron', 'tyler', 'dani']

greets = greet()
print (greets)
Run Code Online (Sandbox Code Playgroud)

为什么此代码不返回所有名称?

预期输出应该是:

Hello, Ron!
Hello, Tyler!
Hello, Dani!
Run Code Online (Sandbox Code Playgroud)

但我只得到:

Hello, Ron!
Run Code Online (Sandbox Code Playgroud)

当我在函数中使用 print 而不是 return 时,我可以获取所有名称,但使用 return 则无法获取。请帮忙吗?

Bar*_*mar 6

return结束函数。由于您在循环内执行此操作,因此循环在第一次迭代后停止。

您需要收集您正在创建的所有字符串,将它们连接在一起,然后返回。

def greet():
    return '\n'.join(f'Hello, {name.title()}!' for name in names)
Run Code Online (Sandbox Code Playgroud)