Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traduction du chapitre -1, «Quoi de neuf dans “Plongez dans Python 3» #6

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions 00-whats-new.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Quoi de neuf dans “Plongez dans Python 3”
status: En cours
status: Relecture
permalink: whats-new.html
---
<!DOCTYPE html>
<meta charset=utf-8>
<title>What's New In Dive Into Python 3</title>
<title>Quoi de neuf dans «&nbsp;Plongez dans Python 3&nbsp;»</title>
<!--[if IE]><script src=j/html5.js></script><![endif]-->
<link rel=stylesheet href=dip3.css>
<style>
Expand All @@ -16,39 +16,39 @@
<link rel=stylesheet media=print href=print.css>
<meta name=viewport content='initial-scale=1.0'>
<form action=http://www.google.com/cse><div><input type=hidden name=cx value=014021643941856155761:l5eihuescdw><input type=hidden name=ie value=UTF-8>&nbsp;<input type=search name=q size=25 placeholder="powered by Google&trade;">&nbsp;<input type=submit name=sa value=Search></div></form>
<p>You are here: <a href=index.html>Home</a> <span class=u>&#8227;</span> <a href=table-of-contents.html#whats-new>Dive Into Python 3</a> <span class=u>&#8227;</span>
<h1>What&#8217;s New In &#8220;Dive Into Python 3&#8221;</h1>
<p>Vous êtes ici : <a href=index.html>Accueil</a> <span class=u>&#8227;</span> <a href=table-of-contents.html#whats-new>Plongez dans Python 3</a> <span class=u>&#8227;</span>
<h1>Quoi de neuf dans «&nbsp;Plongez dans Python 3&nbsp;»</h1>
<blockquote class=q>
<p><span class=u>&#x275D;</span> Isn&#8217;t this where we came in? <span class=u>&#x275E;</span><br>&mdash; Pink Floyd, The Wall
</blockquote>
<p id=toc>&nbsp;
<h2 id=divingin><i>a.k.a.</i> &#8220;the minus level&#8221;</h2>
<h2 id=divingin><i>a.k.a.</i> «&nbsp;le niveau -1&nbsp;»</h2>

<p class=f>Are you already a Python programmer? Did you read the original &#8220;<a href=http://diveintopython.org/>Dive Into Python</a>&#8221;? Did you buy it on paper? (If so, thanks!) Are you ready to take the plunge into Python 3? &hellip; If so, read on. (If none of that is true, you&#8217;d be better off <a href=installing-python.html>starting at the beginning</a>.)
<p class=f>Avez-vous déjà programmé en Python&nbsp;? Avez-vous lu le livre original «&nbsp;Plongez dans Python&nbsp;»? (NdT&nbsp;: «&nbsp;Dive into Python&nbsp;», qui n’existe qu’en version anglaise). L’avez-vous acheté au format papier&nbsp;? (Si oui, merci&nbsp;!) Êtes-vous prêt(e) à plonger dans Python 3&nbsp;? &hellip; Si oui, continuez à lire. (Si rien de cela n’est vrai, vous feriez mieux de <a href=installing-python.html>commencer par le début</a>.)

<p>Python 3 comes with a script called <code>2to3</code>. Learn it. Love it. Use it. <a href=porting-code-to-python-3-with-2to3.html>Porting Code to Python 3 with <code>2to3</code></a> is a reference of all the things that the <code>2to3</code> tool can fix automatically. Since a lot of those things are syntax changes, it&#8217;s a good starting point to learn about a lot of the syntax changes in Python 3. (<code>print</code> is now a function, <code>`x`</code> doesn&#8217;t work, <i class=baa>&amp;</i>c.)
<p>Python 3 est livré avec un script nommé <code>2to3</code>. Apprenez à l’utiliser. Aimez-le. Utilisez-le. <a href=porting-code-to-python-3-with-2to3.html>Porter du code vers Python 3 avec <code>2to3</code></a> est une référence de toutes les choses que l’outil <code>2to3</code> peut corriger automatiquement. Comme la plupart sont des changements de syntaxe, c’est un bon point de départ pour apprendre beaucoup de choses sur les changements de syntaxe dans Python 3 (<code>print</code> est désormais une fonction, <code>`x`</code> ne marche pas, etc.).

<p><a href=case-study-porting-chardet-to-python-3.html>Case Study: Porting <code>chardet</code> to Python 3</a> documents my (ultimately successful) effort to port a non-trivial library from Python 2 to Python 3. It may help you; it may not. There&#8217;s a fairly steep learning curve, since you need to kind of understand the library first, so you can understand why it broke and how I fixed it. A lot of the breakage centers around strings. Speaking of which&hellip;
<p><a href=case-study-porting-chardet-to-python-3.html>Étude de cas&nbsp;: porter <code>chardet</code> vers Python 3</a> documente mon travail (finalement couronné de succès) pour porter une bibliothèque non triviale de Python 2 à Python 3. Ça peut vous aider. Ou peut-être pas. Il y a une courbe d’apprentissage assez raide, car vous devez tout d’abord comprendre à peu près la bibliothèque, pour comprendre pourquoi le code ne fonctionne plus et comment le corriger. Beaucoup de problèmes tournent autour des chaînes de caractères. À ce propos&hellip;

<p>Strings. Whew. Where to start. Python 2 had &#8220;strings&#8221; and &#8220;Unicode strings.&#8221; Python 3 has &#8220;bytes&#8221; and &#8220;strings.&#8221; That is, all strings are now Unicode strings, and if you want to deal with a bag of bytes, you use the new <code>bytes</code> type. Python 3 will <em>never</em> implicitly convert between strings and bytes, so if you&#8217;re not sure which one you have at any given moment, your code will almost certainly break. Read <a href=strings.html>the Strings chapter</a> for more details.
<p>Chaînes de caractères. Waouh. Par où commencer. Python 2 a des «&nbsp;chaînes de caractères&nbsp;» et des «&nbsp;chaînes de caractères Unicode&nbsp;»&hellip; Python 3 a des «&nbsp;octets&nbsp;» et des «&nbsp;chaînes de caractères&nbsp;». Ce qui signifie que toutes les chaînes de caractères sont maintenant Unicode, et que si vous voulez avoir affaire à des sacs d’octets, il vous faudra utiliser le nouveau type <code>bytes</code>. Python 3 ne fera <em>jamais</em> de conversion implicite entre les chaînes de caractères et les octets, donc si vous n’êtes pas sûr de savoir à quel type vous avez affaire à un moment donné, votre code va presque certainement mal fonctionner. Lisez <a href=strings.html>le chapitre sur les chaînes de caractères</a> pour plus de détails.

<p>Bytes vs. strings comes up again and again throughout the book.
<p>Les différences entre octets et chaînes de caractères reviennentt de façon récurrente tout au long du livre.

<ul>
<li>In <a href=files.html>Files</a>, you&#8217;ll learn the difference between reading files in &#8220;binary&#8221; and &#8220;text&#8221; mode. Reading (and writing!) files in text mode requires an <code>encoding</code> parameter. Some text file methods count characters, but other methods count bytes. If your code assumes that one character == one byte, it <em>will</em> break on multi-byte characters.
<li>In <a href=http-web-services.html><abbr>HTTP</abbr> Web Services</a>, the <code>httplib2</code> module fetches headers and data over <abbr>HTTP</abbr>. <abbr>HTTP</abbr> headers are returned as strings, but the <abbr>HTTP</abbr> body is returned as bytes.
<li>In <a href=serializing.html>Serializing Python Objects</a>, you&#8217;ll learn why the <code>pickle</code> module in Python 3 defines a new data format that is backwardly incompatible with Python 2. (Hint: it&#8217;s because of bytes and strings.) Also, Python 3 supports serializing objects to and from <abbr>JSON</abbr>, which doesn&#8217;t even have a <code>bytes</code> type. I&#8217;ll show you how to hack around that.
<li>In <a href=case-study-porting-chardet-to-python-3.html>Case study: porting <code>chardet</code> to Python 3</a>, it&#8217;s just a bloody mess of bytes and strings everywhere.
<li>Dans <a href=files.html>Fichiers</a>, vous apprendrez la différence entre lire des fichiers en mode «&nbsp;binaire&nbsp;» et en mode «&nbsp;texte&nbsp;». Lire (et écrire&nbsp;!) les fichiers en mode texte nécessite un paramètre <code>encoding</code> (encodage). Certaines méthodes concernant les fichiers texte comptent les caractères, d’autres les octets. Si votre code suppose qu’un caractère == un octet, il <em>va</em> mal fonctionner sur les caractères de plusieurs octets.
<li>Dans <a href=http-web-services.html>Services Web <abbr>HTTP</abbr></a>, le module <code>httplib2</code> récupère les en-têtes et les données qui transitent par <abbr>HTTP</abbr>. Les en-têtes <abbr>HTTP</abbr> sont renvoyées sous forme de chaînes de caractères, mais le corps <abbr>HTTP</abbr> est renvoyé sous forme d’octets.
<li>Dans <a href=serializing.html>Sérialisation d’objets Python</a>, vous apprendrez pourquoi le module <code>pickle</code> dans Python 3 définit un nouveau format de données qui n’est pas rétrocompatible avec Python 2 (Indice&nbsp;: c’est à cause des octets et des chaînes de caractères). De plus, Python 3 supporte la sérialisation d’objets vers et depuis <abbr>JSON</abbr>, qui n’a même pas de type <code>bytes</code>. Je vais vous montrer comment bidouiller pour contourner ça.
<li>Dans <a href=case-study-porting-chardet-to-python-3.html>Étude de cas&nbsp;: porter <code>chardet</code> à Python 3</a>, c’est simplement un satané bazar d’octets et de chaînes de caractères, partout.
</ul>

<p>Even if you don&#8217;t care about Unicode (oh but you will), you&#8217;ll want to read about <a href=strings.html#formatting-strings>string formatting in Python 3</a>, which is completely different from Python 2.
<p>Même si vous vous fichez d’Unicode (ce qui ne va pas être le cas bien longtemps), vous voudrez en savoir plus sur <a href=strings.html#formatting-strings>le formatage des chaînes de caractères dans Python 3</a>, qui est complètement différent de celui de Python 2.

<p>Iterators are everywhere in Python 3, and I understand them a lot better than I did five years ago when I wrote &#8220;Dive Into Python&#8221;. You need to understand them too, because lots of functions that used to return lists in Python 2 will now return iterators in Python 3. At a minimum, you should read <a href=iterators.html#a-fibonacci-iterator>the second half of the Iterators chapter</a> and <a href=advanced-iterators.html#generator-expressions>the second half of the Advanced Iterators chapter</a>.
<p>Les itérateurs sont partout dans Python 3, et je les comprends beaucoup mieux que cinq ans plus tôt, quand j’ai écrit «&nbsp;Plongez dans Python&nbsp;». Vous devez les comprendre vous aussi, car beaucoup de fonctions qui renvoyaient des listes dans Python 2 renvoient désormais des itérateurs dans Python 3. Au minimum, vous devez lire <a href=iterators.html#a-fibonacci-iterator>la seconde moitié du chapitre sur les itérateurs</a> et <a href=advanced-iterators.html#generator-expressions>la seconde moitié du chapitre sur les itérateurs avancés</a>.

<p>By popular request, I&#8217;ve added an appendix on <a href=special-method-names.html>Special Method Names</a>, which is kind of like <a href=http://www.python.org/doc/3.1/reference/datamodel.html#special-method-names>the Python docs &#8220;Data Model&#8221; chapter</a> but with more snark.
<p>En réponse à une forte demande, j’ai ajouté une annexe sur le <a href=special-method-names.html>Nom de méthodes spéciales</a>, qui est un peu comme le <a href=http://www.python.org/doc/3.1/reference/datamodel.html#special-method-names>chapitre sur les modèles de données de la documentation Python</a> mais avec plus de piquant.

<p>When I was writing &#8220;Dive Into Python&#8221;, all of the available XML libraries sucked. Then Fredrik Lundh wrote <a href=http://effbot.org/zone/element-index.htm>ElementTree</a>, which doesn&#8217;t suck at all. The Python gods wisely <a href=http://docs.python.org/3.1/library/xml.etree.elementtree.html>incorporated ElementTree into the standard library</a>, and now it forms the basis for <a href=xml.html>my new XML chapter</a>. The old ways of parsing XML are still around, but you should avoid them, because they suck!
<p>Quand j’ai écrit «&nbsp;Plongez dans Python&nbsp;», toutes les bibliothèques XML disponibles étaient mauvaises. Puis Fredrik Lundh écrivit <a href=http://effbot.org/zone/element-index.htm>ElementTree</a>, qui n’était pas du tout mauvais. Le dieu Python <a href=http://docs.python.org/3.1/library/xml.etree.elementtree.html>incorpora sagement ElementTree dans la bibliothèque standard</a>, et maintenant c’est la base de mon <a href=xml.html>nouveau chapitre sur XML</a>. L’ancienne façon d’analyser (NdT&nbsp;: on utilise aussi l’anglicisme «&nbsp;parser&nbsp;») du XML est toujours présente, mais vous devez l’éviter, car elle est mauvaise&nbsp;!

<p>Also new in Python&nbsp;&mdash;&nbsp;not in the language but in the community&nbsp;&mdash;&nbsp;is the emergence of code repositories like <a href=http://pypi.python.org/>The Python Package Index</a> (PyPI). Python comes with utilities to package your code in standard formats and distribute those packages on PyPI. Read <a href=packaging.html>Packaging Python Libraries</a> for details.
<p>Ce qui est aussi nouveau dans Python&nbsp;—&nbsp;pas dans le langage mais dans la communauté&nbsp;—&nbsp;est l’émergence de dépôts de code comme <a href=http://pypi.python.org/>The Python Package Index</a> (PyPI). Python est livré avec des utilitaires qui servent à empaqueter votre code dans des formats standards et distribuer ces paquets sur PyPI. Lisez <a href=packaging.html>Packaging de librairies Python</a> pour plus de détails.

<p class=c>&copy; 2001&ndash;11 <a href=about.html>Mark Pilgrim</a>