B1 · 第17集 · 4:30

Python f字符串详解

本集讲解Python中f字符串的用法,对比传统字符串拼接方式,展示如何简洁、清晰地嵌入变量。

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

字幕

  1. Alors on va compléter un tout petit peu le cours de Python sur des choses qu'on a

    那么,我们将对Python课程稍作补充,内容是我们之前学过的,

  2. déjà vues, mais que pour un premier passage j'avais laissé de côté.

    但初次学习时我略过了这些内容。

  3. Donc la première chose qu'on va compléter,

    首先我们要补充的是:

  4. donc on peut reprendre le cours de Python qu'on a,

    我们可以重新打开之前学过的Python课程,

  5. et on va aller compléter des choses au niveau des chaînes de caractères.

    然后在字符串部分做些补充。

  6. Donc cours de Python, chaînes de caractères,

    Python课程——字符串部分,

  7. et on va aller redescendre un petit peu, juste à la fin de chaînes de caractères.

    接着我们往下翻一点,到字符串部分的末尾。

  8. On a très souvent à faire des opérations comme celle qui est là,

    我们经常需要执行这类操作:

  9. c'est- à- dire de prendre une chaîne de caractères et puis de mettre un résultat ou

    也就是取一个字符串,再把某个结果或变量填入其中。

  10. une variable dedans.

    (此处指代前文提到的操作)

  11. Quand on avait les exercices,

    做练习题时,

  12. on avait eu aussi affiché bonjour le nom de la personne, vous avez tel âge,

    我们曾输出过类似‘你好,某某’、‘你今年XX岁’这样的内容,

  13. etc. Et ce qu'on a fait, c'était soit mettre tous les arguments à l'intérieur du

    当时的做法是:要么把所有参数都直接放进print函数里,

  14. print comme ça, auquel cas il y a d'ailleurs un espace.

    这样参数之间会自动加一个空格。

  15. Vous remarquez que ici si je prends cette.

    大家注意看这一行:

  16. cette ligne là et que je mets pas d'espace à la fin du égal automatiquement il y a

    如果我复制这行代码,且在等号后不手动加空格,

  17. un espace qui est rajouté entre les deux il y a ici un espace entre les deux si on

    Python也会自动在两者之间插入一个空格。

  18. veut éviter d'avoir à faire ça ou de faire des plus avec des str

    如果我们想避免这种麻烦,或者不想用加号连接字符串,

  19. De se compliquer avec les chaînes de caractères,

    不想让字符串处理变得复杂,

  20. il existe en Python en fait quelque chose de très pratique qu'on appelle les f-

    Python其实提供了一个非常实用的功能,叫作f-字符串(f-string)。

  21. strings. Donc.

    所以……

  22. À quoi ça ressemble?

    它长什么样子呢?

  23. On va faire un exemple où on va faire sans f- string et avec f- string.

    我们来举个例子,分别用普通方式和f-字符串来实现。

  24. Donc je rajoute une cellule.

    我再添加一个代码单元格。

  25. Je l'appelle lesFString.

    把它命名为‘lesFString’。

  26. Et on va regarder un exemple, on a une variable qui s'appelle nom.

    接下来,我们来看一个例子:有一个名为“nom”的变量。

  27. Alice. Et on a une variable qui s'appelle âge.

    爱丽丝。还有一个名为“âge”的变量。

  28. 25. Et ce que je veux, c'est afficher une phrase: " Bonjour Alice,

    25。我想输出这样一句话:“您好,爱丽丝,

  29. vous avez 25 ans." Donc print,

    您今年25岁。" 所以用print函数,

  30. comment est- ce qu'on l'a fait dans l'exo qu'on avait fait?

    之前练习中我们是怎么做的呢?

  31. La phrase: bonjour.

    句子是:您好,

  32. virgule, nom, virgule,

    加变量名,再加逗号,

  33. vous avez. virgule âge virgule ans.

    您今年,加变量âge,再加“岁”。

  34. Et là, on a bonjour Alice, vous avez 25 ans.

    这样就得到了:您好,爱丽丝,您今年25岁。

  35. Autre possibilité, on peut faire ça à l'intérieur d'une variable phrase.

    另一种方法是,把整个内容先存入一个叫phrase的变量中。

  36. Dans ce cas- là, ça va faire

    这种情况下,会变成:

  37. bonjour. Plus non, plus

    您好,加变量名,再加

  38. vous avez. Plus, alors là âge,

    您今年,再加(注意这里)变量âge,

  39. on ne peut pas directement l'ajouter puisque c'est un entier,

    但不能直接相加,因为它是整数类型,

  40. donc str de âge.

    所以要用str()函数把它转成字符串。

  41. plus en. Et print phrase.

    再加“岁”。最后打印phrase变量。

  42. Et là, vous voyez que ici, j'ai pas eu besoin de rajouter d'espace.

    大家看,这里我不需要额外添加空格。

  43. Si je le fais comme ça, les espaces ne sont pas ajoutés.

    如果我这样写,空格就不会自动添加。

  44. Donc là, quand on additionne, on concatène,

    也就是说,此时的加号表示字符串拼接,

  45. on additionne les chaînes de caractères, les espaces sont pas ajoutés.

    即字符串相加,空格不会被自动加入。

  46. Donc si j'en veux, il faut que je les mette moi- même.

    因此,如果需要空格,就得自己手动加上。

  47. C'est long, écrire bonjour, des plus, des ester, etc.

    这样写很麻烦:要反复输入“您好”、加号、“空格”等等。

  48. Et c'est pour ça que le Python propose en fait.

    正因如此,Python实际上提供了一种更优方案:

  49. Une solution: les f- strings.

    f-字符串(f-strings)。

  50. Le principe, c'est vous allez écrire votre chaîne de caractères,

    它的原理是:你先写出字符串,

  51. donc alors soit dans le prime, soit dans phrase par exemple.

    比如直接在print里,或赋值给phrase变量。

  52. Et avant les guillemets, vous allez mettre un f.

    在引号前,要加一个 f。

  53. Donc f guillemets, ça marche avec les guillemets simples,

    所以是 f 加引号,它支持单引号,

  54. ça marche avec les guillemets doubles,

    也支持双引号,

  55. ça marche avec les triples guillemets simples,

    还支持三重单引号,

  56. ça marche avec les triples guillemets doubles, ça marche dans tous les cas.

    也支持三重双引号——所有情况都适用。

  57. Donc avant de créer votre chaîne de caractères, vous mettez un f.

    因此,在创建字符串前,先写一个 f。

  58. À partir de ce moment- là, le Python va savoir que c'est une chaîne un petit peu

    从这一刻起,Python 就知道这是一个

  59. spéciale, et il va interpréter dans cette chaîne tout ce qui.

    稍特殊的字符串,

  60. est à l'intérieur d'accolades comme étant quelque chose à inclure à l'intérieur.

    并将其中花括号内的所有内容解释为需插入的内容。

  61. Donc là, bonjour, ça ne change pas.

    这里,“Bonjour”(你好)不变。

  62. Ensuite, une accolade.

    接着是一个花括号。

  63. nom, et là il va prendre la variable nom et remplacer par la représentation en

    里面写变量名 nom(姓名),

  64. chaîne de caractères de cette variable.

    Python 会自动将其替换为该变量的字符串表示形式。

  65. Vous avez et âge.

    再写上“et âge”(和年龄)。

  66. là, il n'y a pas besoin de faire le str,

    这里无需手动调用 str() 函数,

  67. il va le faire automatiquement quand il voit ces accolades et la variable à

    只要看到花括号及其中的变量,

  68. l'intérieur. Donc là, ici, c'est

    它就会自动转换。

  69. beaucoup plus joli, on maîtrise parfaitement, il n'y a pas de plus,

    这样写更简洁美观,完全可控,

  70. il n'y a pas de str à se poser.

    不用拼接(+),也不用额外写 str()。

  71. Pris une phrase.

    我们来试一句完整的话。