🐸

返回之路

数据与文本工具python-data-tinkerer-15-the-return-path
奖励: 110 XP
|

返回之路

走进工匠台后,Hoppy 先碰到的不是更大的机器,而是一条还没完全点亮的小路。每次试灯时,它都能在函数里面算出亮度,可是数字只是在里面闪一下,外面的代码却接不住这份成果。

这就是 return 要解决的小问题:函数不只是把结果秀给你看,它还可以把结果交回调用者,让外面的代码继续拿着它往下做事。

print() 会展示,return 会交回

如果你在函数里用 print(),你只是让人看见了一个结果。可一旦函数结束,这个结果不会自动跑到外面给下一步代码使用。return 不一样:它会把结果真正送回调用位置。

glow_dust = 2
moss_drops = 4
bonus_light = 1


def brew_path_light(glow_dust, moss_drops):
  total_light = glow_dust + moss_drops
  return total_light


path_light = brew_path_light(glow_dust, moss_drops)
brighter_path_light = path_light + bonus_light

print("Path light:", path_light)
print("Brighter path light:", brighter_path_light)

上面这段代码里,brew_path_light() 先算出一份亮度,再用 return 把它送出来。于是外面的 path_light 可以把它接住,然后 brighter_path_light 还能继续在这个基础上加上额外亮度。

把返回值接住,下一步才真正开始

这节课最想让你记住的一句直觉是:print() 更像“展示给人看”,而 return 更像“交给外面的代码继续用”。所以今天不只要写出 return,还要把返回值接进变量里,再做下一步计算。

1
把函数里的打印改成 return

starter 里的 brew_path_light() 已经算出了 total_light。你要做的,是别再只把它打印出来,而是用 return total_light 把结果交回去。

2
在函数外接住返回值

path_light = brew_path_light(glow_dust, moss_drops) 接住这份亮度。这样调用结束后,外面的代码也拿到了结果。

3
继续使用这个返回值

path_lightbonus_light 算出 brighter_path_light。这一步就是今天最关键的证明:函数返回的结果,真的能被后面的代码继续使用。

一句很够用的区分

print() 是“让我看见”。return 是“把结果交回来”。如果你还想在函数外继续使用这个结果,就要优先想到 return

参考答案
点击展开
参考答案:
glow_dust = 7
moss_drops = 5
bonus_light = 3


def brew_path_light(glow_dust, moss_drops):
  total_light = glow_dust + moss_drops
  return total_light


path_light = brew_path_light(glow_dust, moss_drops)
brighter_path_light = path_light + bonus_light

print("Path light:", path_light)
print("Brighter path light:", brighter_path_light)
高级技巧
想更进一步?点击展开

今天先把最基础也最关键的一步打透:一个函数可以把一个结果交回给调用者。只要你把它接进变量里,这个结果就不再只是“闪一下就过去”的输出,而会变成后续代码真的能拿来工作的材料。

下一课你会看到:有时候一个小任务不只会交回一个结果,而会一起带回两份彼此相关的小产物。但今天先守住这一条返回之路,就够了。

Loading...
终端输出
Terminal
Ready to run...