1
0
Fork 0

Revue de tutorial (#1110)

* Revue avec padpo

* Apply suggestions from code review

Co-Authored-By: Antoine <43954001+awecx@users.noreply.github.com>

Co-authored-by: Antoine <43954001+awecx@users.noreply.github.com>
This commit is contained in:
Christophe Nanteuil 2020-01-03 09:30:37 +01:00 committed by Antoine
parent e3ad032b86
commit 442bcc7f7a
5 changed files with 85 additions and 85 deletions

1
dict
View File

@ -88,6 +88,7 @@ mar.
marc-andré marc-andré
mersenne mersenne
mertz mertz
Monty
muabilité muabilité
muable muable
muables muables

View File

@ -109,7 +109,7 @@ msgid ""
"extension can also be ``.pyw``, in that case, the console window that " "extension can also be ``.pyw``, in that case, the console window that "
"normally appears is suppressed." "normally appears is suppressed."
msgstr "" msgstr ""
"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " "Sur les systèmes Windows il n'y a pas de \"mode exécutable\". L'installateur "
"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " "Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` "
"de telle sorte qu'un double clic sur un fichier Python le lance comme un " "de telle sorte qu'un double clic sur un fichier Python le lance comme un "
"script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " "script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console "
@ -162,9 +162,9 @@ msgid ""
msgstr "" msgstr ""
"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " "Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, "
"vous pouvez le programmer dans le fichier de démarrage global, par exemple " "vous pouvez le programmer dans le fichier de démarrage global, par exemple "
"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." "avec le code suivant : ``if os.path.isfile('.pythonrc.py'): exec(open('."
"pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " "pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage "
"depuis un script, vous devez le faire explicitement dans le script : ::" "depuis un script, vous devez le faire explicitement dans le script ::"
#: ../Doc/tutorial/appendix.rst:102 #: ../Doc/tutorial/appendix.rst:102
msgid "The Customization Modules" msgid "The Customization Modules"
@ -179,8 +179,8 @@ msgid ""
msgstr "" msgstr ""
"Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" "Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:"
"`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " "`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord "
"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " "trouver l'emplacement de votre dossier « site-packages » utilisateur. "
"Démarrez Python et exécutez ce code : ::" "Démarrez Python et exécutez ce code ::"
#: ../Doc/tutorial/appendix.rst:112 #: ../Doc/tutorial/appendix.rst:112
msgid "" msgid ""
@ -212,4 +212,4 @@ msgstr "Notes"
#: ../Doc/tutorial/appendix.rst:124 #: ../Doc/tutorial/appendix.rst:124
msgid "A problem with the GNU Readline package may prevent this." msgid "A problem with the GNU Readline package may prevent this."
msgstr "Un problème avec GNU Readline peut l'en empêcher." msgstr "Un problème avec GNU *Readline* peut l'en empêcher."

View File

@ -28,8 +28,8 @@ msgid ""
"custom database, or a specialized GUI application, or a simple game." "custom database, or a specialized GUI application, or a simple game."
msgstr "" msgstr ""
"Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir " "Lorsqu'on travaille beaucoup sur ordinateur, on finit souvent par vouloir "
"automatiser certaines tâches : par exemple, effectuer une recherche et un " "automatiser certaines tâches : par exemple, effectuer une recherche et un "
"remplacement sur un grand nombre de fichiers de texte ; ou renommer et " "remplacement sur un grand nombre de fichiers de texte ; ou renommer et "
"réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut " "réorganiser des photos d'une manière un peu compliquée. Pour vous, ce peut "
"être créer une petite base de données, une application graphique ou un " "être créer une petite base de données, une application graphique ou un "
"simple jeu." "simple jeu."
@ -86,15 +86,15 @@ msgid ""
"in Python as in those languages." "in Python as in those languages."
msgstr "" msgstr ""
"Python reste facile à utiliser, mais c'est un vrai langage de " "Python reste facile à utiliser, mais c'est un vrai langage de "
"programmation : il offre une bien meilleure structure et prise en charge des " "programmation : il offre une bien meilleure structure et prise en charge des "
"grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, " "grands programmes que les scripts shell ou les fichiers batch. Par ailleurs, "
"Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en " "Python permet de beaucoup mieux vérifier les erreurs que le langage C et, en "
"tant que *langage de très haut niveau*, il possède nativement des types de " "tant que *langage de très haut niveau*, il possède nativement des types de "
"données très évolués tels que les tableaux de taille variable ou les " "données très évolués tels que les tableaux de taille variable ou les "
"dictionnaires. Grâce à ses types de données plus universels, Python est " "dictionnaires. Grâce à ses types de données plus universels, Python est "
"utilisable pour des domaines beaucoup plus variés que ne peuvent l'être Awk " "utilisable pour des domaines beaucoup plus variés que ne peuvent l'être "
"ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au moins " "*Awk* ou même Perl. Pourtant, vous pouvez faire de nombreuses choses au "
"aussi facilement en Python que dans ces langages." "moins aussi facilement en Python que dans ces langages."
#: ../Doc/tutorial/appetite.rst:37 #: ../Doc/tutorial/appetite.rst:37
msgid "" msgid ""
@ -170,7 +170,7 @@ msgid ""
"Python interpreter into an application written in C and use it as an " "Python interpreter into an application written in C and use it as an "
"extension or command language for that application." "extension or command language for that application."
msgstr "" msgstr ""
"Python est *extensible* : si vous savez écrire un programme en C, une " "Python est *extensible* : si vous savez écrire un programme en C, une "
"nouvelle fonction ou module peut être facilement ajouté à l'interpréteur " "nouvelle fonction ou module peut être facilement ajouté à l'interpréteur "
"afin de l'étendre, que ce soit pour effectuer des opérations critiques à " "afin de l'étendre, que ce soit pour effectuer des opérations critiques à "
"vitesse maximale ou pour lier des programmes en Python à des bibliothèques " "vitesse maximale ou pour lier des programmes en Python à des bibliothèques "
@ -186,10 +186,10 @@ msgid ""
"Circus\" and has nothing to do with reptiles. Making references to Monty " "Circus\" and has nothing to do with reptiles. Making references to Monty "
"Python skits in documentation is not only allowed, it is encouraged!" "Python skits in documentation is not only allowed, it is encouraged!"
msgstr "" msgstr ""
"Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's " "Au fait, le nom du langage provient de l'émission de la BBC « Monty Python's "
"Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux " "Flying Circus » et n'a rien à voir avec les reptiles. Faire référence aux "
"sketchs des Monty Python dans la documentation n'est pas seulement permis, " "sketchs des Monty Python dans la documentation n'est pas seulement permis, "
"c'est encouragé !" "c'est encouragé !"
#: ../Doc/tutorial/appetite.rst:74 #: ../Doc/tutorial/appetite.rst:74
msgid "" msgid ""

View File

@ -120,7 +120,7 @@ msgid ""
msgstr "" msgstr ""
"Les objets possèdent une existence propre et plusieurs noms peuvent être " "Les objets possèdent une existence propre et plusieurs noms peuvent être "
"utilisés (dans divers contextes) pour faire référence à un même objet. Ce " "utilisés (dans divers contextes) pour faire référence à un même objet. Ce "
"concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît " "concept est connu sous le nom d'alias dans d'autres langages. Il n'apparaît "
"pas au premier coup d'œil en Python et il peut être ignoré tant qu'on " "pas au premier coup d'œil en Python et il peut être ignoré tant qu'on "
"travaille avec des types de base immuables (nombres, chaînes, tuples). " "travaille avec des types de base immuables (nombres, chaînes, tuples). "
"Cependant, les alias peuvent produire des effets surprenants sur la " "Cependant, les alias peuvent produire des effets surprenants sur la "
@ -129,7 +129,7 @@ msgstr ""
"utilisation est bénéfique au programme car les alias se comportent, d'un " "utilisation est bénéfique au programme car les alias se comportent, d'un "
"certain point de vue, comme des pointeurs. Par exemple, transmettre un objet " "certain point de vue, comme des pointeurs. Par exemple, transmettre un objet "
"n'a aucun coût car c'est simplement un pointeur qui est transmis par " "n'a aucun coût car c'est simplement un pointeur qui est transmis par "
"l'implémentation ; et si une fonction modifie un objet passé en argument, le " "l'implémentation ; et si une fonction modifie un objet passé en argument, le "
"code à l'origine de l'appel voit le changement. Ceci élimine le besoin " "code à l'origine de l'appel voit le changement. Ceci élimine le besoin "
"d'avoir deux mécanismes de transmission d'arguments comme en Pascal." "d'avoir deux mécanismes de transmission d'arguments comme en Pascal."
@ -174,12 +174,12 @@ msgstr ""
"forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf " "forme de dictionnaires Python, mais ceci n'est normalement pas visible (sauf "
"pour les performances) et peut changer dans le futur. Comme exemples " "pour les performances) et peut changer dans le futur. Comme exemples "
"d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :" "d'espaces de nommage, nous pouvons citer les primitives (fonctions comme :"
"func:`abs` et les noms des exceptions de base) ; les noms globaux dans un " "func:`abs` et les noms des exceptions de base) ; les noms globaux dans un "
"module ; et les noms locaux lors d'un appel de fonction. D'une certaine " "module ; et les noms locaux lors d'un appel de fonction. D'une certaine "
"manière, l'ensemble des attributs d'un objet forme lui-même un espace de " "manière, l'ensemble des attributs d'un objet forme lui-même un espace de "
"nommage. L'important à retenir concernant les espaces de nommage est qu'il " "nommage. L'important à retenir concernant les espaces de nommage est qu'il "
"n'y a absolument aucun lien entre les noms de différents espaces de " "n'y a absolument aucun lien entre les noms de différents espaces de "
"nommage ; par exemple, deux modules différents peuvent définir une fonction " "nommage ; par exemple, deux modules différents peuvent définir une fonction "
"``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules " "``maximize`` sans qu'il n'y ait de confusion. Les utilisateurs des modules "
"doivent préfixer le nom de la fonction avec celui du module." "doivent préfixer le nom de la fonction avec celui du module."
@ -251,7 +251,7 @@ msgid ""
msgstr "" msgstr ""
"L'espace des noms locaux d'une fonction est créé lors de son appel, puis " "L'espace des noms locaux d'une fonction est créé lors de son appel, puis "
"effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en " "effacé lorsqu'elle renvoie un résultat ou lève une exception non prise en "
"charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se " "charge (en fait, « oublié » serait une meilleure façon de décrire ce qui se "
"passe réellement). Bien sûr, des invocations récursives ont chacune leur " "passe réellement). Bien sûr, des invocations récursives ont chacune leur "
"propre espace de nommage." "propre espace de nommage."
@ -262,7 +262,7 @@ msgid ""
"reference to a name attempts to find the name in the namespace." "reference to a name attempts to find the name in the namespace."
msgstr "" msgstr ""
"La *portée* est la zone textuelle d'un programme Python où un espace de " "La *portée* est la zone textuelle d'un programme Python où un espace de "
"nommage est directement accessible. « Directement accessible » signifie ici " "nommage est directement accessible. « Directement accessible » signifie ici "
"qu'une référence non qualifiée à un nom est cherchée dans l'espace de " "qu'une référence non qualifiée à un nom est cherchée dans l'espace de "
"nommage." "nommage."
@ -281,7 +281,7 @@ msgstr ""
msgid "the innermost scope, which is searched first, contains the local names" msgid "the innermost scope, which is searched first, contains the local names"
msgstr "" msgstr ""
"la portée la plus au centre, celle qui est consultée en premier, contient " "la portée la plus au centre, celle qui est consultée en premier, contient "
"les noms locaux ;" "les noms locaux ;"
#: ../Doc/tutorial/classes.rst:121 #: ../Doc/tutorial/classes.rst:121
msgid "" msgid ""
@ -352,8 +352,8 @@ msgstr ""
"la fonction. En revanche, la recherche réelle des noms est faite " "la fonction. En revanche, la recherche réelle des noms est faite "
"dynamiquement au moment de l'exécution. Cependant la définition du langage " "dynamiquement au moment de l'exécution. Cependant la définition du langage "
"est en train d'évoluer vers une résolution statique des noms au moment de la " "est en train d'évoluer vers une résolution statique des noms au moment de la "
compilation », donc ne vous basez pas sur une résolution dynamique (en "  compilation », donc ne vous basez pas sur une résolution dynamique (en "
"réalité, les variables locales sont déjà déterminées de manière statique) !" "réalité, les variables locales sont déjà déterminées de manière statique) !"
#: ../Doc/tutorial/classes.rst:146 #: ../Doc/tutorial/classes.rst:146
msgid "" msgid ""
@ -386,7 +386,7 @@ msgid ""
msgstr "" msgstr ""
"L'instruction :keyword:`global` peut être utilisée pour indiquer que " "L'instruction :keyword:`global` peut être utilisée pour indiquer que "
"certaines variables existent dans la portée globale et doivent être reliées " "certaines variables existent dans la portée globale et doivent être reliées "
"en local ; l'instruction :keyword:`nonlocal` indique que certaines variables " "en local ; l'instruction :keyword:`nonlocal` indique que certaines variables "
"existent dans une portée supérieure et doivent être reliées en local." "existent dans une portée supérieure et doivent être reliées en local."
#: ../Doc/tutorial/classes.rst:162 #: ../Doc/tutorial/classes.rst:162
@ -660,7 +660,7 @@ msgid ""
"``MyClass.f`` --- it is a *method object*, not a function object." "``MyClass.f`` --- it is a *method object*, not a function object."
msgstr "" msgstr ""
"Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par " "Les noms de méthodes valides d'un objet instance dépendent de sa classe. Par "
"définition, tous les attributs d'une classe qui sont des objets fonction " "définition, tous les attributs d'une classe qui sont des objets fonctions "
"définissent les méthodes correspondantes de ses instances. Donc, dans notre " "définissent les méthodes correspondantes de ses instances. Donc, dans notre "
"exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` " "exemple, ``x.f`` est une référence valide à une méthode car ``MyClass.f`` "
"est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. " "est une fonction, mais pas ``x.i`` car ``MyClass.i`` n'en est pas une. "
@ -684,8 +684,8 @@ msgid ""
msgstr "" msgstr ""
"Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de "
"caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la "
"méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " "méthode directement : ``x.f`` est un objet méthode, il peut être gardé de "
"coté et être appelé plus tard. Par exemple ::" "côté et être appelé plus tard. Par exemple ::"
#: ../Doc/tutorial/classes.rst:374 #: ../Doc/tutorial/classes.rst:374
msgid "will continue to print ``hello world`` until the end of time." msgid "will continue to print ``hello world`` until the end of time."
@ -705,7 +705,7 @@ msgstr ""
"alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend " "alors que la définition de la méthode :meth:`f` spécifie bien qu'elle prend "
"un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une " "un argument. Qu'est-il arrivé à l'argument ? Python doit sûrement lever une "
"exception lorsqu'une fonction qui requiert un argument est appelée sans -- " "exception lorsqu'une fonction qui requiert un argument est appelée sans -- "
"même si l'argument n'est pas utilisé..." "même si l'argument n'est pas utilisé"
#: ../Doc/tutorial/classes.rst:382 #: ../Doc/tutorial/classes.rst:382
msgid "" msgid ""
@ -720,7 +720,7 @@ msgstr ""
"En fait, vous avez peut-être deviné la réponse : la particularité des " "En fait, vous avez peut-être deviné la réponse : la particularité des "
"méthodes est que l'objet est passé comme premier argument de la fonction. " "méthodes est que l'objet est passé comme premier argument de la fonction. "
"Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass." "Dans notre exemple, l'appel ``x.f()`` est exactement équivalent à ``MyClass."
"f(x)``. En général, appeler une méthode avec une liste de *n* arguments est " "f(x)``. En général, appeler une méthode avec une liste de *n* arguments est "
"équivalent à appeler la fonction correspondante avec une liste d'arguments " "équivalent à appeler la fonction correspondante avec une liste d'arguments "
"créée en ajoutant l'instance de l'objet de la méthode avant le premier " "créée en ajoutant l'instance de l'objet de la méthode avant le premier "
"argument." "argument."
@ -738,7 +738,7 @@ msgid ""
"called with this new argument list." "called with this new argument list."
msgstr "" msgstr ""
"Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup "
"d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " "d'œil à l'implémentation vous aidera peut-être. Lorsque un attribut d'une "
"instance est référencé et que ce n'est pas un attribut 'données', sa classe " "instance est référencé et que ce n'est pas un attribut 'données', sa classe "
"est recherchée. Si le nom correspond à un attribut valide et que c'est un " "est recherchée. Si le nom correspond à un attribut valide et que c'est un "
"objet fonction, un objet méthode est créé en générant un objet abstrait qui " "objet fonction, un objet méthode est créé en générant un objet abstrait qui "
@ -771,11 +771,10 @@ msgid ""
"by all *Dog* instances::" "by all *Dog* instances::"
msgstr "" msgstr ""
"Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:" "Comme nous l'avons vu dans :ref:`tut-object`, les données partagées :term:"
"`muable <muable>` (telles que les listes, dictionnaires, etc...) peuvent " "`muable <muable>` (telles que les listes, dictionnaires, etc.) peuvent avoir "
"avoir des effets surprenants. Par exemple, la liste *tricks* dans le code " "des effets surprenants. Par exemple, la liste *tricks* dans le code suivant "
"suivant ne devrait pas être utilisée en tant que variable de classe car, " "ne devrait pas être utilisée en tant que variable de classe car, dans ce "
"dans ce cas, une seule liste est partagée par toutes les instances de " "cas, une seule liste est partagée par toutes les instances de *Dog* ::"
"*Dog* ::"
#: ../Doc/tutorial/classes.rst:450 #: ../Doc/tutorial/classes.rst:450
msgid "Correct design of the class should use an instance variable instead::" msgid "Correct design of the class should use an instance variable instead::"
@ -809,9 +808,9 @@ msgstr ""
"des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, " "des utilisateurs ordinaires (\"clients\") d'un objet. En d'autres termes, "
"les classes ne sont pas utilisables pour implémenter des types de données " "les classes ne sont pas utilisables pour implémenter des types de données "
"purement abstraits. En fait, il n'est pas possible en Python d'imposer de " "purement abstraits. En fait, il n'est pas possible en Python d'imposer de "
"masquer des données --- tout est basé sur des conventions (d'un autre coté, " "masquer des données — tout est basé sur des conventions (d'un autre côté, "
"l'implémentation de Python, écrite en C, peut complètement masquer les " "l'implémentation de Python, écrite en C, peut complètement masquer les "
"détails d'implémentation et contrôler l'accès à un objet si nécessaire ; " "détails d'implémentation et contrôler l'accès à un objet si nécessaire ; "
"ceci peut être utilisé par des extensions de Python écrites en C)." "ceci peut être utilisé par des extensions de Python écrites en C)."
#: ../Doc/tutorial/classes.rst:501 #: ../Doc/tutorial/classes.rst:501
@ -838,7 +837,7 @@ msgid ""
"variables when glancing through a method." "variables when glancing through a method."
msgstr "" msgstr ""
"Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou " "Il n'y a pas de notation abrégée pour référencer des attributs 'données' (ou "
"les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore " "les autres méthodes !) depuis les méthodes. Nous pensons que ceci améliore "
"en fait la lisibilité des méthodes : il n'y a aucune chance de confondre " "en fait la lisibilité des méthodes : il n'y a aucune chance de confondre "
"variables locales et variables d'instances quand on regarde le code d'une " "variables locales et variables d'instances quand on regarde le code d'une "
"méthode." "méthode."
@ -1015,7 +1014,7 @@ msgstr ""
#: ../Doc/tutorial/classes.rst:616 #: ../Doc/tutorial/classes.rst:616
msgid "Python has two built-in functions that work with inheritance:" msgid "Python has two built-in functions that work with inheritance:"
msgstr "Python définit deux fonctions primitives pour gérer l'héritage :" msgstr "Python définit deux fonctions primitives pour gérer l'héritage :"
#: ../Doc/tutorial/classes.rst:618 #: ../Doc/tutorial/classes.rst:618
msgid "" msgid ""
@ -1067,7 +1066,7 @@ msgstr ""
"de gauche à droite, sans chercher deux fois dans la même classe si elle " "de gauche à droite, sans chercher deux fois dans la même classe si elle "
"apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas " "apparaît plusieurs fois dans la hiérarchie. Ainsi, si un attribut n'est pas "
"trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, " "trouvé dans :class:`DerivedClassName`, il est recherché dans :class:`Base1`, "
"puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y " "puis (récursivement) dans les classes de base de :class:`Base1` ; s'il n'y "
"est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, " "est pas trouvé, il est recherché dans :class:`Base2` et ses classes de base, "
"et ainsi de suite." "et ainsi de suite."
@ -1189,7 +1188,7 @@ msgid ""
"private. This can even be useful in special circumstances, such as in the " "private. This can even be useful in special circumstances, such as in the "
"debugger." "debugger."
msgstr "" msgstr ""
"Notez que ces règles sont conçues avant tout pour éviter les accidents ; il " "Notez que ces règles sont conçues avant tout pour éviter les accidents ; il "
"reste possible d'accéder ou de modifier une variable considérée comme " "reste possible d'accéder ou de modifier une variable considérée comme "
"privée. Ceci peut même être utile dans certaines circonstances, comme au " "privée. Ceci peut même être utile dans certaines circonstances, comme au "
"sein du débogueur." "sein du débogueur."
@ -1204,7 +1203,7 @@ msgid ""
"referencing ``__dict__`` directly." "referencing ``__dict__`` directly."
msgstr "" msgstr ""
"Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère " "Remarquez que le code que vous passez à ``exec()``, ``eval()`` ne considère "
"pas le nom de la classe appelante comme étant la classe courante ; le même " "pas le nom de la classe appelante comme étant la classe courante ; le même "
"effet s'applique à la directive ``global`` dont l'effet est, de la même " "effet s'applique à la directive ``global`` dont l'effet est, de la même "
"façon, restreint au code compilé dans le même ensemble de byte-code. Les " "façon, restreint au code compilé dans le même ensemble de byte-code. Les "
"mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et " "mêmes restrictions s'appliquent à ``getattr()``, ``setattr()`` et "
@ -1397,7 +1396,7 @@ msgid ""
msgstr "" msgstr ""
"Il existe une exception : les modules disposent d'un attribut secret en " "Il existe une exception : les modules disposent d'un attribut secret en "
"lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire " "lecture seule appelé :attr:`~object.__dict__` qui renvoie le dictionnaire "
"utilisé pour implémenter l'espace de nommage du module ; le nom :attr:" "utilisé pour implémenter l'espace de nommage du module ; le nom :attr:"
"`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si " "`~object.__dict__` est un attribut mais pas un nom global. Évidemment, si "
"vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces " "vous l'utilisez, vous brisez l'abstraction de l'implémentation des espaces "
"de nommage. Il est donc réservé à des choses comme les débogueurs post-" "de nommage. Il est donc réservé à des choses comme les débogueurs post-"

View File

@ -108,10 +108,10 @@ msgid ""
"a different increment (even negative; sometimes this is called the 'step')::" "a different increment (even negative; sometimes this is called the 'step')::"
msgstr "" msgstr ""
"Le dernier élément fourni en paramètre ne fait jamais partie de la liste " "Le dernier élément fourni en paramètre ne fait jamais partie de la liste "
"générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs " "générée ; ``range(10)`` génère une liste de 10 valeurs, dont les valeurs "
"vont de 0 à 9. Il est possible de spécifier une valeur de début et/ou une " "vont de 0 à 9. Il est possible de spécifier une valeur de début et une "
"valeur d'incrément différente(s) (y compris négative pour cette dernière, " "valeur d'incrément différentes (y compris négative pour cette dernière, que "
"que l'on appelle également parfois le 'pas') ::" "l'on appelle également parfois le 'pas') ::"
#: ../Doc/tutorial/controlflow.rst:116 #: ../Doc/tutorial/controlflow.rst:116
msgid "" msgid ""
@ -157,8 +157,8 @@ msgstr ""
"conviennent à des *iterateurs*, des fonctions ou constructions qui " "conviennent à des *iterateurs*, des fonctions ou constructions qui "
"s'attendent à quelque chose duquel ils peuvent tirer des éléments, " "s'attendent à quelque chose duquel ils peuvent tirer des éléments, "
"successivement, jusqu'à épuisement. On a vu que l'instruction :keyword:`for` " "successivement, jusqu'à épuisement. On a vu que l'instruction :keyword:`for` "
"est une de ces constructions, par exemple la fonction :func:`sum` prend un " "est une de ces constructions, et un exemple de fonction qui prend un "
"itérable en paramètre. ::" "itérable en paramètre est :func:`sum` ::"
#: ../Doc/tutorial/controlflow.rst:151 #: ../Doc/tutorial/controlflow.rst:151
msgid "" msgid ""
@ -167,7 +167,7 @@ msgid ""
"range. Here is the solution::" "range. Here is the solution::"
msgstr "" msgstr ""
"Plus loin nous voyons d'autres fonctions qui donnent des itérables ou en " "Plus loin nous voyons d'autres fonctions qui donnent des itérables ou en "
"prennent en paramètre. Si vous vous demandez comment obtenir une liste à " "prennent en paramètre. Si vous vous demandez comment obtenir une liste à "
"partir d'un **range**, voilà la solution ::" "partir d'un **range**, voilà la solution ::"
#: ../Doc/tutorial/controlflow.rst:158 #: ../Doc/tutorial/controlflow.rst:158
@ -202,7 +202,7 @@ msgid ""
"loop is terminated by a :keyword:`break` statement. This is exemplified by " "loop is terminated by a :keyword:`break` statement. This is exemplified by "
"the following loop, which searches for prime numbers::" "the following loop, which searches for prime numbers::"
msgstr "" msgstr ""
"Les boucles peuvent également disposer d'une instruction :keyword:`!else` ; " "Les boucles peuvent également disposer d'une instruction :keyword:`!else` ; "
"celle-ci est exécutée lorsqu'une boucle se termine alors que tous ses " "celle-ci est exécutée lorsqu'une boucle se termine alors que tous ses "
"éléments ont été traités (dans le cas d'un :keyword:`for`) ou que la " "éléments ont été traités (dans le cas d'un :keyword:`for`) ou que la "
"condition devient fausse (dans le cas d'un :keyword:`while`), mais pas " "condition devient fausse (dans le cas d'un :keyword:`while`), mais pas "
@ -230,7 +230,7 @@ msgid ""
msgstr "" msgstr ""
"Lorsqu'elle utilisée dans une boucle, la clause ``else`` est donc plus " "Lorsqu'elle utilisée dans une boucle, la clause ``else`` est donc plus "
"proche de celle associée à une instruction :keyword:`try` que de celle " "proche de celle associée à une instruction :keyword:`try` que de celle "
"associée à une instruction :keyword:`if` : la clause ``else`` d'une " "associée à une instruction :keyword:`if` : la clause ``else`` d'une "
"instruction :keyword:`try` s'exécute lorsqu'aucune exception n'est " "instruction :keyword:`try` s'exécute lorsqu'aucune exception n'est "
"déclenchée, et celle d'une boucle lorsque aucun ``break`` n'intervient. Plus " "déclenchée, et celle d'une boucle lorsque aucun ``break`` n'intervient. Plus "
"plus d'informations sur l'instruction :keyword:`!try` et le traitement des " "plus d'informations sur l'instruction :keyword:`!try` et le traitement des "
@ -309,7 +309,7 @@ msgid ""
"write, so make a habit of it." "write, so make a habit of it."
msgstr "" msgstr ""
"La première instruction d'une fonction peut, de façon facultative, être une " "La première instruction d'une fonction peut, de façon facultative, être une "
"chaîne de caractères littérale ; cette chaîne de caractères sera alors la " "chaîne de caractères littérale ; cette chaîne de caractères sera alors la "
"chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez " "chaîne de documentation de la fonction, appelée :dfn:`docstring` (consultez "
"la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils " "la section :ref:`tut-docstrings` pour en savoir plus). Il existe des outils "
"qui utilisent ces chaînes de documentation pour générer automatiquement une " "qui utilisent ces chaînes de documentation pour générer automatiquement une "
@ -333,7 +333,7 @@ msgstr ""
"*L'exécution* d'une fonction introduit une nouvelle table de symboles " "*L'exécution* d'une fonction introduit une nouvelle table de symboles "
"utilisée par les variables locales de la fonction. Plus précisément, toutes " "utilisée par les variables locales de la fonction. Plus précisément, toutes "
"les affectations de variables effectuées au sein d'une fonction stockent la " "les affectations de variables effectuées au sein d'une fonction stockent la "
"valeur dans la table de symboles locale ; en revanche, les références de " "valeur dans la table de symboles locale ; en revanche, les références de "
"variables sont recherchées dans la table de symboles locale, puis dans la " "variables sont recherchées dans la table de symboles locale, puis dans la "
"table de symboles locale des fonctions englobantes, puis dans la table de " "table de symboles locale des fonctions englobantes, puis dans la table de "
"symboles globale et finalement dans la table de noms des primitives. Par " "symboles globale et finalement dans la table de noms des primitives. Par "
@ -353,7 +353,7 @@ msgid ""
msgstr "" msgstr ""
"Les paramètres effectifs (arguments) d'une fonction sont introduits dans la " "Les paramètres effectifs (arguments) d'une fonction sont introduits dans la "
"table de symboles locale de la fonction appelée au moment où elle est " "table de symboles locale de la fonction appelée au moment où elle est "
"appelée ; par conséquent, les passages de paramètres se font *par valeur*, " "appelée ; par conséquent, les passages de paramètres se font *par valeur*, "
"la *valeur* étant toujours une *référence* à un objet et non la valeur de " "la *valeur* étant toujours une *référence* à un objet et non la valeur de "
"l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une " "l'objet lui-même. [#]_ Lorsqu'une fonction appelle une autre fonction, une "
"nouvelle table de symboles locale est créée pour cet appel." "nouvelle table de symboles locale est créée pour cet appel."
@ -368,9 +368,10 @@ msgid ""
msgstr "" msgstr ""
"Une définition de fonction introduit le nom de la fonction dans la table de " "Une définition de fonction introduit le nom de la fonction dans la table de "
"symboles courante. La valeur du nom de la fonction est un type qui est " "symboles courante. La valeur du nom de la fonction est un type qui est "
"reconnu par l'interpréteur comme une fonction utilisateur. Cette valeur peut " "reconnu par l'interpréteur comme une fonction définie par l'utilisateur. "
"être affectée à un autre nom qui pourra alors être utilisé également comme " "Cette valeur peut être affectée à un autre nom qui pourra alors être utilisé "
"une fonction. Ceci fournit un mécanisme de renommage général ::" "également comme une fonction. Ceci fournit un mécanisme de renommage "
"général ::"
#: ../Doc/tutorial/controlflow.rst:312 #: ../Doc/tutorial/controlflow.rst:312
msgid "" msgid ""
@ -403,7 +404,7 @@ msgstr ""
msgid "This example, as usual, demonstrates some new Python features:" msgid "This example, as usual, demonstrates some new Python features:"
msgstr "" msgstr ""
"Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de " "Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de "
"Python :" "Python :"
#: ../Doc/tutorial/controlflow.rst:341 #: ../Doc/tutorial/controlflow.rst:341
msgid "" msgid ""
@ -437,7 +438,7 @@ msgstr ""
"même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres " "même nom sans qu'il n'y ait d'ambigüité (vous pouvez définir vos propres "
"types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-" "types d'objets et leurs méthodes en utilisant des *classes*, voir :ref:`tut-"
"classes`). La méthode :meth:`append` donnée dans cet exemple est définie " "classes`). La méthode :meth:`append` donnée dans cet exemple est définie "
"pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans " "pour les listes ; elle ajoute un nouvel élément à la fin de la liste. Dans "
"cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle " "cet exemple, elle est l'équivalent de ``result = result + [a]``, mais elle "
"est plus efficace." "est plus efficace."
@ -469,13 +470,13 @@ msgstr ""
#: ../Doc/tutorial/controlflow.rst:387 #: ../Doc/tutorial/controlflow.rst:387
msgid "This function can be called in several ways:" msgid "This function can be called in several ways:"
msgstr "Cette fonction peut être appelée de plusieurs façons :" msgstr "Cette fonction peut être appelée de plusieurs façons :"
#: ../Doc/tutorial/controlflow.rst:389 #: ../Doc/tutorial/controlflow.rst:389
msgid "" msgid ""
"giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``"
msgstr "" msgstr ""
"en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really " "en ne fournissant que les arguments obligatoires : ``ask_ok('Do you really "
"want to quit?')``" "want to quit?')``"
#: ../Doc/tutorial/controlflow.rst:391 #: ../Doc/tutorial/controlflow.rst:391
@ -483,7 +484,7 @@ msgid ""
"giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', "
"2)``" "2)``"
msgstr "" msgstr ""
"en fournissant une partie des arguments facultatifs : ``ask_ok('OK to " "en fournissant une partie des arguments facultatifs : ``ask_ok('OK to "
"overwrite the file?', 2)``" "overwrite the file?', 2)``"
#: ../Doc/tutorial/controlflow.rst:393 #: ../Doc/tutorial/controlflow.rst:393
@ -491,7 +492,7 @@ msgid ""
"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come "
"on, only yes or no!')``" "on, only yes or no!')``"
msgstr "" msgstr ""
"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, " "en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, "
"'Come on, only yes or no!')``" "'Come on, only yes or no!')``"
#: ../Doc/tutorial/controlflow.rst:396 #: ../Doc/tutorial/controlflow.rst:396
@ -915,7 +916,7 @@ msgid ""
"scope::" "scope::"
msgstr "" msgstr ""
"Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions " "Avec le mot-clé :keyword:`lambda`, vous pouvez créer de petites fonctions "
"anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda " "anonymes. En voici une qui renvoie la somme de ses deux arguments : ``lambda "
"a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet " "a, b: a+b``. Les fonctions lambda peuvent être utilisées partout où un objet "
"fonction est attendu. Elles sont syntaxiquement restreintes à une seule " "fonction est attendu. Elles sont syntaxiquement restreintes à une seule "
"expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une " "expression. Sémantiquement, elles ne sont que du sucre syntaxique pour une "
@ -986,7 +987,7 @@ msgstr ""
"L'analyseur de code Python ne supprime pas l'indentation des chaînes de " "L'analyseur de code Python ne supprime pas l'indentation des chaînes de "
"caractères littérales multi-lignes, donc les outils qui utilisent la " "caractères littérales multi-lignes, donc les outils qui utilisent la "
"documentation doivent si besoin faire cette opération eux-mêmes. La " "documentation doivent si besoin faire cette opération eux-mêmes. La "
"convention suivante s'applique : la première ligne non vide *après* la " "convention suivante s'applique : la première ligne non vide *après* la "
"première détermine la profondeur d'indentation de l'ensemble de la chaîne de " "première détermine la profondeur d'indentation de l'ensemble de la chaîne de "
"documentation (on ne peut pas utiliser la première ligne qui est " "documentation (on ne peut pas utiliser la première ligne qui est "
"généralement accolée aux guillemets d'ouverture de la chaîne de caractères " "généralement accolée aux guillemets d'ouverture de la chaîne de caractères "
@ -1013,8 +1014,7 @@ msgid ""
msgstr "" msgstr ""
":ref:`Les annotations de fonction <function>` sont des métadonnées " ":ref:`Les annotations de fonction <function>` sont des métadonnées "
"optionnelles décrivant les types utilisés par une fonction définie par " "optionnelles décrivant les types utilisés par une fonction définie par "
"l'utilisateur (voir les PEPs :pep:`3107` et la :pep:`484` pour plus " "l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)."
"d'informations)."
#: ../Doc/tutorial/controlflow.rst:863 #: ../Doc/tutorial/controlflow.rst:863
msgid "" msgid ""
@ -1029,16 +1029,16 @@ msgid ""
msgstr "" msgstr ""
"Les :term:`annotations <function annotation>` sont stockées dans l'attribut :" "Les :term:`annotations <function annotation>` sont stockées dans l'attribut :"
"attr:`__annotations__` de la fonction, sous forme d'un dictionnaire, et " "attr:`__annotations__` de la fonction, sous forme d'un dictionnaire, et "
"n'ont aucun autre effet. Les annotations sur les paramètres sont définis par " "n'ont aucun autre effet. Les annotations sur les paramètres sont définies "
"deux points (:) après le nom du paramètre suivi d'une expression donnant la " "par deux points (`:`) après le nom du paramètre suivi d'une expression "
"valeur de l'annotation. Les annotations de retour sont définies par ``->`` " "donnant la valeur de l'annotation. Les annotations de retour sont définies "
"suivi d'une expression, entre la liste des paramètres et les deux points de " "par ``->`` suivi d'une expression, entre la liste des paramètres et les deux "
"fin de l'instruction :keyword:`def`. L'exemple suivant a un paramètre " "points de fin de l'instruction :keyword:`def`. L'exemple suivant a un "
"positionnel, un paramètre nommé et une valeur de retour annotée ::" "paramètre positionnel, un paramètre nommé et la valeur de retour annotés ::"
#: ../Doc/tutorial/controlflow.rst:885 #: ../Doc/tutorial/controlflow.rst:885
msgid "Intermezzo: Coding Style" msgid "Intermezzo: Coding Style"
msgstr "Aparté : le style de codage" msgstr "Aparté : le style de codage"
#: ../Doc/tutorial/controlflow.rst:890 #: ../Doc/tutorial/controlflow.rst:890
msgid "" msgid ""
@ -1051,7 +1051,7 @@ msgstr ""
"Maintenant que vous êtes prêt à écrire des programmes plus longs et plus " "Maintenant que vous êtes prêt à écrire des programmes plus longs et plus "
"complexes, il est temps de parler du *style de codage*. La plupart des " "complexes, il est temps de parler du *style de codage*. La plupart des "
"langages peuvent être écrits (ou plutôt *formatés*) selon différents " "langages peuvent être écrits (ou plutôt *formatés*) selon différents "
"styles ; certains sont plus lisibles que d'autres. Rendre la lecture de " "styles ; certains sont plus lisibles que d'autres. Rendre la lecture de "
"votre code plus facile aux autres est toujours une bonne idée et adopter un " "votre code plus facile aux autres est toujours une bonne idée et adopter un "
"bon style de codage peut énormément vous y aider." "bon style de codage peut énormément vous y aider."
@ -1063,9 +1063,9 @@ msgid ""
"points extracted for you:" "points extracted for you:"
msgstr "" msgstr ""
"En Python, la plupart des projets adhèrent au style défini dans la :pep:" "En Python, la plupart des projets adhèrent au style défini dans la :pep:"
"`8` ; elle met en avant un style de codage très lisible et agréable à lœil. " "`8` ; elle met en avant un style de codage très lisible et agréable à lœil. "
"Chaque développeur Python se doit donc de la lire et de s'en inspirer autant " "Chaque développeur Python se doit donc de la lire et de s'en inspirer autant "
"que possible ; voici ses principaux points notables :" "que possible ; voici ses principaux points notables :"
#: ../Doc/tutorial/controlflow.rst:901 #: ../Doc/tutorial/controlflow.rst:901
msgid "Use 4-space indentation, and no tabs." msgid "Use 4-space indentation, and no tabs."
@ -1108,7 +1108,7 @@ msgstr ""
#: ../Doc/tutorial/controlflow.rst:915 #: ../Doc/tutorial/controlflow.rst:915
msgid "When possible, put comments on a line of their own." msgid "When possible, put comments on a line of their own."
msgstr "" msgstr ""
"Lorsque c'est possible, placez les commentaires sur leur propres lignes." "Lorsque c'est possible, placez les commentaires sur leurs propres lignes."
#: ../Doc/tutorial/controlflow.rst:917 #: ../Doc/tutorial/controlflow.rst:917
msgid "Use docstrings." msgid "Use docstrings."
@ -1120,7 +1120,7 @@ msgid ""
"bracketing constructs: ``a = f(1, 2) + g(3, 4)``." "bracketing constructs: ``a = f(1, 2) + g(3, 4)``."
msgstr "" msgstr ""
"Utilisez des espaces autour des opérateurs et après les virgules, mais pas " "Utilisez des espaces autour des opérateurs et après les virgules, mais pas "
"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``." "juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``."
#: ../Doc/tutorial/controlflow.rst:922 #: ../Doc/tutorial/controlflow.rst:922
msgid "" msgid ""
@ -1129,7 +1129,7 @@ msgid ""
"functions and methods. Always use ``self`` as the name for the first method " "functions and methods. Always use ``self`` as the name for the first method "
"argument (see :ref:`tut-firstclasses` for more on classes and methods)." "argument (see :ref:`tut-firstclasses` for more on classes and methods)."
msgstr "" msgstr ""
"Nommez toujours vos classes et fonctions de la même manière ; la convention " "Nommez toujours vos classes et fonctions de la même manière ; la convention "
"est d'utiliser une notation ``UpperCamelCase`` pour les classes, et " "est d'utiliser une notation ``UpperCamelCase`` pour les classes, et "
"``minuscules_avec_trait_bas`` pour les fonctions et méthodes. Utilisez " "``minuscules_avec_trait_bas`` pour les fonctions et méthodes. Utilisez "
"toujours ``self`` comme nom du premier argument des méthodes (voyez :ref:" "toujours ``self`` comme nom du premier argument des méthodes (voyez :ref:"
@ -1168,7 +1168,7 @@ msgstr ""
"En fait, *appels par référence d'objets* serait sans doute une description " "En fait, *appels par référence d'objets* serait sans doute une description "
"plus juste dans la mesure où, si un objet muable est passé en argument, " "plus juste dans la mesure où, si un objet muable est passé en argument, "
"l'appelant verra toutes les modifications qui lui auront été apportées par " "l'appelant verra toutes les modifications qui lui auront été apportées par "
"l'appelé (insertion d'éléments dans une liste...)." "l'appelé (insertion d'éléments dans une liste)."
#~ msgid "" #~ msgid ""
#~ "If you need to modify the sequence you are iterating over while inside " #~ "If you need to modify the sequence you are iterating over while inside "