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 1. Votre premier programme Python
Un extrait du livre de Mark Pilgrim

Le , par Laethy

24PARTAGES

13  0 
Chers membres du club,

J'ai le plaisir de vous présenter la traduction du chapitre 1 du livre Dive into Python 3 écrit par Mark Pilgrim. Ce chapitre va vous apprendre à écrire votre premier programme Python.

Les conventions usuelles voudraient que je démarre ce tutoriel en vous ennuyant avec les éléments fondamentaux de la programmation afin que nous puissions travailler doucement pour construire quelque chose d’utile. Passons outre. Voici un exemple de programme Python complet, et qui fonctionne. Il n’a probablement aucun sens pour vous. Ne vous inquiétez pas : on va le disséquer ligne par ligne. Mais commencez par le lire et voyez ce que vous pouvez en comprendre.

Bonne lecture .

Retrouvez les meilleurs cours et tutoriels pour apprendre Python.

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

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  0 
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
Modérateur 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