B1 · 第16集 · 4:43

Python条件语句详解

本集讲解如何用if语句结合and等布尔运算符判断多个条件,如年龄和性别组合。

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

字幕

  1. Mâle, 1 égale femelle.

    雄性,1代表雌性。

  2. D'accord, et ça c'est l'âge.

    好的,这是年龄。

  3. Et donc on peut très bien dire, ok, si j'ai un

    因此我们完全可以这样说:好,如果我有一只

  4. mâle de plus de 12 ans, alors il

    12岁以上的雄性犬,那么

  5. faut lui donner des croquettes adaptées.

    就得给它喂专用狗粮。

  6. Donc si. On a un vieux mal.

    所以如果……我们有一只年老的雄性犬。

  7. Je pense à un chien, désolé, j'ai pas précisé.

    我想到的是狗,抱歉,刚才没说明。

  8. Donc on parle d'un chien.

    所以我们现在说的是狗。

  9. Si on a un vieux mâle, d'accord, donc plus de 12 ans.

    如果我们有一只年老的雄性犬,也就是12岁以上。

  10. Il doit avoir, prenez la marque de croquettes que vous voulez,

    它需要吃——选您喜欢的狗粮品牌,

  11. d'accord? Donc là, c'est une condition,

    好吗?这是一个条件,

  12. mais c'est une condition avec deux choses. Il faut qu'il soit vieux et il faut qu'il

    但它包含两个要求:它必须年老,且必须生病。

  13. soit mal. Donc c'est là qu'on va pouvoir utiliser nos opérateurs booléens,

    这正是我们可以使用布尔运算符的地方,

  14. les ou, les or, les and, etc.

    比如 or(或)、and(与)等等。

  15. Donc là, la condition, on va pouvoir l'écrire if.

    因此,这个条件我们可以写成 if(如果)。

  16. âge supérieur à douze

    年龄大于12岁,

  17. et Sexe égale zéro.

    且性别等于零。

  18. Attention, c'est une double comparaison, donc égale égale zéro,

    注意,这是双重比较,所以要写两个等号:等于零,

  19. print croquettes.

    然后输出‘狗粮’。

  20. de vieux mâle, voilà.

    老年雄性犬,就是这样。

  21. D'accord, donc là en l'occurrence, il n'affiche rien.

    好的,当前情况下,它什么也不显示。

  22. Si je transforme ça en un vieux mâle.

    如果我把这个改成一只老年雄性犬。

  23. On va lui dire OK croquet de humain.

    我们就告诉它:‘好,人类狗粮。’

  24. Donc on peut utiliser comme ça

    因此我们可以这样使用

  25. plusieurs comparaisons et les mettre entre eux par

    多个比较,并用逻辑运算符连接它们,

  26. l'âge supérieur à 12 et le sexe supérieur à 0.

    比如‘年龄大于12’和‘性别大于0’。

  27. Alors attention, c'est une comparaison.

    注意,这是一个比较操作。

  28. Donc le résultat de cette comparaison, qui est un booléen,

    因此,这个比较的结果是一个布尔值,

  29. ça ici comment ça s'écrit en fait c'est ce booléen là.

    这里所指的,实际上就是这个布尔值。

  30. Et ce booléen- là, d'accord, ça se lit

    而这个布尔值呢,没错,它的读法是

  31. comme en français.

    和法语一样。

  32. Si l'âge est supérieur à 12 et que le sexe est supérieur à 0,

    如果年龄大于12,并且性别大于0,

  33. mais en fait, on pourrait très bien rajouter ici des parenthèses,

    但实际上,我们完全可以在这里加上括号,

  34. âge supérieur à 12.

    比如‘年龄大于12’。

  35. et sexe égal zéro.

    以及‘性别等于0’。

  36. Et en fait c'est même plutôt pas mal de les rajouter,

    事实上,加上括号反而更好,

  37. ça rappelle qu'on a ici une comparaison.

    它能提醒我们:这里是一个比较操作。

  38. une autre comparaison et qu'on vient faire la liaison logique entre ces deux

    另一个比较操作,然后我们用逻辑运算符

  39. comparaisons et ça ça évite des erreurs du type voilà

    把这两个比较操作关联起来,这样可以避免这类错误:

  40. imaginez que la condition maintenant ça soit

    比如,现在条件变成这样:

  41. Imaginez qu'on a, si on a.

    假设我们有……如果存在……

  42. Un âge supérieur à douze.

    年龄大于十二,

  43. est inférieur à treize, à quinze.

    又小于十三或十五。

  44. D'accord? Là ici, en français, c'est comme ça qu'on dit.

    明白吗?在法语里,我们就是这么说的。

  45. Donc s'il a un âge plus grand que 12 et plus petit que 13,

    所以,如果某人年龄大于12又小于13,

  46. C'est du français tout à fait correct.

    这完全是地道的法语表达。

  47. Si je l'écris en Python comme ça, if âge supérieur à 12

    但如果我在Python里这么写:if 年龄大于12,

  48. and inférieur à 13 à 15.

    and 小于13或15,

  49. Print ado. Qu'est- ce qu'il fait Python, il me dit invalid

    再打印‘ado’,Python会提示‘语法错误’。

  50. syntax. Pourquoi?

    为什么呢?

  51. Parce que là, j'ai fait juste de la traduction du français, et ça,

    因为此时我只是直译了法语句子,而这种做法,

  52. je sais que vous allez me le faire,

    我知道你们肯定会这么做,

  53. mais j'ai fait la traduction de la phrase en français.

    但确实只是把法语句子逐字翻译了过来。

  54. Ce qu'elle veut dire cette phrase, c'est qu'on a ici une première condition,

    这句话的意思是,这里有一个首要条件,

  55. et ce que je sous- entends ici, c'est un âge supérieur à 12 et

    而我在此暗示的是年龄大于12岁,

  56. cet âge, ce même âge, est inférieur à 15.

    且这个年龄同样小于15岁。

  57. Donc là, quand je veux l'écrire en Python,

    那么,当我打算用Python来写它时,

  58. je n'ai pas le droit de le traduire comme ça.

    我不能直接这样翻译。

  59. La première comparaison, elle est là, âge supérieur à 12.

    第一个比较式在这里:年龄大于12。

  60. Et en fait, ça s'écrirait comme ça après.

    实际上,它应该写成这样。

  61. Si je rajoute mes parenthèses, vous voyez que ma parenthèse de droite,

    如果我加上括号,您会发现我的右括号,

  62. elle veut plus rien dire.

    就完全失去意义了。

  63. Parce qu'ici, c'est une comparaison entre 15 et

    因为这里是在拿15和……

  64. Nawak, rien du tout.

    ‘Nawak’——根本毫无意义。

  65. Donc l'idée, c'est que voilà, vous ne devez pas traduire directement,

    因此,关键在于:您不能直译,

  66. vous devez réfléchir ça en des et d'opérations logiques.

    而应把它思考为逻辑“与”运算的组合。

  67. Et là, la bonne manière d'écrire ça, âge supérieur à 15,

    那么,正确写法是:年龄大于12,

  68. il ne faut pas traduire directement la phrase,

    不要照搬原句直译,

  69. il faut traduire ça en une. Combinaison avec le ET de comparaisons.

    而要用“与”连接多个比较式。

  70. Donc si l'âge est supérieur à 12 et l'âge est inférieur à 15.

    即:年龄大于12,并且年龄小于15。

  71. Et là, effectivement, on peut écrire ados.

    这时,我们就能正确写出‘ados’(青少年)了。

  72. Ok, voilà, donc avec ça, effectivement,

    好的,就这样——有了这些知识,

  73. vous êtes équipé éventuellement pour aller faire les exercices.

    您就已具备完成练习的条件了。