forked from AFPy/python-docs-fr
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:
parent
3f9de4e8ab
commit
7a2ab2d44e
|
@ -6,14 +6,14 @@ msgstr ""
|
|||
"Project-Id-Version: Python 3.6\n"
|
||||
"Report-Msgid-Bugs-To: \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: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Last-Translator: \n"
|
||||
"X-Generator: Poedit 2.2.1\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
|
||||
#: ../Doc/howto/functional.rst:3
|
||||
msgid "Functional Programming HOWTO"
|
||||
|
@ -145,7 +145,7 @@ msgstr ""
|
|||
"de privilégier une approche par rapport à une autre. Cela complexifie "
|
||||
"l'écriture de programmes appliquant un paradigme différent de celui "
|
||||
"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, "
|
||||
"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties "
|
||||
"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 "
|
||||
"certain nombre de fonctions avec des entrées et des sorties variables. "
|
||||
"Certaines de ces fonctions sont inévitablement spécifiques à une application "
|
||||
"en particulier, mais d'autres peuvent être s'appliquer à de nombreux cas "
|
||||
"d'usage. Par exemple, une fonction qui liste l'ensemble des fichiers XML "
|
||||
"d'un répertoire à partir du chemin de celui-ci ou une fonction qui renvoie "
|
||||
"le contenu d'un fichier à partir de son nom peuvent être utiles dans de "
|
||||
"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. "
|
||||
"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un "
|
||||
"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le "
|
||||
"contenu d'un fichier à partir de son nom peuvent être utiles dans de "
|
||||
"nombreuses situations."
|
||||
|
||||
#: ../Doc/howto/functional.rst:171
|
||||
|
@ -485,7 +485,7 @@ msgstr ""
|
|||
"Python s'attend à travailler sur des objets itérables dans divers contextes "
|
||||
"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:"
|
||||
"`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
|
||||
msgid ""
|
||||
|
@ -515,13 +515,13 @@ msgid ""
|
|||
"stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either."
|
||||
msgstr ""
|
||||
"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 "
|
||||
"opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les itérateurs : "
|
||||
"``X in iterator`` est vrai si X a été trouvé dans le flux renvoyé par "
|
||||
"l'itérateur. Vous rencontrerez bien sûr des problèmes si l'itérateur est "
|
||||
"infini : :func:`max`, :func:`min` ne termineront jamais et, si l'élément X "
|
||||
"n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``\"not in\"`` non "
|
||||
"plus."
|
||||
"un itérateur en argument et en renvoie le plus grand ou le plus petit "
|
||||
"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les "
|
||||
"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux "
|
||||
"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si "
|
||||
"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, "
|
||||
"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``"
|
||||
"\"not in\"`` non plus."
|
||||
|
||||
#: ../Doc/howto/functional.rst:255
|
||||
msgid ""
|
||||
|
@ -562,7 +562,7 @@ msgid ""
|
|||
"the dictionary's keys::"
|
||||
msgstr ""
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -605,7 +605,7 @@ msgstr ""
|
|||
"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 "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -613,7 +613,7 @@ msgid ""
|
|||
"set's elements::"
|
||||
msgstr ""
|
||||
"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
|
||||
msgid "Generator expressions and list comprehensions"
|
||||
|
@ -641,18 +641,18 @@ msgid ""
|
|||
"functional programming language Haskell (https://www.haskell.org/). You can "
|
||||
"strip all the whitespace from a stream of strings with the following code::"
|
||||
msgstr ""
|
||||
"Les compréhensions de listes et les expressions génératrices sont une façon "
|
||||
"concise d'exprimer de telles opérations, inspirées du langage de "
|
||||
"Les compréhensions de listes et les expressions génératrices sont des façons "
|
||||
"concises d'exprimer de telles opérations, inspirées du langage de "
|
||||
"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez "
|
||||
"retirer tous les caractères blancs d'un flux de chaînes de caractères à "
|
||||
"l'aide du code suivant ::"
|
||||
"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes "
|
||||
"de caractères à l'aide du code suivant ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:347
|
||||
msgid ""
|
||||
"You can select only certain elements by adding an ``\"if\"`` condition::"
|
||||
msgstr ""
|
||||
"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition "
|
||||
"``\"if\"`` ::"
|
||||
"« ``if`` » ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:352
|
||||
msgid ""
|
||||
|
@ -664,7 +664,7 @@ msgid ""
|
|||
"infinite stream or a very large amount of data. Generator expressions are "
|
||||
"preferable in these situations."
|
||||
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 "
|
||||
"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 "
|
||||
|
@ -678,17 +678,17 @@ msgid ""
|
|||
"comprehensions are surrounded by square brackets (\"[]\"). Generator "
|
||||
"expressions have the form::"
|
||||
msgstr ""
|
||||
"Les expressions génératrices sont écrites entre parenthèses (\"()\") et les "
|
||||
"compréhensions de listes entre crochets (\"[]\"). Les expressions "
|
||||
"génératrices sont de la forme ::"
|
||||
"Les expressions génératrices sont écrites entre parenthèses (« () ») et les "
|
||||
"compréhensions de listes entre crochets (« [] »). Les expressions "
|
||||
"génératrices sont de la forme ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:372
|
||||
msgid ""
|
||||
"Again, for a list comprehension only the outside brackets are different "
|
||||
"(square brackets instead of parentheses)."
|
||||
msgstr ""
|
||||
"La compréhension de liste équivalente s'écrit de la même à l'exception de "
|
||||
"l'utilisation des crochets à la place des parenthèses."
|
||||
"La compréhension de liste équivalente s'écrit de la même manière, utilisez "
|
||||
"juste des crochets à la place des parenthèses."
|
||||
|
||||
#: ../Doc/howto/functional.rst:375
|
||||
msgid ""
|
||||
|
@ -698,7 +698,7 @@ msgid ""
|
|||
"is true."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: ../Doc/howto/functional.rst:379
|
||||
|
@ -710,7 +710,7 @@ msgstr ""
|
|||
"Les expressions génératrices doivent toujours être écrites entre "
|
||||
"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 "
|
||||
"passé à une fonction, vous pouvez écrire ::"
|
||||
"passé à une fonction, vous pouvez écrire ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:385
|
||||
msgid ""
|
||||
|
@ -733,8 +733,8 @@ msgid ""
|
|||
"To put it another way, a list comprehension or generator expression is "
|
||||
"equivalent to the following Python code::"
|
||||
msgstr ""
|
||||
"Autrement dit, la compréhension de liste ou une expression génératrice est "
|
||||
"équivalente au code Python ci-dessous ::"
|
||||
"Autrement dit, une compréhension de liste ou une expression génératrice est "
|
||||
"équivalente au code Python ci-dessous ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:408
|
||||
msgid ""
|
||||
|
@ -754,10 +754,10 @@ msgid ""
|
|||
"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::"
|
||||
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-"
|
||||
"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
|
||||
msgid "Generators"
|
||||
|
@ -787,16 +787,17 @@ msgid ""
|
|||
"thought of as resumable functions."
|
||||
msgstr ""
|
||||
"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 "
|
||||
"est associé pour ses variables locales. Lorsque le programme atteint une "
|
||||
"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé "
|
||||
"lui est associé pour ses variables locales. Lorsque le programme atteint une "
|
||||
"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 "
|
||||
"un nouvel espace de nom privé et de nouvelles variables locales. Cependant, "
|
||||
"que se passerait-il si les variables locales n'étaient pas détruites lors de "
|
||||
"la sortie d'une fonction ? Et s'il était possible de reprendre l'exécution "
|
||||
"de la fonction là où elle s'était arrêtée ? Les générateurs sont une réponse "
|
||||
"à ces questions ; vous pouvez considérer qu'il s'agit de fonctions qu'il est "
|
||||
"possible d'interrompre, puis de relancer sans perdre leur progression."
|
||||
"un nouvel espace de nommage privé et de nouvelles variables locales. "
|
||||
"Cependant, que se passerait-il si les variables locales n'étaient pas "
|
||||
"détruites lors de la sortie d'une fonction ? Et s'il était possible de "
|
||||
"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les "
|
||||
"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il "
|
||||
"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans "
|
||||
"perdre leur progression."
|
||||
|
||||
#: ../Doc/howto/functional.rst:446
|
||||
msgid "Here's the simplest example of a generator function:"
|
||||
|
@ -809,7 +810,7 @@ msgid ""
|
|||
"function specially as a result."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: ../Doc/howto/functional.rst:456
|
||||
|
@ -830,7 +831,7 @@ msgstr ""
|
|||
"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 "
|
||||
"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
|
||||
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 "
|
||||
"procession of values ends and the generator cannot yield any further values."
|
||||
msgstr ""
|
||||
"Dans une fonction génératrice, l'instruction ``return value`` lève une "
|
||||
"exception ``StopIteration(value)`` dans la méthode :meth:`~generator."
|
||||
"__next__`. Lorsque cela se produit (ou que la fin de la fonction est "
|
||||
"atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne peut "
|
||||
"plus rien produire."
|
||||
"Dans une fonction génératrice, une instruction ``return value`` entraine la "
|
||||
"levée d'une exception ``StopIteration(value)`` dans la méthode :meth:"
|
||||
"`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction "
|
||||
"est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne "
|
||||
"peut plus rien produire."
|
||||
|
||||
#: ../Doc/howto/functional.rst:490
|
||||
msgid ""
|
||||
|
@ -917,10 +918,9 @@ msgstr ""
|
|||
"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 "
|
||||
"impossible d'introduire de l'information nouvelle dans la fonction mise en "
|
||||
"pause. Une astuce consistait à reproduire cette fonctionnalité en autorisant "
|
||||
"le générateur à consulter des variables globales ou en lui passant des "
|
||||
"objets mutables modifiés hors du générateur, mais ces approches étaient "
|
||||
"compliquées."
|
||||
"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le "
|
||||
"générateur à consulter des variables globales ou en lui passant des objets "
|
||||
"mutables modifiés hors du générateur, mais ces approches étaient compliquées."
|
||||
|
||||
#: ../Doc/howto/functional.rst:531
|
||||
msgid ""
|
||||
|
@ -931,7 +931,7 @@ msgstr ""
|
|||
"À 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 "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -940,11 +940,12 @@ msgid ""
|
|||
"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."
|
||||
msgstr ""
|
||||
"Comme dans l'exemple ci-dessus, je vous recommande de **toujours** encadrer "
|
||||
"les expressions ``yield`` par des parenthèses lorsque vous utilisez leur "
|
||||
"valeur de retour. Elles ne sont pas toujours indispensables mais mieux vaut "
|
||||
"prévenir que guérir : il est plus facile de les ajouter systématiquement que "
|
||||
"de prendre le risque de les oublier là où elles sont requises."
|
||||
"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** "
|
||||
"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez "
|
||||
"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux "
|
||||
"vaut prévenir que guérir : il est plus facile de les ajouter "
|
||||
"systématiquement que de prendre le risque de les oublier là où elles sont "
|
||||
"requises."
|
||||
|
||||
#: ../Doc/howto/functional.rst:542
|
||||
msgid ""
|
||||
|
@ -954,7 +955,7 @@ msgid ""
|
|||
"write ``val = yield i`` but have to use parentheses when there's an "
|
||||
"operation, as in ``val = (yield i) + 12``.)"
|
||||
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 "
|
||||
"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 "
|
||||
|
@ -1030,8 +1031,8 @@ msgstr ""
|
|||
"cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:"
|
||||
"`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 "
|
||||
"le ramasse-miette de Python collectera le générateur, il appellera sa "
|
||||
"méthode :meth:`~generator.close`."
|
||||
"le ramasse-miette de Python collecte le générateur, il appelle sa méthode :"
|
||||
"meth:`~generator.close`."
|
||||
|
||||
#: ../Doc/howto/functional.rst:605
|
||||
msgid ""
|
||||
|
@ -1040,7 +1041,7 @@ msgid ""
|
|||
"`GeneratorExit`."
|
||||
msgstr ""
|
||||
"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`."
|
||||
|
||||
#: ../Doc/howto/functional.rst:608
|
||||
|
@ -1131,16 +1132,16 @@ msgid ""
|
|||
msgstr ""
|
||||
":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à "
|
||||
"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
|
||||
msgid ""
|
||||
":func:`enumerate` is often used when looping through a list and recording "
|
||||
"the indexes at which certain conditions are met::"
|
||||
msgstr ""
|
||||
":func:`enumerate` est souvent utilisé lorsque l'on souhaite boucler sur une "
|
||||
"liste tout en listant les indices auxquels une certaine condition est "
|
||||
"vérifiée ::"
|
||||
":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une "
|
||||
"liste tout en listant les indices pour lesquels une certaine condition est "
|
||||
"vérifiée ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:675
|
||||
msgid ""
|
||||
|
@ -1158,7 +1159,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)"
|
||||
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`.)"
|
||||
|
||||
#: ../Doc/howto/functional.rst:693
|
||||
|
@ -1180,7 +1181,7 @@ msgid ""
|
|||
"and returns them in a tuple::"
|
||||
msgstr ""
|
||||
":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
|
||||
msgid ""
|
||||
|
@ -1190,9 +1191,9 @@ msgid ""
|
|||
"evaluation <https://en.wikipedia.org/wiki/Lazy_evaluation>`__.)"
|
||||
msgstr ""
|
||||
"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 "
|
||||
"et renvoyés au fur et à mesure (il s'agit techniquement parlant d'un "
|
||||
"comportement d'`évaluation paresseuse <https://fr.wikipedia.org/wiki/"
|
||||
"d'entrée avant de renvoyer sa valeur ; en réalité les n-uplets sont "
|
||||
"construits et renvoyés au fur et à mesure (il s'agit techniquement parlant "
|
||||
"d'un comportement d'`évaluation paresseuse <https://fr.wikipedia.org/wiki/"
|
||||
"%C3%89valuation_paresseuse>`__)."
|
||||
|
||||
#: ../Doc/howto/functional.rst:723
|
||||
|
@ -1202,8 +1203,8 @@ msgid ""
|
|||
"will be the same length as the shortest iterable. ::"
|
||||
msgstr ""
|
||||
"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 "
|
||||
"le plus court des itérables. ::"
|
||||
"longueur des itérables diffère, le flux résultant a la même longueur que le "
|
||||
"plus court des itérables. ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:730
|
||||
msgid ""
|
||||
|
@ -1269,7 +1270,7 @@ msgid ""
|
|||
msgstr ""
|
||||
":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 "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -1317,10 +1318,10 @@ msgstr ""
|
|||
":func:`itertools.islice(iter, [start], stop, [step]) <itertools.islice>` "
|
||||
"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, "
|
||||
"vous récupérez *stop - start* éléments et, en spécifiant une valeur pour "
|
||||
"*step*, tous les éléments multiples du pas seront sautés. Cependant vous ne "
|
||||
"pouvez pas utiliser de valeurs négatives pour *start*, *stop* ou *step* "
|
||||
"(contrairement aux listes et chaînes de caractères de Python). ::"
|
||||
"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une "
|
||||
"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives "
|
||||
"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de "
|
||||
"caractères de Python). ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:800
|
||||
msgid ""
|
||||
|
@ -1363,8 +1364,8 @@ msgid ""
|
|||
"as the arguments::"
|
||||
msgstr ""
|
||||
":func:`itertools.starmap(func, iter) <itertools.starmap>` suppose que "
|
||||
"l'itérable renvoie une séquence de tuples et appelle *func* en utilisant "
|
||||
"chaque n-uplet comme arguments ::"
|
||||
"l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant "
|
||||
"tous les n-uplets comme arguments ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:839
|
||||
msgid "Selecting elements"
|
||||
|
@ -1375,9 +1376,8 @@ msgid ""
|
|||
"Another group of functions chooses a subset of an iterator's elements based "
|
||||
"on a predicate."
|
||||
msgstr ""
|
||||
"Une autre catégorie de fonctions sont les fonctions permettant de "
|
||||
"sélectionner un sous-ensemble des éléments de l'itérateur selon un prédicat "
|
||||
"donné."
|
||||
"Une autre catégorie de fonctions est celle permettant de sélectionner un "
|
||||
"sous-ensemble des éléments de l'itérateur selon un prédicat donné."
|
||||
|
||||
#: ../Doc/howto/functional.rst:844
|
||||
msgid ""
|
||||
|
@ -1387,7 +1387,7 @@ msgid ""
|
|||
msgstr ""
|
||||
":func:`itertools.filterfalse(predicate, iter) <itertools.filterfalse>` est "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -1418,8 +1418,8 @@ msgid ""
|
|||
msgstr ""
|
||||
":func:`itertools.compress(data, selectors) <itertools.compress>` prend un "
|
||||
"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. "
|
||||
"L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::"
|
||||
"*data* pour lesquels l'élément correspondant de *selectors* est évalué à "
|
||||
"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:883
|
||||
msgid "Combinatoric functions"
|
||||
|
@ -1448,7 +1448,7 @@ msgstr ""
|
|||
"se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools."
|
||||
"permutations(iterable, r=None) <itertools.permutations>` supprime la "
|
||||
"contrainte sur l'ordre et renvoie tous les arrangements possibles de "
|
||||
"longueur *r* ::"
|
||||
"longueur *r* ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:919
|
||||
msgid ""
|
||||
|
@ -1466,7 +1466,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"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 "
|
||||
"*iterable* soient uniques ::"
|
||||
"*iterable* soient uniques ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:929
|
||||
msgid ""
|
||||
|
@ -1505,8 +1505,9 @@ msgstr ""
|
|||
"La dernière fonction que allons voir, :func:`itertools.groupby(iter, "
|
||||
"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 "
|
||||
"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci sera "
|
||||
"l'identité par défaut (c'est-à-dire que la clé d'un élément sera lui-même)."
|
||||
"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 est l'élément "
|
||||
"lui-même)."
|
||||
|
||||
#: ../Doc/howto/functional.rst:954
|
||||
msgid ""
|
||||
|
@ -1515,8 +1516,8 @@ msgid ""
|
|||
"tuples containing a key value and an iterator for the elements with that key."
|
||||
msgstr ""
|
||||
":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é "
|
||||
"et un itérateur produisant la liste des éléments pour cette clé."
|
||||
"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la "
|
||||
"clé et un itérateur produisant la liste des éléments pour cette clé."
|
||||
|
||||
#: ../Doc/howto/functional.rst:982
|
||||
msgid ""
|
||||
|
@ -1527,9 +1528,11 @@ msgid ""
|
|||
msgstr ""
|
||||
":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 "
|
||||
"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é "
|
||||
"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
|
||||
msgid "The functools module"
|
||||
|
@ -1557,12 +1560,11 @@ msgid ""
|
|||
"\"partial function application\"."
|
||||
msgstr ""
|
||||
"En programmant dans un style fonctionnel, il est courant de vouloir "
|
||||
"construire des variantes de fonctions existantes dont certaines des "
|
||||
"paramètres sont préremplis. Par exemple, considérons une fonction Python "
|
||||
"``f(a, b, c)``. Il peut arriver de vouloir une nouvelle fonction ``g(b, c)`` "
|
||||
"équivalente à ``f(1, b, c)``, c'est-à-dire fixer le premier paramètre de "
|
||||
"``f()``. La fonction ``g()`` est une appelée « application partielle » de "
|
||||
"``f()``."
|
||||
"construire des variantes de fonctions existantes dont certains paramètres "
|
||||
"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, "
|
||||
"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, "
|
||||
"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction "
|
||||
"``g()`` est une appelée « application partielle » de ``f()``."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1002
|
||||
msgid ""
|
||||
|
@ -1623,7 +1625,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Cependant, il peut être plus lisible dans de nombreuses situations "
|
||||
"impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:"
|
||||
"`for` ::"
|
||||
"`for` ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:1067
|
||||
msgid ""
|
||||
|
@ -1636,7 +1638,7 @@ msgstr ""
|
|||
"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` "
|
||||
"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
|
||||
msgid "The operator module"
|
||||
|
@ -1663,27 +1665,27 @@ msgid ""
|
|||
"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, "
|
||||
"``abs()``, ..."
|
||||
msgstr ""
|
||||
"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, "
|
||||
"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, "
|
||||
"``floordiv()``, ``abs()``, ..."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1090
|
||||
msgid "Logical operations: ``not_()``, ``truth()``."
|
||||
msgstr "Les opérations logiques : ``not_()``, ``truth()``."
|
||||
msgstr "Les opérations logiques : ``not_()``, ``truth()``."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1091
|
||||
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
|
||||
msgid ""
|
||||
"Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``."
|
||||
msgstr ""
|
||||
"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et "
|
||||
"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et "
|
||||
"``ge()``."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1093
|
||||
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
|
||||
msgid "Consult the operator module's documentation for a complete list."
|
||||
|
@ -1710,7 +1712,7 @@ msgid ""
|
|||
"need to define a new function at all::"
|
||||
msgstr ""
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -1724,7 +1726,7 @@ msgstr ""
|
|||
"façon d'écrire des fonctions courtes consiste à utiliser les expressions :"
|
||||
"keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -1732,15 +1734,15 @@ msgid ""
|
|||
"the usual way::"
|
||||
msgstr ""
|
||||
"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
|
||||
msgid ""
|
||||
"Which alternative is preferable? That's a style question; my usual course "
|
||||
"is to avoid using ``lambda``."
|
||||
msgstr ""
|
||||
"La méthode à préférer est une question de style, en général je préfère "
|
||||
"éviter l'utilisation de ``lambda``."
|
||||
"La méthode à préférer est une question de style, en général l'auteur évite "
|
||||
"l'utilisation de ``lambda``."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1131
|
||||
msgid ""
|
||||
|
@ -1751,13 +1753,13 @@ msgid ""
|
|||
"``lambda`` statement, you'll end up with an overly complicated expression "
|
||||
"that's hard to read. Quick, what's the following code doing? ::"
|
||||
msgstr ""
|
||||
"Une des raisons pour cela est que ``lambda`` ne peut pas définir toutes les "
|
||||
"fonctions. Le résultat doit pouvoir se calculer en une seule expression, ce "
|
||||
"qui signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... "
|
||||
"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. "
|
||||
"Le résultat doit pouvoir se calculer en une seule expression, ce qui "
|
||||
"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... "
|
||||
"else`` à plusieurs branches ou des structures ``try ... except``. Si vous "
|
||||
"essayez de trop en faire dans une expression ``lambda``, vous finirez avec "
|
||||
"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
|
||||
msgid ""
|
||||
|
@ -1767,17 +1769,18 @@ msgid ""
|
|||
msgstr ""
|
||||
"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 "
|
||||
"améliore la situation ::"
|
||||
"améliore la situation ::"
|
||||
|
||||
#: ../Doc/howto/functional.rst:1151
|
||||
msgid "But it would be best of all if I had simply used a ``for`` loop::"
|
||||
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
|
||||
msgid "Or the :func:`sum` built-in and a generator expression::"
|
||||
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
|
||||
msgid ""
|
||||
|
@ -1931,8 +1934,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying."
|
||||
msgstr ""
|
||||
"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour de la concept de "
|
||||
"la curryfication (création d'applications partielles)."
|
||||
"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de "
|
||||
"curryfication (création d'applications partielles)."
|
||||
|
||||
#: ../Doc/howto/functional.rst:1223
|
||||
msgid "Python-specific"
|
||||
|
|
Loading…
Reference in New Issue
Block a user