调用自身的函数
名字 down 写在 down 里面,每一步交出的数都小 1。所以 down(3) 先写 3,再写 2,再写 1。
if n == 0: return 这一行是停下的地方。n 是 0 时,这一行运行,down 不再用。不写这一行,步骤不会结束,程序也走不完。那种写坏的形式下面没有。
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(3)
屏幕上是 3,然后 2,然后 1。print 在下一次 down 之前运行。down(1) 写出 1,然后到 down(0)。down(0) 碰上停下的那一行,什么都不写,程序结束。
把 print 挪到 down(n - 1) 后面那一行。较小的数先写出来,因为每一步都等里面的那一步结束。
def down(n):
if n == 0:
return
down(n - 1)
print(n)
down(3)
屏幕上是 1,然后 2,然后 3。down(0) 仍然什么都不写。print 在回来的路上运行,所以 1 写在 2 前面,2 写在 3 前面。
单独的 down(0) 到不了 print。停下的那一行马上运行。
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(0)
屏幕保持空白,程序结束。n 一开始就是 0,所以 print 和下一次 down 都被跳过。
把屏幕看反
第二个程序不是 3,然后 2,然后 1。那个顺序属于第一个程序,那里 print 在前面。从任何一个里删掉 if n == 0: return,步骤就不会结束。不要运行那一版。
下一页是一列值。这一页只看一个用自己名字的函数,以及让它在 0 停下的那一行。
顺着数字看
- 第一个程序先写什么,后写什么?
- 第二个程序先写什么,后写什么?
- 第三个程序写什么?
- 删掉停在 0 的那一行。程序会走完吗?
down 做什么
down 里面的名字 down,配上 n - 1,从 3 走到 1。这一步前面的 print 写出 3,然后 2,然后 1。后面的 print 写出 1,然后 2,然后 3。if n == 0: return 是程序能结束的原因。down(0) 什么都不写。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部