第 3 集 · B1 · 7 分钟

Python · 第3集 · 变量和基本类型

讲师 Тимофей Хирьянов 的 Python 实践、算法和面向对象课,边看代码边听俄语。 开头:既然我们已经初步了解了这门语言,但还没有

Python · 第3集 · 变量和基本类型

中俄字幕

  1. раз мы с вами слегка познакомились с языком но не

    既然我们已经初步了解了这门语言,但还没有

  2. прошлись систематически по его конструкциям надо немножко

    系统性地学习其语法结构,我们需要稍作梳理。

  3. систематизировать значит давайте с вами

    进行系统化整理。那么,让我们一起来

  4. Мел. так мяч здесь итак

    梅尔,球就在这里,就这样。

  5. язык python создавался и продолжает развиваться еще раз я скажу в направлении

    Python 语言从诞生起,至今仍在持续发展——我再强调一遍——其发展方向是

  6. читабельности текста чтобы его было легко читать понимать и поддерживать и это

    代码的可读性,即让代码易于阅读、理解和维护。这一点

  7. начиная с самого вот базового синтаксиса и дальше вглубь чем больше сложные

    从最基础的语法开始,逐步深入到更复杂的

  8. концепции тем язык конечно сложнее но все таки он продолжает насколько возможно

    概念;随着概念越来越复杂,语言本身当然也变得更难,但它仍尽可能地

  9. оставаться там тоже читабельным

    保持可读性。

  10. вот значит по поводу блоков нет никаких фигурных скобок нет никакого begin end когда

    关于代码块:没有花括号,也没有 begin-end 关键字。

  11. мы хотим что то углублять мы это просто берем и углубляем то есть например ветвление

    我们想要深入探讨某些内容,我们直接对其进行深入分析,例如分支结构。

  12. да у нас есть некоторое условие

    是的,我们有一个条件。

  13. пишется это вот так вот если там прописывается логическое условие оно может быть

    它的写法如下:使用 if 关键字,后面跟一个逻辑条件,该条件可以是……

  14. довольно длинным некоторое выражение может быть может быть вызов функции некоторое

    相当长的表达式,可能包含函数调用,或其他……

  15. выражение которое должно возвращать логическое значение если оно не логическое то

    某个需返回布尔值的表达式;如果它本身不是布尔类型,

  16. оно будет приведено к логическому

    就会被转换为布尔类型。

  17. bool значению чтобы его посчитать и понять правда это или ложь ну и собственно весь

    即转换为布尔值,以便计算并判断其真假。

  18. блок операций которые будут выполняться под этим условием он находится вот здесь вот

    而在此条件下执行的所有操作都放在这个缩进块中。

  19. с отступом от тут традиционные четыре пробела но в большинстве редакторов для работы

    缩进通常为四个空格;不过大多数 Python 专用编辑器都支持此格式,

  20. с питоновскими текстами они немножко ну обычный текстовый редактор подходит даже

    甚至普通文本编辑器也基本可用。

  21. тупой блокнот хотя я если под виной работаю стараюсь хотя бы notepad++ использовать

    笨拙的记事本。不过,我在Windows下工作时,至少会尽量使用Notepad++。

  22. есть такой notepad++ вот хотя бы его ну какую там простейшую любую среду и он будет

    就有这样的Notepad++,哪怕只用它,或者随便一个最简单的开发环境,它也能做到。

  23. уже там подсветку синтаксиса делать вы точно не ошибетесь в именах операторов if

    已经能提供语法高亮功能,这样你绝不会在if等操作符名称上出错。

  24. кроме этого отступы будет заменять автоматически на четыре пробела если вы будете

    如果你使用PyCharm这类开发环境,它会自动将缩进替换为四个空格。

  25. использовать среду разработки такую как pycharm

    此外,还有PyCharm这样的开发环境。

  26. community edition я ее упомяну потому что она мне очень нравится хотя она и

    社区版(Community Edition)。我特意提到它,是因为我非常喜欢它,尽管它……

  27. как сказать отсылкой к несвободной pycharm но у неё есть свободная версия pycharm

    怎么说呢,它算是对非自由版PyCharm的一种呼应,但它本身提供了免费的PyCharm版本。

  28. community edition Community Edition, она хороша в первую очередь тем, что

    社区版(Community Edition)。它最大的优点首先在于……

  29. очень дружелюбна по отношению к пользователям.

    它对用户非常友好。

  30. Она подсказывает там, где может разобраться, сделать introspection кода, она просто

    会在它能理解的地方给出提示,还能对代码进行内省分析。

  31. будет подсказывать.

    将提供提示。

  32. Прям там, как дополнить, помечать ошибки,

    直接在文本中提示如何补全、标记错误,

  33. прям вот красным подчеркивать ошибки в тексте явные.

    甚至用红色下划线明确标出文本中的错误。

  34. Так что такого невозможно сказать.

    因此,这种说法是完全不可能的。

  35. Поэтому в этом смысле, что она очень образовательная, я вам советую поставить ее у

    正因如此,它教育性极强,我强烈建议您安装它。

  36. себя. Но она прожорливая, если у кого- то слабый ноутбук или слабый компьютер, не

    但如果您的笔记本电脑或电脑配置较低,请不要安装。

  37. ставьте. Она прожорливая в смысле ресурсов.

    它对系统资源消耗很大。

  38. Пишет питерская компания Jetbrains.

    由俄罗斯圣彼得堡公司 JetBrains 开发。

  39. jetbrains коммерческие версии не нужны там есть возможность доступа студентам не

    JetBrains 的商业版本并非必需;学生可免费获取授权。

  40. надо достаточно этой Значит, еще раз,

    再强调一遍:

  41. погружаемся в блок.

    进入该代码块。

  42. Соответственно, у нас сколько тут будет неких действий.

    因此,这里将执行若干操作。

  43. Оператор один, оператор два, и так далее.

    操作符一、操作符二,以此类推。

  44. Они все у нас будут под условием.

    它们全部都受条件约束。

  45. Соответственно, если условие ложно, то мы сюда не попадаем.

    因此,如果条件为假,则不会执行此处的代码。

  46. Еще я в прошлый раз сказал, что можно делать во первых else и соответственно блок

    上次我还提到,首先可以使用 else,然后相应地添加一个代码块。

  47. продолжать вот сюда.

    然后继续往下执行。

  48. Но если у меня там вложенное ветвление, то есть я делаю иначе и снова сразу же если,

    但如果存在嵌套分支,即我先写 else,紧接着又写 if,

  49. то есть я свое пространство возможности рассекаю вот так говорю.

    那么我就这样划分自己的可能性空间。

  50. Если, вот тогда понятно.

    如果是这样,就清楚了。

  51. Условно, пусть я набираю в команду баскетбола, да, я говорю, если ты раньше играл в

    假设我要组建一支篮球队,是的,我说如果你以前打过

  52. баскетбол, сразу да.

    篮球,那就直接通过。

  53. Иначе не факт, что мы тебя возьмем, да.

    否则,我们未必会录用你。

  54. Но иначе если ты выше 180, да,

    但另外,如果你身高超过180厘米,是的,

  55. и умеешь хорошо прыгать.

    而且弹跳能力很好。

  56. да, то есть мы делаем отсечку вот здесь вот, иначе если,

    是的,也就是说,我们在这里设个门槛;否则,如果……

  57. и тогда, ну как, какие- то там тебя нужно чуть обучить, но тем не менее, да, а

    然后呢,嗯,大概需要对你稍加培训,但至少,是的,而且

  58. иначе, ну там может быть уже и не будет, да, ну а может быть будет иначе если.

    否则,嗯,可能就没有了,是的,不过也可能有,视情况而定。

  59. Очень часто бывают такие каскадные ветвления по жизни, они бывают довольно часто, то

    生活中经常出现这种级联式分支,相当常见,也就是说

  60. есть если иначе если да, вторая ситуация, да, иначе это иначе, если мы из него

    如果否则,否则,是的,第二种情况,是的,否则就是另一种情况,如果我们从他身上……

  61. отсекаем какую- то ситуацию, остается вот это вот, которая тогда, когда ничего не

    排除某种情况,剩下这种情况,即什么都没有的时候。

  62. было если, ничего не было правдой.

    如果什么都没有,那就是事实。

  63. Правильная последовательность, кстати, она довольно важна.

    正确的顺序其实相当重要。

  64. ну давайте сейчас не будем на этом сильно концентрироваться.

    现在我们先不要过分关注这一点。

  65. значит, смысл в том, что можно сокращать вот это дело и писать elif.

    意思是,可以将这部分简化,写成 elif。

  66. я в прошлый раз это дело показывал, то есть вот так вот.

    我上次已经演示过这个了,就是像这样。

  67. и если elif, и этих elif'ов можно дописывать довольно много, сколько надо, да.

    如果是 elif,还可以添加很多个 elif,需要多少就写多少。

  68. и вот эти блоки, получается, они никуда вправо не уезжают,

    这些代码块不会向右缩进。

  69. это удобно. надо сказать, что здесь возникает такое понятие, как призрак.

    这很方便。需要说明的是,这里会引出一个叫‘幽灵’的概念。

  70. призрак— это некоторое логическое условие.

    ‘幽灵’是一种逻辑条件。

  71. которая верна в некоторый момент выполнения.

    在程序执行的某个时刻为真。

  72. Ну, например, вот здесь, вот здесь, вот или вот здесь вот.

    嗯,比如这里、这里、这里,或者这里。

  73. Кое- что является правдой.

    有些内容是真实的。

  74. ну например давайте я какую нибудь конкретику напишу если x больше нуля если y

    嗯,比如,我来写一个具体例子:如果 x 大于 0,且 y

  75. больше нуля да вот тут что то там будет да иначе давайте здесь же просто напишу

    大于 0,那么这里就会执行某些操作;否则,我就直接在这里写。

  76. иначе так вот у меня вот в этом else вот и вот здесь на самом деле есть призраки

    否则,我的这个 else 分支里实际上存在‘幽灵’。

  77. ghost— это логическое условие, которое неочевидно из самого вот этого места, что это

    ‘幽灵’是一个逻辑条件,仅从该位置本身无法明显看出这一点。

  78. правда. На самом деле, попадая вот сюда,

    它是真实的。实际上,当进入此处时,

  79. автоматически выполняется то, что x не больше нуля, меньше либо равно нуля.

    会自动满足 x 不大于 0(即 x 小于或等于 0)。

  80. И в принципе я имею право это дело как- то отметить.

    原则上,我有权对此加以标注。

  81. Вообще комментарии в коде, комментарии в программном коде— это вещь хорошая, но

    一般来说,代码中的注释是件好事,但

  82. часто бывает лишняя.

    往往又显得多余。

  83. Лучше отсутствие комментария, чем устаревший комментарий.

    没有注释,好过过时的注释。

  84. То есть если уж вы пишете комментарии какие- то к коду, то они должны быть

    也就是说,如果你要为代码添加注释,那么这些注释

  85. актуальными про него.

    必须准确反映当前代码的实际功能。

  86. А не так, что написано" поворачивай налево", ну условно здесь тра- та- там, а оно

    不能写成“向左转”,比如这里、那里,但实际上这已不正确了,

  87. уже неправда, да, " поворачивай налево",

    “向左转”已经不对了,

  88. самое, не" поворачивай направо", там болото, болота нет уже.

    实际应该是“向右转”,而所谓“沼泽地”早已不存在了。

  89. Понимаете, должно быть актуально.

    明白吗?注释必须保持时效性。

  90. Лучше не писать комментарии.

    宁可不写注释。

  91. Но и еще есть такое понятие: программный код должен быть само- документирующимся.

    但还有一个概念:程序代码应当是自解释的。

  92. это значит что при чтении самого программного кода вам должно быть читать его легко.

    这意味着在阅读程序代码本身时,您应该能轻松理解它。

  93. переменные должны называться длинно, понятно и отражать собственную сущность.

    变量名应当足够长、清晰,并准确反映其本质含义。

  94. Понимаете? Мы козла называем козлом, потому что это отражает сущность козла.

    明白吗?我们称山羊为‘山羊’,因为这反映了山羊的本质。

  95. мы называем так русский язык устроен и программисты они мыслят

    我们这样称呼是因为俄语就是这样构建的,而程序员的思维方式也是如此。

来源:Тимофей Хирьянов · CC BY 3.0

同系列