Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Plongée dans Python - Chapitre 2. Les types de données natifs
Un extrait du livre de Mark Pilgrim

Le , par Laethy

30PARTAGES

6  0 
Chers membres du club,

J'ai le plaisir de vous proposer la traduction du second chapitre du livre Dive into Python 3 de Mark Pilgrim. Dans ce chapitre, vous allez apprendre à utiliser les types de données natifs.

Python a de nombreux types de données natifs. Voici les plus importants :

  • Les booléens (booleans) sont vrais ou faux (valeurs True ou False).
  • Les nombres (numbers) peuvent être des entiers (1 et 2), des nombres à virgule flottante (1.1 et 1.3) des fractions (1/2 et 2/3) ou même des nombres complexes.
  • Les chaînes (strings en anglais et en Python) sont des séquences de caractères Unicode, par exemple un document HTML.
  • Les octets et les tableaux d’octets représentent par exemple une image JPEG.
  • Les listes sont des séquences ordonnées de valeurs.
  • Les tuples sont des séquences ordonnées mais immuables de valeurs.
  • Les sets ou ensembles sont des conteneurs de valeurs en vrac.
  • Les dictionnaires sont des ensembles non ordonnés de paires clé-valeur.


Il y a bien entendu plus de types que cela. Tout est objet en Python, ainsi y a-t-il des types comme module, function, class, method, file (fichier), et même compiled code (code compilé). Vous en avez déjà rencontré certains : les modules ont des noms, les fonctions ont des docstrings, etc. Vous en apprendrez davantage sur les classes dans le chapitre Classes et itérateurs, et à propos des fichiers dans le chapitre Fichiers.
Bonne lecture .

Retrouvez les meilleurs cours et tutoriels pour apprendre Python.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de domi_lou
Candidat au Club https://www.developpez.com
Le 14/06/2019 à 9:34
Bravo, clair, précis,logique, bien expliqué de manière suynthétique par rapport à d'autres cours en ligne
0  0 
Avatar de Julien N
Membre éprouvé https://www.developpez.com
Le 15/06/2019 à 16:31
Salut Sve@r,

Sans vouloir répondre à la place de Leathy, ces textes étant des traductions, les explications hazardeuses, voire trompeuses sont les originales. Je ne sais pas s'il nous ait possible de les corriger. Ce serait transformer le message de l'auteur original sans son consentement. Ce problème a certainement déjà été évoqué à plusieurs reprises. Une solution ou une réponse existe donc peut être (un commentaire, ou note de bas de page pourrait être ajouté).

J

PS: je ne suis pas le traducteur de ce chapitre.
0  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 15/06/2019 à 17:16
Salut,

Si on reprend l'original:
① The / operator performs floating point division. It returns a float even if both the numerator and denominator are ints.
② The // operator performs a quirky kind of integer division. When the result is positive, you can think of it as truncating (not rounding) to 0 decimal places, but be careful with that.
③ When integer-dividing negative numbers, the // operator rounds “up” to the nearest integer. Mathematically speaking, it’s rounding “down” since −6 is less than −5, but it could trip you up if you were expecting it to truncate to −5.
④ The // operator doesn’t always return an integer. If either the numerator or denominator is a float, it will still round to the nearest integer, but the actual return value will be a float.
⑤ The ** operator means “raised to the power of.” 112 is 121.
⑥ The % operator gives the remainder after performing integer division. 11 divided by 2 is 5 with a remainder of 1, so the result here is 1.
C'est aussi confus...
Mais bon, quand on écrit un tuto. on se laisse aller à des explications avec les mains qui ne sont pas toujours très heureuses/cohérentes.
Peut être que c'est une remarque à faire suivre à Mark Pilgrim qui voudra bien l'intégrer dans une prochaine version.

- W
0  0 
Avatar de loftn
Nouveau Candidat au Club https://www.developpez.com
Le 26/08/2019 à 8:44
Salut,

C'est une bonne initiative de proposer une traduction du livre, même s'il est vrai que pouvoir corriger certains points qui ne sont pas toujours très clairs serait encore mieux. Mais l'argument donné plus haut est valide.

J'ai néanmoins relevé quelques erreurs (sauf erreurs de typo) :

III-D-2. Découper une liste (avant ce point, je n'ai pas pensé à noter ce que je pouvais trouver)

En fait a_list[n:] retourne toujours les n premiers éléments et a_list[:n] retourne le reste de la liste, quelle que soit la longueur de la liste.
C'est l'inverse :
a_list[:n] retourne toujours les n premiers éléments et a_list[n:] retourne le reste de la liste
IV-C. Compréhensions de listes
avec la taille de chaque fichier .xlm.
Problème sur l'extension

IV-B-2. Travailler avec des noms de fichiers et de dossiers
*N'écrivez pas* cette fonction stupide en Python
Initialement, "N'écrivez pas" doit être en italique ? (si c'est du markdown)

IV-E. Compréhensions de sets
que des *valeurs* en lieu et place des paires clef/valeur des dictionnaires
Même remarque que précédemment pour "valeurs"

Bref, bon boulot
0  0 
Avatar de Laethy
Community Manager https://www.developpez.com
Le 29/03/2020 à 23:42
Chers membres du club,

J'ai le plaisir de vous présenter la traduction du quatrième chapitre du livre Dive into Python 3 de Mark Pilgrim. Ce chapitre se charge de vous apprendre à utiliser les chaînes de caractère.

Quand vous parlez de « texte », vous pensez probablement aux « caractères et symboles sur l'écran de mon ordinateur ». Mais les ordinateurs ne travaillent pas avec des caractères et des symboles ; ils fonctionnent avec des bits et des octets. Chaque morceau de texte que vous avez vu sur un écran d'ordinateur est en fait stocké grâce à un encodage de caractères particulier. Dit grossièrement, l‘encodage de caractères fournit une correspondance entre ce que vous voyez à l'écran et ce que votre ordinateur stocke effectivement en mémoire et sur le disque. Il y a de nombreux systèmes d’encodage des caractères, certains optimisés pour une langue en particulier, comme le russe ou le chinois ou l'anglais, et d'autres qui peuvent être utilisés pour de multiples langages.
Bonne lecture

Retrouvez les meilleures cours et tutoriels pour apprendre
0  0 
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 15/06/2019 à 10:05
Bonjour

Je ne sais pas si on peut intervenir (mais sinon un modo supprimera mon post, c'est pas grave).
Je n'aime pas trop cette phrase "L’opérateur // effectue des divisions entières un peu particulières.". L'opérateur // effecute une division euclidienne. C'est une notion parfaitement connue de tous les mathématiciens et n'est pas plus particulière que les autres opérations élémentaires (addition, soustraction, multiplication et division).

Ensuite cette seconde phrase "L’opérateur // ne retourne pas toujours un entier. Si soit le numérateur, soit le dénominateur est un flottant (float), il arrondit quand même à l’entier le plus proche, mais la valeur retournée sera un flottant." est vraiment à refaire.
Déjà pour la première partie, il n'y a aucune raison de préciser qu'il ne retourne pas toujours un entier vu que rien ne laisse penser que cette opération (ou les autres) devrait retourner un entier. Il serait peut-être d'ailleurs bon de faire une phrase plus générale sur le typage du résultat qui dépend du typage le plus large des opérandes mis en jeu dans le calcul plutôt que de parler de "certaines opérations vont convertir les entiers en flottants" sous-entendant que la logique de cette conversion restera à jamais un mystère mais bon, là je m'écarte.
Mais pour la seconde partie là c'est totalement faux. Il n'arrondit pas à l'entier le plus proche mais à l'entier inférieur (division euclidienne). Essaye 7.8 // 2.0 et tu verras.

Sinon j'apprécie l'effort (j'ai bien aimé le pargraphe sur l'addition des True et False, je n'y avais jamais pensé). J'espère que mes remarques ne te blesseront pas, ce n'est pas leur but (moi aussi j'écris des cours).

Cordialement
1  2