Revue (en retard) de howto/functional (#904)

* Revue (en retard) de howto/functional

* Prise en compte des remarques de JulienPalard.
This commit is contained in:
Christophe Nanteuil 2019-11-01 21:35:28 +01:00 committed by GitHub
parent 3f9de4e8ab
commit 7a2ab2d44e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: Python 3.6\n" "Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-21 09:48+0100\n" "POT-Creation-Date: 2018-12-21 09:48+0100\n"
"PO-Revision-Date: 2019-10-11 15:16+0200\n" "PO-Revision-Date: 2019-10-30 00:11+0100\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n" "Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n" "Last-Translator: \n"
"X-Generator: Poedit 2.2.1\n" "X-Generator: Poedit 2.2.3\n"
#: ../Doc/howto/functional.rst:3 #: ../Doc/howto/functional.rst:3
msgid "Functional Programming HOWTO" msgid "Functional Programming HOWTO"
@ -145,7 +145,7 @@ msgstr ""
"de privilégier une approche par rapport à une autre. Cela complexifie " "de privilégier une approche par rapport à une autre. Cela complexifie "
"l'écriture de programmes appliquant un paradigme différent de celui " "l'écriture de programmes appliquant un paradigme différent de celui "
"considéré. Certains langages sont multi-paradigmes et gère plusieurs " "considéré. Certains langages sont multi-paradigmes et gère plusieurs "
"approches différentes. Lisp, C++ et Python sont de tels langage ; vous " "approches différentes. Lisp, C++ et Python sont de tels langages ; vous "
"pouvez écrire des programmes ou des bibliothèques dans un style procédural, " "pouvez écrire des programmes ou des bibliothèques dans un style procédural, "
"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " "orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties "
"d'une application peuvent être écrites selon des approches différentes ; par " "d'une application peuvent être écrites selon des approches différentes ; par "
@ -408,10 +408,10 @@ msgstr ""
"En travaillant sur un programme dans le style fonctionnel, vous écrivez un " "En travaillant sur un programme dans le style fonctionnel, vous écrivez un "
"certain nombre de fonctions avec des entrées et des sorties variables. " "certain nombre de fonctions avec des entrées et des sorties variables. "
"Certaines de ces fonctions sont inévitablement spécifiques à une application " "Certaines de ces fonctions sont inévitablement spécifiques à une application "
"en particulier, mais d'autres peuvent être s'appliquer à de nombreux cas " "en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. "
"d'usage. Par exemple, une fonction qui liste l'ensemble des fichiers XML " "Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un "
"d'un répertoire à partir du chemin de celui-ci ou une fonction qui renvoie " "répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le "
"le contenu d'un fichier à partir de son nom peuvent être utiles dans de " "contenu d'un fichier à partir de son nom peuvent être utiles dans de "
"nombreuses situations." "nombreuses situations."
#: ../Doc/howto/functional.rst:171 #: ../Doc/howto/functional.rst:171
@ -485,7 +485,7 @@ msgstr ""
"Python s'attend à travailler sur des objets itérables dans divers contextes " "Python s'attend à travailler sur des objets itérables dans divers contextes "
"et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " "et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression "
"``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" "``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:"
"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" "`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::"
#: ../Doc/howto/functional.rst:229 #: ../Doc/howto/functional.rst:229
msgid "" msgid ""
@ -515,13 +515,13 @@ msgid ""
"stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either."
msgstr "" msgstr ""
"Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " "Certaines fonctions natives telles que :func:`max` et :func:`min` prennent "
"un itérateur en argument et en renvoie le plus grand ou le plus élément. Les " "un itérateur en argument et en renvoie le plus grand ou le plus petit "
"opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les itérateurs : " "élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les "
"``X in iterator`` est vrai si X a été trouvé dans le flux renvoyé par " "itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux "
"l'itérateur. Vous rencontrerez bien sûr des problèmes si l'itérateur est " "renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si "
"infini : :func:`max`, :func:`min` ne termineront jamais et, si l'élément X " "l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, "
"n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``\"not in\"`` non " "si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``"
"plus." "\"not in\"`` non plus."
#: ../Doc/howto/functional.rst:255 #: ../Doc/howto/functional.rst:255
msgid "" msgid ""
@ -562,7 +562,7 @@ msgid ""
"the dictionary's keys::" "the dictionary's keys::"
msgstr "" msgstr ""
"Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " "Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt "
"l'ensemble de ses clés ::" "l'ensemble de ses clés ::"
#: ../Doc/howto/functional.rst:291 #: ../Doc/howto/functional.rst:291
msgid "" msgid ""
@ -605,7 +605,7 @@ msgstr ""
"Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io." "Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io."
"TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le " "TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le "
"fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " "fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la "
"façon suivante ::" "façon suivante ::"
#: ../Doc/howto/functional.rst:316 #: ../Doc/howto/functional.rst:316
msgid "" msgid ""
@ -613,7 +613,7 @@ msgid ""
"set's elements::" "set's elements::"
msgstr "" msgstr ""
"Les ensembles peuvent être créés à partir d'un itérable et autorisent " "Les ensembles peuvent être créés à partir d'un itérable et autorisent "
"l'itération sur les éléments de l'ensemble ::" "l'itération sur les éléments de l'ensemble ::"
#: ../Doc/howto/functional.rst:326 #: ../Doc/howto/functional.rst:326
msgid "Generator expressions and list comprehensions" msgid "Generator expressions and list comprehensions"
@ -641,18 +641,18 @@ msgid ""
"functional programming language Haskell (https://www.haskell.org/). You can " "functional programming language Haskell (https://www.haskell.org/). You can "
"strip all the whitespace from a stream of strings with the following code::" "strip all the whitespace from a stream of strings with the following code::"
msgstr "" msgstr ""
"Les compréhensions de listes et les expressions génératrices sont une façon " "Les compréhensions de listes et les expressions génératrices sont des façons "
"concise d'exprimer de telles opérations, inspirées du langage de " "concises d'exprimer de telles opérations, inspirées du langage de "
"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " "programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez "
"retirer tous les caractères blancs d'un flux de chaînes de caractères à " "retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes "
"l'aide du code suivant ::" "de caractères à l'aide du code suivant ::"
#: ../Doc/howto/functional.rst:347 #: ../Doc/howto/functional.rst:347
msgid "" msgid ""
"You can select only certain elements by adding an ``\"if\"`` condition::" "You can select only certain elements by adding an ``\"if\"`` condition::"
msgstr "" msgstr ""
"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " "Vous pouvez ne sélectionner que certains éléments en ajoutant une condition "
"``\"if\"`` ::" "« ``if`` » ::"
#: ../Doc/howto/functional.rst:352 #: ../Doc/howto/functional.rst:352
msgid "" msgid ""
@ -664,7 +664,7 @@ msgid ""
"infinite stream or a very large amount of data. Generator expressions are " "infinite stream or a very large amount of data. Generator expressions are "
"preferable in these situations." "preferable in these situations."
msgstr "" msgstr ""
"La compréhension de liste retourne une liste Python ; ``stripped_list`` est " "La compréhension de liste renvoie une liste Python ; ``stripped_list`` est "
"une liste contenant les lignes après transformation, pas un itérateur. Les " "une liste contenant les lignes après transformation, pas un itérateur. Les "
"expressions génératrices renvoient un itérateur qui calcule les valeurs au " "expressions génératrices renvoient un itérateur qui calcule les valeurs au "
"fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " "fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie "
@ -678,17 +678,17 @@ msgid ""
"comprehensions are surrounded by square brackets (\"[]\"). Generator " "comprehensions are surrounded by square brackets (\"[]\"). Generator "
"expressions have the form::" "expressions have the form::"
msgstr "" msgstr ""
"Les expressions génératrices sont écrites entre parenthèses (\"()\") et les " "Les expressions génératrices sont écrites entre parenthèses (« () ») et les "
"compréhensions de listes entre crochets (\"[]\"). Les expressions " "compréhensions de listes entre crochets (« [] »). Les expressions "
"génératrices sont de la forme ::" "génératrices sont de la forme ::"
#: ../Doc/howto/functional.rst:372 #: ../Doc/howto/functional.rst:372
msgid "" msgid ""
"Again, for a list comprehension only the outside brackets are different " "Again, for a list comprehension only the outside brackets are different "
"(square brackets instead of parentheses)." "(square brackets instead of parentheses)."
msgstr "" msgstr ""
"La compréhension de liste équivalente s'écrit de la même à l'exception de " "La compréhension de liste équivalente s'écrit de la même manière, utilisez "
"l'utilisation des crochets à la place des parenthèses." "juste des crochets à la place des parenthèses."
#: ../Doc/howto/functional.rst:375 #: ../Doc/howto/functional.rst:375
msgid "" msgid ""
@ -698,7 +698,7 @@ msgid ""
"is true." "is true."
msgstr "" msgstr ""
"Les éléments de la sortie sont les valeurs successives de ``expression``. La " "Les éléments de la sortie sont les valeurs successives de ``expression``. La "
"clause ``if`` est facultative ; si elle est présente, ``expression`` ne sera " "clause ``if`` est facultative ; si elle est présente, ``expression`` n'est "
"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." "évaluée et ajoutée au résultat que si ``condition`` est vérifiée."
#: ../Doc/howto/functional.rst:379 #: ../Doc/howto/functional.rst:379
@ -710,7 +710,7 @@ msgstr ""
"Les expressions génératrices doivent toujours être écrites entre " "Les expressions génératrices doivent toujours être écrites entre "
"parenthèses, mais les parenthèses qui encadrent un appel de fonction " "parenthèses, mais les parenthèses qui encadrent un appel de fonction "
"comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " "comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement "
"passé à une fonction, vous pouvez écrire ::" "passé à une fonction, vous pouvez écrire ::"
#: ../Doc/howto/functional.rst:385 #: ../Doc/howto/functional.rst:385
msgid "" msgid ""
@ -733,8 +733,8 @@ msgid ""
"To put it another way, a list comprehension or generator expression is " "To put it another way, a list comprehension or generator expression is "
"equivalent to the following Python code::" "equivalent to the following Python code::"
msgstr "" msgstr ""
"Autrement dit, la compréhension de liste ou une expression génératrice est " "Autrement dit, une compréhension de liste ou une expression génératrice est "
"équivalente au code Python ci-dessous ::" "équivalente au code Python ci-dessous ::"
#: ../Doc/howto/functional.rst:408 #: ../Doc/howto/functional.rst:408
msgid "" msgid ""
@ -754,10 +754,10 @@ msgid ""
"is creating a tuple, it must be surrounded with parentheses. The first list " "is creating a tuple, it must be surrounded with parentheses. The first list "
"comprehension below is a syntax error, while the second one is correct::" "comprehension below is a syntax error, while the second one is correct::"
msgstr "" msgstr ""
"Afin d'éviter créer une ambiguïté dans la grammaire de Python, " "Afin de ne pas créer une ambiguïté dans la grammaire de Python, "
"``expression`` doit être encadrée par des parenthèses si elle produit un n-" "``expression`` doit être encadrée par des parenthèses si elle produit un n-"
"uplet. La première compréhension de liste ci-dessous n'est pas valide " "uplet. La première compréhension de liste ci-dessous n'est pas valide "
"syntaxiquement, tandis que la seconde l'est ::" "syntaxiquement, tandis que la seconde l'est ::"
#: ../Doc/howto/functional.rst:431 #: ../Doc/howto/functional.rst:431
msgid "Generators" msgid "Generators"
@ -787,16 +787,17 @@ msgid ""
"thought of as resumable functions." "thought of as resumable functions."
msgstr "" msgstr ""
"Vous connaissez sans doute le fonctionnement des appels de fonctions en " "Vous connaissez sans doute le fonctionnement des appels de fonctions en "
"Python ou en C. Lorsqu'une fonction est appelée, un espace de noms privé lui " "Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé "
"est associé pour ses variables locales. Lorsque le programme atteint une " "lui est associé pour ses variables locales. Lorsque le programme atteint une "
"instruction ``return``, les variables locales sont détruites et la valeur " "instruction ``return``, les variables locales sont détruites et la valeur "
"est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " "est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent "
"un nouvel espace de nom privé et de nouvelles variables locales. Cependant, " "un nouvel espace de nommage privé et de nouvelles variables locales. "
"que se passerait-il si les variables locales n'étaient pas détruites lors de " "Cependant, que se passerait-il si les variables locales n'étaient pas "
"la sortie d'une fonction ? Et s'il était possible de reprendre l'exécution " "détruites lors de la sortie d'une fonction ? Et s'il était possible de "
"de la fonction là où elle s'était arrêtée ? Les générateurs sont une réponse " "reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les "
"à ces questions ; vous pouvez considérer qu'il s'agit de fonctions qu'il est " "générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il "
"possible d'interrompre, puis de relancer sans perdre leur progression." "s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans "
"perdre leur progression."
#: ../Doc/howto/functional.rst:446 #: ../Doc/howto/functional.rst:446
msgid "Here's the simplest example of a generator function:" msgid "Here's the simplest example of a generator function:"
@ -809,7 +810,7 @@ msgid ""
"function specially as a result." "function specially as a result."
msgstr "" msgstr ""
"N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " "N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un "
"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé " "générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et "
"prend en compte cette particularité de la fonction." "prend en compte cette particularité de la fonction."
#: ../Doc/howto/functional.rst:456 #: ../Doc/howto/functional.rst:456
@ -830,7 +831,7 @@ msgstr ""
"différence principale entre ``yield`` et ``return`` est qu'en atteignant " "différence principale entre ``yield`` et ``return`` est qu'en atteignant "
"l'instruction ``yield``, l'état du générateur est suspendu et les variables " "l'instruction ``yield``, l'état du générateur est suspendu et les variables "
"locales sont conservées. Lors de l'appel suivant à la méthode :meth:" "locales sont conservées. Lors de l'appel suivant à la méthode :meth:"
"`~generator.__next__` du générateur, la fonction reprendra son exécution." "`~generator.__next__` du générateur, la fonction reprend son exécution."
#: ../Doc/howto/functional.rst:465 #: ../Doc/howto/functional.rst:465
msgid "Here's a sample usage of the ``generate_ints()`` generator:" msgid "Here's a sample usage of the ``generate_ints()`` generator:"
@ -851,11 +852,11 @@ msgid ""
"method. Once this happens, or the bottom of the function is reached, the " "method. Once this happens, or the bottom of the function is reached, the "
"procession of values ends and the generator cannot yield any further values." "procession of values ends and the generator cannot yield any further values."
msgstr "" msgstr ""
"Dans une fonction génératrice, l'instruction ``return value`` lève une " "Dans une fonction génératrice, une instruction ``return value`` entraine la "
"exception ``StopIteration(value)`` dans la méthode :meth:`~generator." "levée d'une exception ``StopIteration(value)`` dans la méthode :meth:"
"__next__`. Lorsque cela se produit (ou que la fin de la fonction est " "`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction "
"atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne peut " "est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne "
"plus rien produire." "peut plus rien produire."
#: ../Doc/howto/functional.rst:490 #: ../Doc/howto/functional.rst:490
msgid "" msgid ""
@ -917,10 +918,9 @@ msgstr ""
"Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " "Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une "
"fois le code du générateur exécuté pour créer un itérateur, il était " "fois le code du générateur exécuté pour créer un itérateur, il était "
"impossible d'introduire de l'information nouvelle dans la fonction mise en " "impossible d'introduire de l'information nouvelle dans la fonction mise en "
"pause. Une astuce consistait à reproduire cette fonctionnalité en autorisant " "pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le "
"le générateur à consulter des variables globales ou en lui passant des " "générateur à consulter des variables globales ou en lui passant des objets "
"objets mutables modifiés hors du générateur, mais ces approches étaient " "mutables modifiés hors du générateur, mais ces approches étaient compliquées."
"compliquées."
#: ../Doc/howto/functional.rst:531 #: ../Doc/howto/functional.rst:531
msgid "" msgid ""
@ -931,7 +931,7 @@ msgstr ""
"À partir de Python 2.5, il existe une méthode simple pour transmettre des " "À partir de Python 2.5, il existe une méthode simple pour transmettre des "
"valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " "valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une "
"expression qui renvoie une valeur sur laquelle il est possible d'opérer et " "expression qui renvoie une valeur sur laquelle il est possible d'opérer et "
"que vous pouvez assigner à une variable ::" "que vous pouvez assigner à une variable ::"
#: ../Doc/howto/functional.rst:537 #: ../Doc/howto/functional.rst:537
msgid "" msgid ""
@ -940,11 +940,12 @@ msgid ""
"above example. The parentheses aren't always necessary, but it's easier to " "above example. The parentheses aren't always necessary, but it's easier to "
"always add them instead of having to remember when they're needed." "always add them instead of having to remember when they're needed."
msgstr "" msgstr ""
"Comme dans l'exemple ci-dessus, je vous recommande de **toujours** encadrer " "Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** "
"les expressions ``yield`` par des parenthèses lorsque vous utilisez leur " "encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez "
"valeur de retour. Elles ne sont pas toujours indispensables mais mieux vaut " "leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux "
"prévenir que guérir : il est plus facile de les ajouter systématiquement que " "vaut prévenir que guérir : il est plus facile de les ajouter "
"de prendre le risque de les oublier là où elles sont requises." "systématiquement que de prendre le risque de les oublier là où elles sont "
"requises."
#: ../Doc/howto/functional.rst:542 #: ../Doc/howto/functional.rst:542
msgid "" msgid ""
@ -954,7 +955,7 @@ msgid ""
"write ``val = yield i`` but have to use parentheses when there's an " "write ``val = yield i`` but have to use parentheses when there's an "
"operation, as in ``val = (yield i) + 12``.)" "operation, as in ``val = (yield i) + 12``.)"
msgstr "" msgstr ""
"(les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " "(Les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une "
"expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " "expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de "
"l'expression la plus externe du côté droit d'une assignation. Cela signifie " "l'expression la plus externe du côté droit d'une assignation. Cela signifie "
"que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " "que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont "
@ -1030,8 +1031,8 @@ msgstr ""
"cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:" "cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:"
"`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi " "`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi "
"que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque " "que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque "
"le ramasse-miette de Python collectera le générateur, il appellera sa " "le ramasse-miette de Python collecte le générateur, il appelle sa méthode :"
"méthode :meth:`~generator.close`." "meth:`~generator.close`."
#: ../Doc/howto/functional.rst:605 #: ../Doc/howto/functional.rst:605
msgid "" msgid ""
@ -1040,7 +1041,7 @@ msgid ""
"`GeneratorExit`." "`GeneratorExit`."
msgstr "" msgstr ""
"Si vous devez exécuter du code pour faire le ménage lors d'une :exc:" "Si vous devez exécuter du code pour faire le ménage lors d'une :exc:"
"`GeneratorExit`, je vous suggère d'utiliser une structure ``try: ... " "`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... "
"finally`` plutôt que d'attraper :exc:`GeneratorExit`." "finally`` plutôt que d'attraper :exc:`GeneratorExit`."
#: ../Doc/howto/functional.rst:608 #: ../Doc/howto/functional.rst:608
@ -1131,16 +1132,16 @@ msgid ""
msgstr "" msgstr ""
":func:`enumerate(iter, start=0) <enumerate>` énumère les éléments de " ":func:`enumerate(iter, start=0) <enumerate>` énumère les éléments de "
"l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " "l'itérable en renvoyant des paires contenant le nombre d'éléments déjà "
"listés (depuis le *début*) et l'élément en cours. ::" "listés (depuis le *début*) et l'élément en cours ::"
#: ../Doc/howto/functional.rst:667 #: ../Doc/howto/functional.rst:667
msgid "" msgid ""
":func:`enumerate` is often used when looping through a list and recording " ":func:`enumerate` is often used when looping through a list and recording "
"the indexes at which certain conditions are met::" "the indexes at which certain conditions are met::"
msgstr "" msgstr ""
":func:`enumerate` est souvent utilisé lorsque l'on souhaite boucler sur une " ":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une "
"liste tout en listant les indices auxquels une certaine condition est " "liste tout en listant les indices pour lesquels une certaine condition est "
"vérifiée ::" "vérifiée ::"
#: ../Doc/howto/functional.rst:675 #: ../Doc/howto/functional.rst:675
msgid "" msgid ""
@ -1158,7 +1159,7 @@ msgstr ""
msgid "" msgid ""
"(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)"
msgstr "" msgstr ""
"(pour plus de détails sur les algorithmes de tri, se référer à :ref:" "(Pour plus de détails sur les algorithmes de tri, se référer à :ref:"
"`sortinghowto`.)" "`sortinghowto`.)"
#: ../Doc/howto/functional.rst:693 #: ../Doc/howto/functional.rst:693
@ -1180,7 +1181,7 @@ msgid ""
"and returns them in a tuple::" "and returns them in a tuple::"
msgstr "" msgstr ""
":func:`zip(iterA, iterB, ...) <zip>` rassemble un élément de chaque itérable " ":func:`zip(iterA, iterB, ...) <zip>` rassemble un élément de chaque itérable "
"dans un n-uplet ::" "dans un n-uplet ::"
#: ../Doc/howto/functional.rst:718 #: ../Doc/howto/functional.rst:718
msgid "" msgid ""
@ -1190,9 +1191,9 @@ msgid ""
"evaluation <https://en.wikipedia.org/wiki/Lazy_evaluation>`__.)" "evaluation <https://en.wikipedia.org/wiki/Lazy_evaluation>`__.)"
msgstr "" msgstr ""
"Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " "Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs "
"d'entrée avant de renvoyer sa valeur ; en réalité les tuples sont construits " "d'entrée avant de renvoyer sa valeur ; en réalité les n-uplets sont "
"et renvoyés au fur et à mesure (il s'agit techniquement parlant d'un " "construits et renvoyés au fur et à mesure (il s'agit techniquement parlant "
"comportement d'`évaluation paresseuse <https://fr.wikipedia.org/wiki/" "d'un comportement d'`évaluation paresseuse <https://fr.wikipedia.org/wiki/"
"%C3%89valuation_paresseuse>`__)." "%C3%89valuation_paresseuse>`__)."
#: ../Doc/howto/functional.rst:723 #: ../Doc/howto/functional.rst:723
@ -1202,8 +1203,8 @@ msgid ""
"will be the same length as the shortest iterable. ::" "will be the same length as the shortest iterable. ::"
msgstr "" msgstr ""
"Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " "Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la "
"longueur des itérables diffère, le flux résultant aura la même longueur que " "longueur des itérables diffère, le flux résultant a la même longueur que le "
"le plus court des itérables. ::" "plus court des itérables. ::"
#: ../Doc/howto/functional.rst:730 #: ../Doc/howto/functional.rst:730
msgid "" msgid ""
@ -1269,7 +1270,7 @@ msgid ""
msgstr "" msgstr ""
":func:`itertools.count(start, step) <itertools.count>` renvoie un flux " ":func:`itertools.count(start, step) <itertools.count>` renvoie un flux "
"infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " "infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de "
"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" "départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::"
#: ../Doc/howto/functional.rst:763 #: ../Doc/howto/functional.rst:763
msgid "" msgid ""
@ -1317,10 +1318,10 @@ msgstr ""
":func:`itertools.islice(iter, [start], stop, [step]) <itertools.islice>` " ":func:`itertools.islice(iter, [start], stop, [step]) <itertools.islice>` "
"renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " "renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, "
"il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " "il renvoie les *stop* premiers éléments. En spécifiant un indice de début, "
"vous récupérez *stop - start* éléments et, en spécifiant une valeur pour " "vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une "
"*step*, tous les éléments multiples du pas seront sautés. Cependant vous ne " "valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives "
"pouvez pas utiliser de valeurs négatives pour *start*, *stop* ou *step* " "pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de "
"(contrairement aux listes et chaînes de caractères de Python). ::" "caractères de Python). ::"
#: ../Doc/howto/functional.rst:800 #: ../Doc/howto/functional.rst:800
msgid "" msgid ""
@ -1363,8 +1364,8 @@ msgid ""
"as the arguments::" "as the arguments::"
msgstr "" msgstr ""
":func:`itertools.starmap(func, iter) <itertools.starmap>` suppose que " ":func:`itertools.starmap(func, iter) <itertools.starmap>` suppose que "
"l'itérable renvoie une séquence de tuples et appelle *func* en utilisant " "l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant "
"chaque n-uplet comme arguments ::" "tous les n-uplets comme arguments ::"
#: ../Doc/howto/functional.rst:839 #: ../Doc/howto/functional.rst:839
msgid "Selecting elements" msgid "Selecting elements"
@ -1375,9 +1376,8 @@ msgid ""
"Another group of functions chooses a subset of an iterator's elements based " "Another group of functions chooses a subset of an iterator's elements based "
"on a predicate." "on a predicate."
msgstr "" msgstr ""
"Une autre catégorie de fonctions sont les fonctions permettant de " "Une autre catégorie de fonctions est celle permettant de sélectionner un "
"sélectionner un sous-ensemble des éléments de l'itérateur selon un prédicat " "sous-ensemble des éléments de l'itérateur selon un prédicat donné."
"donné."
#: ../Doc/howto/functional.rst:844 #: ../Doc/howto/functional.rst:844
msgid "" msgid ""
@ -1387,7 +1387,7 @@ msgid ""
msgstr "" msgstr ""
":func:`itertools.filterfalse(predicate, iter) <itertools.filterfalse>` est " ":func:`itertools.filterfalse(predicate, iter) <itertools.filterfalse>` est "
"l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " "l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le "
"prédicat est faux ::" "prédicat est faux ::"
#: ../Doc/howto/functional.rst:851 #: ../Doc/howto/functional.rst:851
msgid "" msgid ""
@ -1418,8 +1418,8 @@ msgid ""
msgstr "" msgstr ""
":func:`itertools.compress(data, selectors) <itertools.compress>` prend un " ":func:`itertools.compress(data, selectors) <itertools.compress>` prend un "
"itérateur *data* et un itérateur *selectors* et renvoie les éléments de " "itérateur *data* et un itérateur *selectors* et renvoie les éléments de "
"*data* pour lesquels l'élément correspondant de *selectors* évalue à vrai. " "*data* pour lesquels l'élément correspondant de *selectors* est évalué à "
"L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" "vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::"
#: ../Doc/howto/functional.rst:883 #: ../Doc/howto/functional.rst:883
msgid "Combinatoric functions" msgid "Combinatoric functions"
@ -1448,7 +1448,7 @@ msgstr ""
"se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools." "se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools."
"permutations(iterable, r=None) <itertools.permutations>` supprime la " "permutations(iterable, r=None) <itertools.permutations>` supprime la "
"contrainte sur l'ordre et renvoie tous les arrangements possibles de " "contrainte sur l'ordre et renvoie tous les arrangements possibles de "
"longueur *r* ::" "longueur *r* ::"
#: ../Doc/howto/functional.rst:919 #: ../Doc/howto/functional.rst:919
msgid "" msgid ""
@ -1466,7 +1466,7 @@ msgid ""
msgstr "" msgstr ""
"Notez que ces fonctions génèrent toutes les combinaisons possibles en se " "Notez que ces fonctions génèrent toutes les combinaisons possibles en se "
"basant sur la position des éléments et ne requièrent pas que les éléments de " "basant sur la position des éléments et ne requièrent pas que les éléments de "
"*iterable* soient uniques ::" "*iterable* soient uniques ::"
#: ../Doc/howto/functional.rst:929 #: ../Doc/howto/functional.rst:929
msgid "" msgid ""
@ -1505,8 +1505,9 @@ msgstr ""
"La dernière fonction que allons voir, :func:`itertools.groupby(iter, " "La dernière fonction que allons voir, :func:`itertools.groupby(iter, "
"key_func=None) <itertools.groupby>` est la plus complexe. ``key_func(elem)`` " "key_func=None) <itertools.groupby>` est la plus complexe. ``key_func(elem)`` "
"est une fonction qui produit une clé pour chaque élément renvoyé par " "est une fonction qui produit une clé pour chaque élément renvoyé par "
"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci sera " "l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est "
"l'identité par défaut (c'est-à-dire que la clé d'un élément sera lui-même)." "l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément "
"lui-même)."
#: ../Doc/howto/functional.rst:954 #: ../Doc/howto/functional.rst:954
msgid "" msgid ""
@ -1515,8 +1516,8 @@ msgid ""
"tuples containing a key value and an iterator for the elements with that key." "tuples containing a key value and an iterator for the elements with that key."
msgstr "" msgstr ""
":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " ":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable "
"sous-jacent qui ont la même clé et renvoie un flux de pairs contenant la clé " "sous-jacent qui ont la même clé et renvoie un flux de paires contenant la "
"et un itérateur produisant la liste des éléments pour cette clé." "clé et un itérateur produisant la liste des éléments pour cette clé."
#: ../Doc/howto/functional.rst:982 #: ../Doc/howto/functional.rst:982
msgid "" msgid ""
@ -1527,9 +1528,11 @@ msgid ""
msgstr "" msgstr ""
":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " ":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable "
"sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " "sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les "
"itérateurs générés utilisent également l'itérable sous-jacent. Vous devrez " "itérateurs générés utilisent également l'itérable sous-jacent. Vous devez "
"donc consommer l'intégralité des résultats du premier itérateur renvoyé " "donc consommer l'intégralité des résultats du premier itérateur renvoyé "
"avant de récupérer le deuxième itérateur et la clé correspondante." "(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième "
"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il "
"est associé."
#: ../Doc/howto/functional.rst:989 #: ../Doc/howto/functional.rst:989
msgid "The functools module" msgid "The functools module"
@ -1557,12 +1560,11 @@ msgid ""
"\"partial function application\"." "\"partial function application\"."
msgstr "" msgstr ""
"En programmant dans un style fonctionnel, il est courant de vouloir " "En programmant dans un style fonctionnel, il est courant de vouloir "
"construire des variantes de fonctions existantes dont certaines des " "construire des variantes de fonctions existantes dont certains paramètres "
"paramètres sont préremplis. Par exemple, considérons une fonction Python " "sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, "
"``f(a, b, c)``. Il peut arriver de vouloir une nouvelle fonction ``g(b, c)`` " "c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, "
"équivalente à ``f(1, b, c)``, c'est-à-dire fixer le premier paramètre de " "b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction "
"``f()``. La fonction ``g()`` est une appelée « application partielle » de " "``g()`` est une appelée « application partielle » de ``f()``."
"``f()``."
#: ../Doc/howto/functional.rst:1002 #: ../Doc/howto/functional.rst:1002
msgid "" msgid ""
@ -1623,7 +1625,7 @@ msgid ""
msgstr "" msgstr ""
"Cependant, il peut être plus lisible dans de nombreuses situations " "Cependant, il peut être plus lisible dans de nombreuses situations "
"impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" "impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:"
"`for` ::" "`for` ::"
#: ../Doc/howto/functional.rst:1067 #: ../Doc/howto/functional.rst:1067
msgid "" msgid ""
@ -1636,7 +1638,7 @@ msgstr ""
"accumulate>` est une fonction similaire qui réalise le même calcul mais, " "accumulate>` est une fonction similaire qui réalise le même calcul mais, "
"plutôt que de renvoyer seulement le résultat final, :func:`accumulate` " "plutôt que de renvoyer seulement le résultat final, :func:`accumulate` "
"renvoie un itérateur qui génère la séquence de tous les résultats " "renvoie un itérateur qui génère la séquence de tous les résultats "
"intermédiaires ::" "intermédiaires ::"
#: ../Doc/howto/functional.rst:1080 #: ../Doc/howto/functional.rst:1080
msgid "The operator module" msgid "The operator module"
@ -1663,27 +1665,27 @@ msgid ""
"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, "
"``abs()``, ..." "``abs()``, ..."
msgstr "" msgstr ""
"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " "Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, "
"``floordiv()``, ``abs()``, ..." "``floordiv()``, ``abs()``, ..."
#: ../Doc/howto/functional.rst:1090 #: ../Doc/howto/functional.rst:1090
msgid "Logical operations: ``not_()``, ``truth()``." msgid "Logical operations: ``not_()``, ``truth()``."
msgstr "Les opérations logiques : ``not_()``, ``truth()``." msgstr "Les opérations logiques : ``not_()``, ``truth()``."
#: ../Doc/howto/functional.rst:1091 #: ../Doc/howto/functional.rst:1091
msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``."
msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``."
#: ../Doc/howto/functional.rst:1092 #: ../Doc/howto/functional.rst:1092
msgid "" msgid ""
"Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``."
msgstr "" msgstr ""
"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " "Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et "
"``ge()``." "``ge()``."
#: ../Doc/howto/functional.rst:1093 #: ../Doc/howto/functional.rst:1093
msgid "Object identity: ``is_()``, ``is_not()``." msgid "Object identity: ``is_()``, ``is_not()``."
msgstr "L'identification des objets : ``is_()``, ``is_not()``." msgstr "L'identification des objets : ``is_()``, ``is_not()``."
#: ../Doc/howto/functional.rst:1095 #: ../Doc/howto/functional.rst:1095
msgid "Consult the operator module's documentation for a complete list." msgid "Consult the operator module's documentation for a complete list."
@ -1710,7 +1712,7 @@ msgid ""
"need to define a new function at all::" "need to define a new function at all::"
msgstr "" msgstr ""
"S'il existe une fonction native Python ou une fonction d'un module qui " "S'il existe une fonction native Python ou une fonction d'un module qui "
"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" "convient, vous n'avez pas besoin de définir de nouvelle fonction ::"
#: ../Doc/howto/functional.rst:1110 #: ../Doc/howto/functional.rst:1110
msgid "" msgid ""
@ -1724,7 +1726,7 @@ msgstr ""
"façon d'écrire des fonctions courtes consiste à utiliser les expressions :" "façon d'écrire des fonctions courtes consiste à utiliser les expressions :"
"keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression " "keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression "
"combinant ces derniers afin de créer une fonction anonyme qui renvoie la " "combinant ces derniers afin de créer une fonction anonyme qui renvoie la "
"valeur de cette expression ::" "valeur de cette expression ::"
#: ../Doc/howto/functional.rst:1119 #: ../Doc/howto/functional.rst:1119
msgid "" msgid ""
@ -1732,15 +1734,15 @@ msgid ""
"the usual way::" "the usual way::"
msgstr "" msgstr ""
"Une autre façon de faire est de simplement utiliser l'instruction ``def`` " "Une autre façon de faire est de simplement utiliser l'instruction ``def`` "
"afin de définir une fonction de la manière habituelle ::" "afin de définir une fonction de la manière habituelle ::"
#: ../Doc/howto/functional.rst:1128 #: ../Doc/howto/functional.rst:1128
msgid "" msgid ""
"Which alternative is preferable? That's a style question; my usual course " "Which alternative is preferable? That's a style question; my usual course "
"is to avoid using ``lambda``." "is to avoid using ``lambda``."
msgstr "" msgstr ""
"La méthode à préférer est une question de style, en général je préfère " "La méthode à préférer est une question de style, en général l'auteur évite "
"éviter l'utilisation de ``lambda``." "l'utilisation de ``lambda``."
#: ../Doc/howto/functional.rst:1131 #: ../Doc/howto/functional.rst:1131
msgid "" msgid ""
@ -1751,13 +1753,13 @@ msgid ""
"``lambda`` statement, you'll end up with an overly complicated expression " "``lambda`` statement, you'll end up with an overly complicated expression "
"that's hard to read. Quick, what's the following code doing? ::" "that's hard to read. Quick, what's the following code doing? ::"
msgstr "" msgstr ""
"Une des raisons pour cela est que ``lambda`` ne peut pas définir toutes les " "Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. "
"fonctions. Le résultat doit pouvoir se calculer en une seule expression, ce " "Le résultat doit pouvoir se calculer en une seule expression, ce qui "
"qui signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " "signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... "
"else`` à plusieurs branches ou des structures ``try ... except``. Si vous " "else`` à plusieurs branches ou des structures ``try ... except``. Si vous "
"essayez de trop en faire dans une expression ``lambda``, vous finirez avec " "essayez de trop en faire dans une expression ``lambda``, vous finirez avec "
"une expression illisible. Par exemple, pouvez-vous dire du premier coup " "une expression illisible. Par exemple, pouvez-vous dire du premier coup "
"dœil ce que fait le code ci-dessous ? ::" "dœil ce que fait le code ci-dessous ? ::"
#: ../Doc/howto/functional.rst:1141 #: ../Doc/howto/functional.rst:1141
msgid "" msgid ""
@ -1767,17 +1769,18 @@ msgid ""
msgstr "" msgstr ""
"Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " "Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps "
"de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " "de démêler l'expression pour y voir plus clair. Une clause ``def`` concise "
"améliore la situation ::" "améliore la situation ::"
#: ../Doc/howto/functional.rst:1151 #: ../Doc/howto/functional.rst:1151
msgid "But it would be best of all if I had simply used a ``for`` loop::" msgid "But it would be best of all if I had simply used a ``for`` loop::"
msgstr "" msgstr ""
"Toutefois l'idéal serait de simplement se contenter d'une boucle ``for`` ::" "Toutefois l'idéal aurait été de simplement se contenter d'une boucle "
"``for`` ::"
#: ../Doc/howto/functional.rst:1157 #: ../Doc/howto/functional.rst:1157
msgid "Or the :func:`sum` built-in and a generator expression::" msgid "Or the :func:`sum` built-in and a generator expression::"
msgstr "" msgstr ""
"Ou de la fonction native :func:`sum` et d'une expression génératrice ::" "ou de la fonction native :func:`sum` et d'une expression génératrice ::"
#: ../Doc/howto/functional.rst:1161 #: ../Doc/howto/functional.rst:1161
msgid "" msgid ""
@ -1931,8 +1934,8 @@ msgstr ""
msgid "" msgid ""
"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying."
msgstr "" msgstr ""
"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour de la concept de " "https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de "
"la curryfication (création d'applications partielles)." "curryfication (création d'applications partielles)."
#: ../Doc/howto/functional.rst:1223 #: ../Doc/howto/functional.rst:1223
msgid "Python-specific" msgid "Python-specific"