正在加载...

返回值

return 从函数里交出一个值。cups_left 收到 started 和 drank,交出 started - drank。所以 cups_left(3, 1) 就是数字 2。

print 在函数外面,写出交出来的东西。cups_left 自己没有 print。

交出来的是 2

python
def cups_left(started, drank):
    return started - drank

print(cups_left(3, 1))

屏幕上是 2。这是 print 写的,不是 cups_left。换别的数字,交出来的就是那个差。cups_left(3, 3) 是 0,因为 3 - 3 等于 0。

return 下面的一行仍然缩进,也属于函数。它还是不运行。return 立刻离开函数,Python 到不了那一行。

return 下面的一行不运行

python
def cups_left(started, drank):
    return started - drank
    print("done")

print(cups_left(3, 1))

屏幕上是 2。done 没有被写出来。print("done") 缩进在 def 下面,但 return 已经离开了函数。

没有 return,就没有值交出来,结果是 None。None 的意思是没有值。greet 写出名字,自己没有 return。屏幕上的 lida 来自里面的 print。greet("lida") 本身的结果是 None。

里面的 print 不是结果

python
def greet(name):
    print(name)

print(greet("lida"))

屏幕上先是 lida,然后是 None。greet 写出了 lida。外面的 print 写出了结果。这个结果是 None,因为 greet 没有 return。

三次使用,以及每一次交出来的东西。greet 那一行的结果是 None,虽然屏幕上也有 lida。这个 lida 是里面的 print,不是结果。

📊 交出来的是什么

使用 结果
cups_left(3, 1) 2
cups_left(3, 3) 0
greet("lida") 没有 return None

下一页说一个名字能用到哪里。这里只看交出来的值。

先看再答

  1. print(cups_left(3, 1)) 写出什么?
  2. cups_left(3, 3) 是什么?
  3. print("done") 在 return 下面。done 会写出来吗?
  4. greet 只写名字。print(greet("lida")) 写出哪两行?

交出来的值

return started - drank 让结果成为这个数字。print(cups_left(3, 1)) 写出 2,cups_left(3, 3) 是 0。return 下面的一行不运行,所以 done 不会出现。没有 return 时,print(greet("lida")) 先写 lida,再写 None。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
5
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部