Return 个函数的值
Return values from a function
def greet():
for name in names:
return (f'Hello, {name.title()}!')
names = ['ron', 'tyler', 'dani']
greets = greet()
print (greets)
为什么这段代码没有return所有名字?
预期的输出应该是:
Hello, Ron!
Hello, Tyler!
Hello, Dani!
但我只得到:
Hello, Ron!
当我在函数中使用 print 而不是 return 时,我能够获取所有名称,但使用 return 则不能。请帮忙?
return
结束函数。由于您在循环内执行此操作,因此循环在第一次迭代后停止。
您需要收集您正在创建的所有字符串,将它们连接在一起,然后return。
def greet():
return '\n'.join(f'Hello, {name.title()}!' for name in names)
另一种方法是使用生成器函数:
names = ['ron', 'tyler', 'dani']
def greet(names):
for name in names:
yield f'Hello, {name.title()}!'
for greeting in greet(names):
print(greeting)
def greet():
for name in names:
return (f'Hello, {name.title()}!')
names = ['ron', 'tyler', 'dani']
greets = greet()
print (greets)
为什么这段代码没有return所有名字?
预期的输出应该是:
Hello, Ron!
Hello, Tyler!
Hello, Dani!
但我只得到:
Hello, Ron!
当我在函数中使用 print 而不是 return 时,我能够获取所有名称,但使用 return 则不能。请帮忙?
return
结束函数。由于您在循环内执行此操作,因此循环在第一次迭代后停止。
您需要收集您正在创建的所有字符串,将它们连接在一起,然后return。
def greet():
return '\n'.join(f'Hello, {name.title()}!' for name in names)
另一种方法是使用生成器函数:
names = ['ron', 'tyler', 'dani']
def greet(names):
for name in names:
yield f'Hello, {name.title()}!'
for greeting in greet(names):
print(greeting)