7 superbes livres Python pour chaque niveau de compétence

Plus un langage de programmation est populaire ou puissant, meilleures sont les chances de trouver non seulement de nombreux livres à ce sujet, mais une diversité de livres. Comme Python a gagné en popularité, le nombre et la variété des livres créés pour aider les gens à apprendre la langue et à en maîtriser les subtilités ont augmenté.

Voici sept des meilleurs livres sur la programmation avec Python, allant des guides du débutant à la maîtrise de Power-Python. Que vous soyez débutant ou que vous travailliez avec Python depuis un certain temps, il y a probablement un livre ici pour vous. Quelques-uns sont disponibles en éditions en ligne ou PDF gratuitement. 

Automatisez les choses ennuyeuses avec Python

La plupart des introductions aux langages de programmation, ou à la programmation en général, sont conceptuelles. Ils parlent de programmation dans l'abstrait. Automate the Boring Stuff with Python de Rob Sweigart   parle de programmation en particulier: il utilise un cours de Python pour apprendre à transformer des tâches fastidieuses en scripts Python accrocheurs.

Automate  s'adresse aux débutants en Python et en informatique en général. Il s'ouvre en mettant le lecteur à l'aise avec un simple IDE (l'éditeur «Mu»), puis les guide à travers l'utilisation de l'entrée, le contrôle de flux, les fonctions, les collections d'objets (listes, dictionnaires), la validation des entrées et de la correspondance de modèles, et l'utilisation des dossiers.

La seconde moitié du livre est davantage axée sur les tâches et les projets. Il couvre les tâches d'automatisation courantes: travailler avec des feuilles de calcul et des documents texte, envoyer des e-mails, manipuler des images et automatiser les interactions GUI.

Ce qui fait d'  Automate  un livre précieux pour débutants, c'est la façon dont il intègre, tout au long du parcours, des projets adaptés au niveau actuel de la leçon - comme un simple (quoique verbeux) jeu de ciseaux papier-pierre pour enseigner le contrôle de flux, ou un Générateur Pig Latin pour enseigner la manipulation des cordes. Cela prend également le temps de définir, encore et encore, comment traduire ce que nous voulons faire (d'abord ceci, puis ceci, puis ceci) dans ce que fait le programme.

Automatiser les trucs ennuyeux avec Python  est disponible en plusieurs formats: une édition en ligne gratuite, des ebooks et des éditions imprimées, et un cours Udemy (50 vidéos).

Amazon: //www.amazon.com/Automate-Boring-Stuff-Python-2nd/dp/1593279922

Un octet de Python

«Sans prétention» est le meilleur mot pour décrire A Byte of Python de Swaroop Chitlur  . C'est de loin le guide le plus simple et le plus accessible de Python, mais aussi l'un des moins décorés. Il n'utilise pas de gadgets, de projets ou d'illustrations mignonnes, mais les omettre fait également partie de ses plus grandes forces: rien ne s'interpose entre le lecteur et les leçons.

Le livre guide le lecteur dans un premier temps à travers l'installation et la configuration d'une instance Python, puis l'utilisation du REPL et d'un éditeur (PyCharm y obtient l'essentiel de la couverture). À partir de là, il parcourt les variables et les types, les opérateurs, le flux de contrôle, les fonctions, les modules, les structures de données (y compris les classes, bien qu'il y ait un chapitre complet sur la POO), les E / S, les exceptions et des aperçus rapides de notions telles que les compréhensions de listes et les décorateurs.

Le livre présente quelques légers inconvénients. Le premier est l'organisation: les entrées et les sorties sont traitées assez tardivement, alors que la plupart des didacticiels l'enseignent beaucoup plus tôt. De plus, certains éléments qui méritent d'être dans une vue d'ensemble de base de Python, comme les gestionnaires de contexte, ne sont pas du tout couverts. Mais dans l'ensemble, le livre est une bonne introduction sans fioritures à la langue.

A Byte of Python  est nominalement disponible gratuitement sous forme de livre Web, mais est également disponible en téléchargement PDF et en version papier imprimée. De nombreuses traductions vers des langues autres que l'anglais existent également.

Amazon (Kindle uniquement): //www.amazon.com/Byte-Python-Swaroop-CH-ebook/dp/B00FJ7S2JU

Apprendre Python, 5e édition

Programmation Python, 4e édition

Pour l'exhaustivité et le tout-en-un, rien ne vaut Learning Python  et  Programming Python de Mark Lutz  . Les deux livres comptent plus de seize cents pages  chacun , mais ne vous laissez pas effrayer par leur taille - ils sont destinés à être digérés par voie topique, plutôt que lus de bout en bout.

À peu près tous les sujets de Python, à partir de Python 3.3, sont couverts dans  Learning Python et traités de manière exhaustive. Si vous voulez apprendre tout ce qu'il y a à savoir sur les décorateurs, par exemple, le chapitre sur ce sujet constitue un mini-cours sur le sujet.

La programmation de Python  consiste à utiliser Python pour créer des applications du monde réel. Plutôt que d'illustrer simplement les composants du langage, il explore la programmation système, les interfaces graphiques, les clients et serveurs Internet, les bases de données, l'intégration avec C, et bien plus encore.

Le plus gros inconvénient de Learning Python  n'est pas sa taille, mais son âge. La 5ème édition est sortie en 2013, couvrant à la fois Python 3.3 et 2.7, elle ne couvre donc pas la plupart des innovations importantes apportées à Python depuis lors. À partir de 2016, Lutz n'avait pas l'intention de le mettre à jour, en partie en raison de ses difficultés documentées avec l'éditeur. 

Amazon: //www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730; //www.amazon.com/Programming-Python-Powerful-Object-Oriented-dp-0596158106/dp/0596158106/

Python haute performance: programmation pratique et performante pour les humains

Toute personne intéressée à distance pour rendre Python plus rapide ou plus efficace devrait ajouter ce livre à sa collection.

«Python» et «haute performance» ne sont pas souvent parlés dans le même souffle. Ce que Python vous offre en termes de commodité, il le retire en vitesse brute au niveau de la machine. Mais cela ne signifie pas que Python haute vitesse est impossible; comme beaucoup de choses «impossibles», cela demande juste un peu plus de travail.

High Performance Python: Practical Performant Programming for Humans , par Micha Gorelick et Ian Ozsvald, guide les programmeurs Python expérimentés à travers toutes les façons dont le code Python peut être rendu plus rapide, de la simple optimisation pure-Python au roulement de code C personnalisé. Le livre commence par une plongée dans le profilage d'applications, une compétence clé pour diagnostiquer et corriger les problèmes de performances avec n'importe quelle application Python, puis explore successivement des optimisations spécifiques:

  • Modèles d'accès et performances big-O de diverses structures de données, comme des listes par rapport aux dictionnaires et aux ensembles.
  • Comment les générateurs peuvent être utilisés pour économiser de la mémoire pour les gros problèmes de calcul.
  • Utilisation de matrices et de vecteurs - essentiellement, une introduction à l'utilisation de NumPy et Pandas pour des mathématiques plus rapides.
  • Utilisation de Cython, Numba, PyPy et d'autres compilateurs et runtimes tiers pour une vitesse au niveau de la machine. Une discussion de chacun de ceux-ci pourrait occuper un livre entier (dans le cas de Cython, c'est le cas) en soi, donc seuls les cas d'utilisation les plus basiques et les plus courants sont couverts ici. Mais vous serez bien préparé pour un apprentissage ultérieur.
  • Utilisation de la programmation asynchrone pour accélérer plusieurs opérations dépendant des E / S.
  • Utiliser le multitraitement pour éviter le GIL et utiliser le clustering et les files d'attente de travaux pour diviser davantage le travail.

Un long chapitre est également abordé avec des notes sur les solutions aux problèmes de performances Python du monde réel, y compris le déploiement de pipelines d'apprentissage automatique. La deuxième édition du livre met à jour le texte des dernières versions de Python et comprend des informations sur l'utilisation des GPU.

Amazon: //www.amazon.com/High-Performance-Python-Performant-Programming/dp/1492055026/

Python courant

Une fois que vous maîtrisez les bases, que faire ensuite? Fluent Python  répond à cette question.

Les programmeurs qui connaissent déjà suffisamment Python pour écrire leurs propres programmes ont souvent du mal à passer à l'étape suivante: utiliser l'ensemble de fonctionnalités uniques de Python pour écrire des logiciels vraiment puissants.  Fluent Python , de Luciano Ramalho, guide le programmeur à travers de nombreux aspects clés de Python mis à profit par des experts: maîtrise du modèle de données Python et des «méthodes dunder», utilisation avancée de collections de données comme des ensembles et des dictionnaires, création d'objets qui fonctionnent comme des enregistrements (pas juste des classes, mais des tuples et des classes de données nommés), en utilisant des fonctions comme objets, des indications de type, et bien plus encore.

Bien que certains éléments (par exemple, les lambdas) ne soient pas nouveaux, même pour les programmeurs Python moyennement expérimentés, le livre montre comment ces éléments sont précieux pour les programmeurs avancés. Même si vous avez déjà utilisé ces fonctionnalités Python, le livre vous montrera comment construire des programmes plus robustes avec eux, et comment choisir judicieusement entre des alternatives similaires (par exemple, structs et memoryviews) pour un travail avancé.

Au moment d'écrire ces lignes, Fluent Python, 2nd Edition  est disponible en tant que version préliminaire avec un abonnement O'Reilly, ou il peut être précommandé sur Amazon.

Amazon: //www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1492056359

Pensez Python

Le sous-titre de ce livre est «Comment penser comme un informaticien», ce qui vous donne un aperçu des intentions du livre. Think Python , par Allen B.Downey, est un guide d'apprentissage de Python destiné aux débutants, mais son objectif plus large est d'aider le lecteur à comprendre en quoi consiste la programmation, ce que signifie être programmeur et pourquoi les programmes informatiques fonctionnent comme il se doit. ils font. Python n'est que l'arène dans laquelle ces idées sont explorées. Étant donné la facilité d'apprentissage de Python, c'est un choix judicieux.

Think Python  commence par des concepts formels - qu'est-ce qu'un programme, que sont les entrées et les sorties, quels sont les types et les valeurs et comment les programmes traitent les informations en ces termes. À partir de là, le livre passe à la façon dont les instructions et les ordres d'opération fonctionnent, et comment les instructions peuvent être enchaînées en expressions et fonctions. La gestion des conditions et le flux de contrôle, l'itération, les types de collection (chaînes, listes, dictionnaires), les E / S de fichiers, les classes et l'héritage, ainsi qu'une multitude de fonctionnalités Python utiles étiquetées «Goodies», reçoivent tous leurs propres chapitres.

Ce qui est le plus attrayant à propos de  Think Python , en dehors de son langage clair et direct, c'est la façon dont il relie constamment chaque information aux thèmes centraux du fonctionnement des ordinateurs et des programmes informatiques, et aux techniques utilisées dans la programmation pour atteindre leurs objectifs. Pour les nouveaux arrivants, c'est plus important qu'ils ne le pensent au premier abord.

Think Python  est disponible sous forme de livre électronique gratuit au format PDF ou HTML. 

Amazon: //www.amazon.com/gp/product/1491939362