def greet():
for name in names:
return (f'Hello, {name.title()}!')
names = ['ron', 'tyler', 'dani']
greets = greet()
print (greets)
為什么這段代碼沒有回傳所有的名字?
預期的輸出應該是:
Hello, Ron!
Hello, Tyler!
Hello, Dani!
但我得到的只是:
Hello, Ron!
當我在函式中使用 print 而不是 return 時,我能夠獲取所有名稱,但使用 return 我不能。請幫忙?
uj5u.com熱心網友回復:
return結束函式。由于您在回圈內執行此操作,因此回圈在第一次迭代后停止。
您需要收集您正在創建的所有字串,將它們連接在一起,然后回傳。
def greet():
return '\n'.join(f'Hello, {name.title()}!' for name in names)
uj5u.com熱心網友回復:
另一種方法是使用生成器函式:
names = ['ron', 'tyler', 'dani']
def greet(names):
for name in names:
yield f'Hello, {name.title()}!'
for greeting in greet(names):
print(greeting)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/438304.html
下一篇:從函式節點jsssh2回傳值
