B1 · 第25集 · 4:42

Python函数调用与返回

本集讲解Python中函数调用时的执行流程、return语句的作用,以及无return时默认返回None的机制。

来源:jmbarbier / peertube.solidev.net · 许可:CC BY-SA 4.0

字幕

  1. Puis elle va renvoyer

    然后它将返回

  2. le return, on va renvoyer la valeur de a.

    这个返回值,我们将返回变量a的值。

  3. Donc je reviens ici en faisant un retour qui vaut 1.

    因此我回到这里,返回值为1。

  4. D'où est- ce que je reviens?

    我从哪里返回?

  5. Je reviens à la fonction qui m'avait appelé.

    我返回到调用我的那个函数。

  6. Donc là ici, je reviens à cet endroit- là.

    所以此刻,我回到这个位置。

  7. Le g de a qui était appelé est remplacé maintenant par sa valeur de retour et sa

    原先被调用的g(a)现在被其返回值替换,

  8. valeur de retour c'est 1.

    它的返回值是1。

  9. Donc ça me fait maintenant un print 1.

    于是现在执行的是print(1)。

  10. Donc j'ai à nouveau ici un 1 qui va s'afficher.

    因此这里又会显示一个1。

  11. Puis je passe à l'étape d'après,

    接着进入下一步,

  12. return deux fois a.

    返回2乘以a。

  13. Donc cette fonction, là je suis toujours dans la fonction h.

    此时,我仍处于函数h中。

  14. Ma fonction h va, elle, donc ici,

    我的函数h将在这里,

  15. mon h, on dirait un b.

    我的h看起来像一个b。

  16. Ma fonction h qui est là va elle- même revenir

    此处的函数h自身也将返回,

  17. en renvoyant deux fois a, on voit ici que le a valait 1 maintenant,

    返回2乘以a;我们看到这里的a当前值为1,

  18. deux fois a ça fait un renvoi de 2.

    2乘以a的结果就是返回2。

  19. Où est- ce que je reviens?

    我返回到哪里?

  20. Je reviens à l'endroit qui m'avait été appelé,

    我返回到调用我的那个位置,

  21. où est- ce que j'avais été appelé? Ici.

    我在哪里被调用的?就在这里。

  22. Donc là maintenant le h deux a correspondant est supprimé et est remplacé.

    因此现在,对应的h(2a)被移除并被替换。

  23. par la valeur de retour qui vaut 2.

    替换成值为2的返回值。

  24. Donc là j'ai un appel maintenant à g de 2, donc je passe.

    于是现在我调用g(2),所以我进入下一步。

  25. à nouveau ici, et j'ai un appel à la fonction g.

    再次来到这里,并调用函数g。

  26. Avec comme argument a égale 2.

    参数a等于2。

  27. Je passe à la ligne du dessous, print a,

    我换到下一行,写print a,

  28. donc je vais avoir ici un affichage a qui vaut 2.

    所以这里会显示a的值为2。

  29. Et je fais un renvoi, return.

    然后我执行return(返回)操作。

  30. Du A, donc je reviens au programme à plan.

    返回a的值,因此程序回到主流程。

  31. Mon programme à plan, il était, pardon.

    我的主程序原本是……抱歉,

  32. Mon programme à plan, il était là.

    我的主程序原本就在这里。

  33. Donc j'ai ici maintenant, je remplace toutes ces valeurs- là.

    所以现在,我用返回值替换所有这些位置上的值。

  34. par la valeur de retour qui est 2.

    而这个返回值是2。

  35. Donc là j'ai ma valeur de retour,

    此时我得到了返回值,

  36. je ressors de la fonction g avec la valeur 2 et c'est ici une valeur qui vaut print

    我带着数值2退出函数g,

  37. 2. Donc j'ai à nouveau un 2 qui s'affiche sur l'écran.

    而此处print语句输出的就是2,因此屏幕上再次显示一个2。

  38. Puis la fonction, j'ai terminé, j'ai fait le print,

    接着,函数执行完毕,我完成了print操作,

  39. et donc je vais sortir, attention, j'étais encore dans une fonction,

    于是我要退出——注意,我此前仍在某个函数内部,

  40. j'étais à l'intérieur de la fonction qui est la fonction w.

    我处于函数w的内部。

  41. Donc je vais sortir de cette fonction w.

    所以我将退出这个函数w。

  42. Il n'y a pas de return marqué, mais

    虽然没有显式写出return,

  43. il y a quand même une sortie.

    但函数依然会退出。

  44. Quand il n'y a pas de return,

    当函数中没有return语句时,

  45. la fonction s'en va quand même et elle ne renvoie rien.

    函数仍会结束运行,但不返回任何值。

  46. Et rien en Python, c'est None avec un N majuscule.

    而Python中的‘无’,即None,首字母N大写。

  47. Donc une fonction sans return,

    因此,没有return语句的函数,

  48. c'est la même chose qu'une fonction qui retournerait une valeur,

    等价于一个返回某个值的函数,

  49. et cette valeur qui est

    而这个值就是——

  50. là, elle s'appelle rien.

    在Python中,它就叫‘None’。

  51. Le rien existe en Python, c'est la valeur None.

    Python 中的‘空’就是 None 值。

  52. Et donc quand je vais arriver.

    那么,当我运行到这一步时,

  53. à mon programme plan définitif,

    我的最终版程序 plan,

  54. le W21 qui est là va être supprimé par la valeur de retour.

    其中这里的 W21 将被返回值覆盖。

  55. Cette valeur de retour.

    这个返回值,

  56. il y en a pas, mais en fait il y en a une, quand il n'y en a pas,

    看似没有,但实际上存在;

  57. ça veut dire que c'est la valeur None.

    当没有显式返回值时,它就是 None。

  58. Et donc quand je vais afficher ici le résultat,

    因此,当我在这里打印结果时,

  59. il manque une ligne un petit peu en bas.

    底部会少显示一行。

  60. Je vais ici rajouter, ce sera dans le sens où" none" dans les affichages.

    我将在此添加——即在输出中显示 "None"。

  61. Donc, si on veut le voir en Python.

    所以,如果你想在 Python 中看到它,

  62. Exercice 5. Pardon, d'abord la version 1.1.2.2 nonne qui correspond à ce qu'on avait

    练习 5:抱歉,先看 1.1.2.2 版本,

  63. prévu, et ici.

    也就是我们原先计划的版本,就在这里。

  64. Les différentes étapes,

    各个步骤,

  65. je vous laisserai les regarder en détail.

    请你们自行详细查看。

  66. Voilà. Dernier exercice, exercice 6.

    好了,最后一题:练习 6。

  67. On va dire je le laisse en défi.

    我把它留作挑战题。

  68. Il est même un peu plus compliqué que le 5,

    它甚至比第 5 题还稍难一些,

  69. donc voilà, si vous y arrivez.

    所以,如果你能解出来,那就太棒了!

  70. Tout est absolument faisable, mais il est un peu long et c'est.

    所有内容都完全可实现,但代码略长,而且……

  71. Un casse- tête juste pour se casser la tête, on va dire.

    纯粹是个烧脑题,只为锻炼思维。

  72. Si vous avez compris le reste, ça suffit.

    只要你理解了前面的内容,就已经足够了。

  73. Voilà pour les exos sur les fonctions.

    以上就是关于函数的练习。

  74. That's all, folks!

    谢谢大家,再见!