IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 Community Management

49PARTAGES

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-nous-la !

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 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