![Python 3 - eni - 9782409040443 -](https://www.unitheque.com/Intermediaire3/CouvertureP/Y/9782409040443-python_g.jpg)
Python 3
Les fondamentaux du langage
Ce livre sur les fondamentaux du langage Python 3 (ici en version 3.11) s'adresse à tout professionnel de l'informatique, ingénieur, étudiant (et particulièrement en BTS Services Informatiques Organisations), enseignant ou même autodidacte, qui [...]
[lire le résumé du livre]
Auteur : Sébastien CHAZALLET
Editeur : Eni
Date parution : 06/2023 4e éditionCB Google/Apple Pay, Chèque, Virement
Quel est le sujet du livre "Python 3"
Ce livre sur les fondamentaux du langage Python 3 (ici en version 3.11) s'adresse à tout professionnel de l'informatique, ingénieur, étudiant (et particulièrement en BTS Services Informatiques Organisations), enseignant ou même autodidacte, qui souhaite maîtriser ce langage très abouti. Il détaille tout le cœur du langage et du traitement de données et ouvre des perspectives importantes sur tout ce que Python 3 permet de faire. Le livre est consacré à la branche 3 de Python et présente bien sûr les nouveautés apportées par la version 3.11. Toutefois, comme le langage Python 2 est encore très présent, lorsqu'elles existent, l'auteur présente les différences importantes avec la branche antérieure de Python.
La première partie du livre détaille les atouts de Python 3 pour répondre aux besoins des entreprises quel que soit le domaine informatique concerné.
La seconde partie est un guide à destination des débutants, que ce soit en Python ou en développement en général. Elle permet d'aborder en douceur les concepts clés autour de projets servant de fil rouge et propose la réalisation de quelques exercices.
La troisième partie porte sur les fondamentaux du langage : les notions sont présentées progressivement avec des exemples de code qui illustrent chaque propos. L'auteur a souhaité que le lecteur atteigne une autonomie réelle dans son apprentissage, avec pour chaque notion présentée deux objectifs distincts : permettre à celui qui ne connaît pas la notion de se l'approprier correctement et permettre à celui qui la connaît de trouver des angles d'attaque originaux pour aller le plus loin possible dans son exploitation.
La quatrième partie permet d'avoir un aperçu de l'utilisation des fonctionnalités de Python 3 pour la manipulation de fichiers ou de bases de données.
Enfin, la dernière partie de l'ouvrage est un vaste tutoriel qui permet de mettre en pratique, dans un cadre professionnel, tout ce qui a été vu précédemment en créant une application qui couvre tous les domaines courants du développement (données, Web avec Pyramid, interface graphique avec Gtk, script système...) et ainsi de présenter des solutions efficaces de développement utilisant Python 3.
Le code source des parties 2, 4 et 5 est intégralement téléchargeable sur le site www.editions-eni.fr.Téléchargements
Sébastien CHAZALLET Expert technique Python / Django et Web Backend / Frontend, Sébastien Chazallet intervient en tant qu’indépendant sur de longues missions de développement, d'audit, d'expertise et de formation (www.formation-python.fr, www.inspyration.fr). Ses réalisations portent sur des développements autour de Python sur des projets de grande envergure, essentiellement des applications intranet sur mesure avec Django, mais également sur des applications de bureau, des scripts systèmes, la création de sites web ou de e-commerce.
Sommaire et contenu du livre "Python 3 - Les fondamentaux du langage"
Avant-propos
- 1. Introduction
- 2. Contenu de l’ouvrage
- 3. Progressivité de l'ouvrage
- 4. À destination des enseignants et élèves
- 5. À destination des chercheurs ou doctorants
- 6. À destination de ceux qui viennent d’un autre langage
Clés théoriques
- 1. Petite histoire des langages informatiques
- 1.1 Informatique théorique
- 1.2 Chronologie de l’informatique
- 1.2.1 Évolutions des problématiques liées à l’informatique
- 1.2.2 Chronologie des langages informatiques
- 2.1 Paradigmes
- 2.1.1 Définition
- 2.1.2 Paradigme impératif et dérivés
- 2.1.3 Paradigme objet et dérivés
- 2.1.4 Programmation orientée aspect
- 2.1.5 Paradigme fonctionnel
- 2.1.6 Paradigme logique
- 2.1.7 Programmation concurrente
- 2.1.8 Synthèse
- 2.3.1 Machine
- 2.3.2 Bas niveau
- 2.3.3 Haut niveau
- 2.4.1 Faible vs fort
- 2.4.2 Statique vs dynamique
- 2.5.1 Langages formels
- 2.5.2 Syntaxe
- 3.1 Positionnement stratégique du langage Python
- 3.1.1 Segments de marchés
- 3.1.2 Niveau de complexité
- 3.1.3 Forces du langage
- 3.1.4 Points faibles
- 3.2.1 Extensions C
- 3.2.2 Intégration de programmes écrits en C
- 3.2.3 Intégration de programmes Python dans du C
- 3.2.4 Intégration de programmes écrits en Java
- 3.2.5 Intégration de programmes Python dans Java
- 3.2.6 Autres intégrations
Présentation de Python
- 1. Philosophie
- 1.1 Python en quelques lignes
- 1.1.1 D’où vient le nom « Python » ?
- 1.1.2 Présentation technique
- 1.1.3 Présentation conceptuelle
- 1.1 Python en quelques lignes
- 1.2 Comparaison avec d’autres langages
- 1.2.1 Shell
- 1.2.2 Perl
- 1.2.3 C, C++
- 1.2.4 Java
- 1.2.5 PHP
- 1.3 Grands principes
- 1.3.1 Le zen de Python
- 1.3.2 Le développeur n’est pas stupide
- 1.3.3 Documentation
- 1.3.4 Python est livré piles incluses
- 1.3.5 Duck Typing
- 1.3.6 Notion de code pythonique
- 2.1 La genèse
- 2.2 Extension du périmètre fonctionnel
- 2.3 Évolution de la licence
- 2.4 Avenir
- 3.1 Développement
- 3.1.1 Branches
- 3.1.2 Communauté
- 3.2.1 Créateur du langage
- 3.2.2 PEP
- 3.2.3 Prise de décisions
- 3.2.4 Contribuer à Python
- 4.1 Une grammaire et une syntaxe
- 4.2 Plusieurs implémentations
- 4.3 Une bibliothèque standard
- 4.4 Des bibliothèques tierces
- 4.5 Des frameworks
- 5.1 Chargement de la machine virtuelle
- 5.2 Compilation
- 5.3 Interprétation
Pourquoi choisir Python
- 1. Qualités du langage
- 1.1 Ticket d’entrée
- 1.2 Qualités intrinsèques
- 1.3 Couverture fonctionnelle
- 1.4 Domaines d’excellence
- 1.5 Garanties
- 2. Diffusion
- 2.1 Entreprises
- 2.2 Le monde de la recherche
- 2.3 Le monde de l’éducation
- 2.4 Communauté
- 3. Références
- 3.1 Poids lourds de l’industrie informatique
- 3.1.1 Google
- 3.1.2 Mozilla
- 3.1.3 Microsoft
- 3.1.4 Canonical
- 3.1.5 Cisco
- 3.1 Poids lourds de l’industrie informatique
- 3.2 Entreprises innovantes
- 3.2.1 Services de stockage en ligne
- 3.2.2 Informatique dématérialisée
- 3.2.3 Forge
- 3.2.4 Réseaux sociaux
- 3.3 Éditeurs de contenus
- 3.3.1 Disney Animation Studio
- 3.3.2 YouTube
- 3.3.3 Box ADSL
- 3.3.4 Spotify
- 3.4 Éditeurs de logiciels
- 4.1 Internet des objets
- 4.2 Système et développement web
- 4.3 Enseignement
- 4.4 Embarqué
- 4.5 Développement web
- 4.6 ERP
Installer son environnement de travail
- 1. Introduction
- 2. Installer Python
- 2.1 Pour Windows
- 2.2 Pour Mac
- 2.3 Pour GNU/Linux et BSD
- 2.4 Par la compilation
- 2.5 Pour un smartphone
- 3. Installer une bibliothèque tierce
- 3.1 À partir de Python 3.4
- 3.2 Pour une version inférieure à Python 3.4
- 3.3 Pour Linux
- 4. Créer un environnement virtuel
- 4.1 À quoi sert un environnement virtuel ?
- 4.2 Pour Python 3.3 ou version supérieure
- 4.3 Pour toute version de Python
- 4.4 Pour Linux
- 5. Gestion des dépendances
- 6. Installer Anaconda
- 6.1 Pour Windows
- 6.2 Pour Linux
- 6.3 Pour Mac
- 6.4 Mettre à jour Anaconda
- 6.5 Installer une bibliothèque externe
- 6.6 Environnements virtuels
- 7. Docker
- 8. La console Python
- 8.1 Démarrer la console Python
- 8.2 BPython
- 8.3 IPython
- 8.4 IPython Notebook
- 9. Installer un IDE
- 9.1 Liste d'IDE
- 9.2 Présentation de PyCharm
- 9.3 Configuration de PyCharm
- 10. VSCode
Les premiers pas
- 1. Avant de commencer
- 1.1 Quelques notions importantes
- 1.1.1 Comment fonctionne un ordinateur ?
- 1.1.2 Qu'est-ce qu’un programme informatique ?
- 1.1.3 Qu'est-ce qu'un code source ?
- 1.1 Quelques notions importantes
- 1.2 Quelques conventions utilisées dans ce livre
- 1.2.1 Code Python
- 1.2.2 Terminal
- 1.2.3 Mise en forme
- 1.3 Quelle est la meilleure méthode pour apprendre ?
- 2.1 Hello world !
- 2.2 Affectation
- 2.3 Valeur booléenne
- 2.4 Type
- 2.5 Exceptions
- 2.6 Bloc conditionnel
- 2.7 Conditions avancées
- 2.8 Bloc itératif
- 3.1 Description du jeu
- 3.2 Aides
- 3.2.1 Gestion du hasard
- 3.2.2 Étapes de développement
Fonctions et modules
- 1. Les fonctions
- 1.1 Pourquoi utiliser des fonctions ?
- 1.2 Introduction aux fonctions
- 1.2.1 Comment déclarer une fonction
- 1.2.2 Gestion d'un paramètre
- 1.2.3 Comment rendre une fonction plus générique
- 1.2.4 Paramètres par défaut
- 1.3 Problématiques de couplage et duplication de code
- 1.3.1 Niveau de ses fonctions
- 1.3.2 Notion de complexité
- 1.3.3 Bonnes pratiques
- 2.1 Introduction
- 2.1.1 Qu'est-ce qu'un module ?
- 2.1.2 Comment crée-t-on un module Python ?
- 2.1.3 Organiser son code
- 2.2.1 Exécuter un module, importer un module
- 2.2.2 Gérer une arborescence de modules
- 3.1 Créer des niveaux
- 3.2 Déterminer un nombre de coups maximal
- 3.3 Enregistrer les meilleurs scores
- 3.4 Intelligence artificielle
Les principaux types
- 1. Chaînes de caractères
- 1.1 Syntaxe
- 1.2 Formatage d'une chaîne
- 1.3 Notion de casse
- 1.4 Notion de longueur
- 1.5 Appartenance
- 1.6 Notion d’occurrence
- 1.7 Remplacement
- 1.8 Notion de caractère
- 1.9 Typologie des caractères
- 1.10 Séquencer une chaîne de caractères
- 2. Listes
- 2.1 Syntaxe
- 2.2 Indices
- 2.3 Valeurs
- 2.4 Hasard
- 2.5 Techniques d'itération
- 2.6 Tri
- 3. Dictionnaires
- 3.1 Présentation des dictionnaires
- 3.2 Parcourir un dictionnaire
- 3.3 Exemple
Les classes
- 1. Syntaxe
- 2. Notion d'instance courante
- 3. Opérateurs
- 4. Héritage
- 4.1 Spécialisation
- 4.2 Programmation par composants
Algorithmique de base
- 1. Délimiteurs
- 1.1 Instruction
- 1.2 Une ligne de code = une instruction
- 1.3 Commentaire
- 1.4 Une instruction sur plusieurs lignes
- 1.5 Mots-clés
- 1.6 Mots réservés
- 1.7 Indentation
- 1.8 Symboles
- 1.9 Opérateurs
- 1.10 Utilisation du caractère souligné
- 1.11 PEP-8
- 1.12 PEP-7
- 1.13 PEP-257
- 2. Instructions
- 2.1 Définitions
- 2.1.1 Variable
- 2.1.2 Fonction
- 2.1.3 Fonctions lambda
- 2.1.4 Classe
- 2.1.5 Instruction vide
- 2.1.6 Suppression
- 2.1.7 Renvoyer le résultat de la fonction
- 2.1 Définitions
- 2.2 Instructions conditionnelles
- 2.2.1 Définition
- 2.2.2 Condition
- 2.2.3 Instruction if
- 2.2.4 Instruction elif
- 2.2.5 Instruction else
- 2.3 Instruction de correspondance
- 2.4 Utilisation d’une expression d’affectation
- 2.4.1 Instruction switch
- 2.4.2 Interruptions
- 2.4.3 Approfondissement des conditions
- 2.4.4 Performances
- 2.5 Itérations
- 2.5.1 Instruction for
- 2.5.2 Instruction while
- 2.5.3 Quelle différence entre for et while ?
- 2.5.4 Instruction break
- 2.5.5 Instruction return
- 2.5.6 Instruction continue
- 2.5.7 Instruction else
- 2.5.8 Générateurs
- 2.6 Constructions fonctionnelles
- 2.6.1 Construction conditionnelle
- 2.6.2 Générateurs
- 2.6.3 Compréhensions de listes
- 2.6.4 Compréhensions d’ensembles
- 2.6.5 Compréhensions de dictionnaires
- 2.7 Compréhensions et expressions d’affectation
- 2.8 Gestion des exceptions
- 2.8.1 Présentation rapide des exceptions
- 2.8.2 Lever une exception
- 2.8.3 Pourquoi lever une exception ?
- 2.8.4 Assertions
- 2.8.5 Capturer une exception
- 2.8.6 Effectuer un traitement de l’exception
- 2.8.7 Gérer la sortie du bloc de capture
- 2.8.8 Gérer le non-déclenchement d’exceptions
- 2.8.9 Gestionnaire de contexte
- 2.8.10 Programmation asynchrone
- 2.9 Divers
- 2.9.1 Gérer des imports
- 2.9.2 Traverser les espaces de nommage
- 2.9.3 Fonctions print, help, eval et exec
Déclarations
- 1. Variable
- 1.1 Qu’est-ce qu’une variable ?
- 1.1.1 Contenu
- 1.1.2 Contenant
- 1.1.3 Modes de modification d’une variable
- 1.1 Qu’est-ce qu’une variable ?
- 1.2 Typage dynamique
- 1.2.1 Affectation : rappels
- 1.2.2 Primitive type et nature du type
- 1.2.3 Caractéristiques du typage Python
- 1.3 Visibilité
- 1.3.1 Espace global
- 1.3.2 Notion de bloc
- 2.1 Déclaration
- 2.2 Paramètres
- 2.2.1 Signature d’une fonction
- 2.2.2 Notion d’argument ou de paramètre
- 2.2.3 Valeur par défaut
- 2.2.4 Valeur par défaut mutable
- 2.2.5 Paramètres nommés
- 2.2.6 Déclaration de paramètres extensibles
- 2.2.7 Passage de paramètres étoilés
- 2.2.8 Signature universelle
- 2.2.9 Obliger un paramètre à être nommé (keyword-only)
- 2.3.1 Annotations/type hint/typage statique
- 3.1 Déclaration
- 3.1.1 Signature
- 3.1.2 Attribut
- 3.1.3 Méthode
- 3.1.4 Bloc local
- 3.2.1 Syntaxe
- 3.2.2 Relation entre l’instance et la classe
- 4.1 À quoi sert un module ?
- 4.2 Déclaration
- 4.3 Instructions spécifiques
- 4.4 Comment appréhender le contenu d’un module ?
- 4.5 Compilation des modules
Modèle objet
- 1. Tout est objet
- 1.1 Principes
- 1.1.1 Quel sens donner à « objet » ?
- 1.1.2 Adaptation de la théorie objet dans Python
- 1.1.3 Généralités
- 1.1 Principes
- 1.2 Classes
- 1.2.1 Introduction
- 1.2.2 Déclaration impérative d’une classe
- 1.2.3 Instance
- 1.2.4 Objet courant
- 1.2.5 Déclaration par prototype d’une classe
- 1.2.6 Tuples nommés
- 1.3 Méthodes
- 1.3.1 Déclaration
- 1.3.2 Appel de méthode
- 1.3.3 Méthodes et attributs spéciaux
- 1.3.4 Constructeur et initialisateur
- 1.3.5 Gestion automatisée des attributs
- 1.3.6 Intérêt du paradigme objet
- 1.3.7 Relation entre objets
- 1.4 Héritage
- 1.4.1 Polymorphisme par sous-typage
- 1.4.2 Surcharge de méthode
- 1.4.3 Surcharge des opérateurs
- 1.4.4 Polymorphisme paramétrique
- 1.4.5 Héritage multiple
- 2.1 Principes
- 2.2 Interfaces
- 2.3 Attributs
- 2.4 Propriétés
- 2.5 Emplacements
- 2.6 Métaclasses
- 2.7 Classes abstraites
- 2.8 La Zope Component Architecture
- 2.8.1 Présentation
- 2.8.2 Installation
- 2.8.3 Définir une interface et un composant
- 2.8.4 Autres fonctionnalités
- 2.8.5 Avantages de la ZCA
- 3.1 Personnalisation
- 3.1.1 Classes
- 3.1.2 Instances
- 3.1.3 Comparaison
- 3.1.4 Évaluation booléenne
- 3.1.5 Relations d’héritage ou de classe à instance
- 3.2.1 Itérateurs
- 3.2.2 Conteneurs
- 3.2.3 Instances assimilables à des fonctions
- 3.2.4 Ressources à protéger
- 3.2.5 Types
- 3.2.6 Classes de données
Nombres, booléens et algorithmes appliqués
- 1. Nombres
- 1.1 Types
- 1.1.1 Entiers
- 1.1.2 Réels
- 1.1.3 Socle commun aux nombres entiers et réels
- 1.1.4 Méthodes dédiées aux nombres entiers
- 1.1.5 Méthodes dédiées aux nombres réels
- 1.1.6 Complexes
- 1.1 Types
- 1.2 La console Python, la calculatrice par excellence
- 1.2.1 Opérateurs mathématiques binaires
- 1.2.2 Opérateurs binaires particuliers
- 1.2.3 Opérateurs mathématiques unaires
- 1.2.4 Arrondis
- 1.2.5 Opérateurs de comparaison
- 1.2.6 Opérations mathématiques n-aires
- 1.2.7 Fonctions mathématiques usuelles
- 1.3 Représentations d'un nombre
- 1.3.1 Représentation décimale
- 1.3.2 Représentation par un exposant
- 1.3.3 Représentation par une fraction
- 1.3.4 Représentation hexadécimale
- 1.3.5 Représentation octale
- 1.3.6 Représentation binaire
- 1.3.7 Opérations binaires
- 1.3.8 Longueur de la représentation mémoire d'un entier
- 1.4 Conversions
- 1.4.1 Conversion entre entiers et réels
- 1.4.2 Conversion entre réels et complexes
- 1.4.3 Conversion vers un booléen
- 1.5 Travailler avec des variables
- 1.5.1 Un nombre est non mutable
- 1.5.2 Modifier la valeur d'une variable
- 1.5.3 Opérateurs d'incrémentation
- 1.6 Statistiques
- 2.1 Le type booléen
- 2.1.1 Classe bool
- 2.1.2 Les deux objets True et False
- 2.1.3 Différence entre l’opérateur d’égalité et d'identité
- 2.2.1 Méthode générique
- 2.2.2 Objets classiques
Séquences et algorithmes appliqués
- 1. Présentation des différents types de séquences
- 1.1 Généralités
- 1.2 Les listes
- 1.3 Les n-uplets
- 1.4 Conversion entre listes et n-uplets
- 1.5 Socle commun entre liste et n-uplet
- 2. Notion d’itérateur
- 3. Utilisation des indices et des tranches
- 3.1 Définition de l’indice d’un objet et des occurrences
- 3.2 Utiliser l’indice pour adresser la séquence
- 3.3 Retrouver les occurrences d’un objet et leurs indices
- 3.4 Taille d’une liste, comptage d’occurrences
- 3.5 Utiliser l’indice pour modifier ou supprimer
- 3.6 Itération simple
- 3.7 Présentation de la notion de tranches (slices)
- 3.8 Cas particulier de la branche 2.x de Python
- 3.9 Utilisation basique des tranches
- 3.10 Utilisation avancée des tranches
- 4. Utilisation des opérateurs
- 4.1 Opérateur +
- 4.2 Opérateur *
- 4.3 Opérateur +=
- 4.4 Opérateur *=
- 4.5 Opérateur in
- 4.6 Opérateurs de comparaison
- 5. Méthodes de modifications
- 5.1 Ajouter des éléments dans une liste et un n-uplet
- 5.2 Supprimer un objet d’une liste et d’un n-uplet
- 5.3 Solutions de contournement pour la modification de n-uplets
- 5.4 Renverser une liste ou un tuple
- 5.5 Trier une liste
- 6. Utilisation avancée des listes
- 6.1 Opérations d'ensemble
- 6.2 Pivoter une séquence
- 6.3 Itérer correctement
- 6.4 Programmation fonctionnelle
- 6.5 Compréhensions de listes
- 6.6 Itérations avancées
- 6.7 Combinatoire
- 7. Adapter les listes à des besoins spécifiques
- 7.1 Liste d'entiers
- 7.2 Présentation du type array
- 7.3 Utiliser une liste comme pile
- 7.4 Utiliser une liste comme file d'attente
- 7.5 Conteneur plus performant
- 7.6 Utiliser des listes pour représenter des matrices
- 7.7 Liste sans doublons
- 8. Autres types de données
Ensembles et algorithmes appliqués
- 1. Présentation
- 1.1 Définition d’un ensemble
- 1.2 Différences entre set et frozenset
- 1.3 Utilisation pour dédoublonner des listes
- 1.4 Rajouter une relation d’ordre
- 2. Opérations ensemblistes
- 2.1 Opérateurs pour un ensemble à partir de deux autres
- 2.2 Opérateurs pour modifier un ensemble à partir d’un autre
- 2.3 Méthodes équivalentes à la création ou modification ensembliste
- 2.4 Méthodes de comparaison des ensembles
- 2.5 Exemples non classiques d’utilisation
- 3. Méthodes de modification d’un ensemble
- 3.1 Ajouter un élément
- 3.2 Supprimer un élément
- 3.3 Vider un ensemble
- 3.4 Dupliquer un élément
- 3.5 Sortir une valeur d’un ensemble
- 3.6 Utiliser un ensemble comme un recycleur d’objets
- 3.7 Algorithmique avancée : résolution du problème des n-dames
Chaînes de caractères et algorithmes appliqués
- 1. Présentation
- 1.1 Définition
- 1.2 Vocabulaire
- 1.3 Spécificités de la branche 2.x
- 1.4 Changements apportés par la branche 3.x
- 1.5 Chaîne de caractères en tant que séquence de caractères
- 1.6 Caractères
- 1.7 Opérateurs de comparaison
- 2. Formatage de chaînes de caractères
- 2.1 Opérateur modulo
- 2.2 Méthodes de formatage sur l’ensemble de la chaîne
- 2.3 Nouvelle méthode de formatage des variables dans une chaîne
- 2.4 Littéraux formatés
- 3. Opérations d'ensemble
- 3.1 Séquençage de chaînes
- 3.2 Opérations sur la casse
- 3.3 Recherche sur une chaîne de caractères
- 3.4 Informations sur les caractères
- 4. Problématiques relatives à l'encodage
- 4.1 Encodage par défaut
- 4.2 Encodage du système
- 4.3 L'unicode, référence absolue
- 4.4 Autres encodages
- 4.5 Ponts entre l'unicode et le reste du monde
- 4.6 Revenir vers l'Unicode
- 5. Manipulations de bas niveau avancées
- 5.1 Opérations de comptage
- 5.2 Une chaîne de caractères vue comme une liste
- 5.3 Une chaîne de caractères vue comme un ensemble de caractères
- 6. Représentation mémoire
- 6.1 Présentation du type bytes
- 6.2 Lien avec les chaînes de caractères
- 6.3 Présentation du type bytearray
- 6.4 Gestion d’un jeu de caractères
Dictionnaires et algorithmes appliqués
- 1. Présentation
- 1.1 Définition
- 1.2 Évolutions et différences entre les branches 2.x et 3.x
- 1.3 Vues de dictionnaires
- 1.4 Instanciation
- 1.5 Compréhension de dictionnaire
- 2. Manipuler un dictionnaire
- 2.1 Récupérer une valeur d’un dictionnaire
- 2.2 Modifier les valeurs d’un dictionnaire
- 2.3 Supprimer une entrée d’un dictionnaire
- 2.4 Dupliquer un dictionnaire
- 2.5 Utiliser le dictionnaire comme agrégateur de données
- 2.6 Méthodes d’itération
- 3. Utilisation avancée des dictionnaires
- 3.1 Rajouter une relation d'ordre
- 3.2 Algorithmiques classiques
- 3.3 Adapter les dictionnaires à des besoins spécifiques
- 3.4 Représentation universelle de données
Données temporelles et algorithmes appliqués
- 1. Gérer une date calendaire
- 1.1 Notion de date calendaire
- 1.2 Travailler sur une date
- 1.3 Considérations astronomiques
- 1.4 Considérations historiques
- 1.5 Considérations techniques
- 1.6 Représentation textuelle
- 2. Gérer un horaire ou un moment d’une journée
- 2.1 Notion d’instant
- 2.2 Notion de fuseau horaire
- 2.3 Représentation textuelle
- 3. Gérer un instant absolu
- 3.1 Notion d’instant absolu
- 3.2 Rapport avec les notions précédentes
- 3.3 Représentation textuelle
- 3.4 Gestion des fuseaux horaires
- 3.5 Créer une date à partir d’une représentation textuelle
- 4. Gérer une différence entre deux dates ou instants
- 4.1 Notion de différence et de résolution
- 4.2 Considérations techniques
- 4.3 Utilisation avec des dates calendaires
- 4.4 Utilisation avec des horaires
- 4.5 Utilisation avec des dates absolues
- 4.6 La seconde comme unité de base
- 4.7 Précision à la nanoseconde
- 5. Spécificités des fuseaux horaires
- 6. Problématiques de bas niveau
- 6.1 Timestamp et struct_time
- 6.2 Mesures de performances
- 7. Utilisation du calendrier
- 7.1 Présentation du module calendar
- 7.2 Fonctions essentielles du calendrier
Manipulation de données
- 1. Manipuler des fichiers
- 1.1 Ouvrir un fichier
- 1.2 Lire un fichier
- 1.3 Écrire un fichier
- 1.4 Comparer deux fichiers
- 2. Utilitaire de sauvegarde
- 3. Lire un fichier de configuration
- 4. Format d’export/import
- 4.1 CSV
- 4.1.1 Exploiter un fichier CSV
- 4.1.2 Génération d’un fichier CSV
- 4.1 CSV
- 4.2 JSON
- 4.3 Base64
- 4.4 Pickle
- 5.1 Tarfile
- 5.2 Gzip
- 5.3 BZ2
- 5.4 Zipfile
- 5.5 Interface de haut niveau
- 6.1 Générer des nombres aléatoires
- 6.2 Expressions régulières
- 7.1 Nombre aléatoire sécurisé
- 7.2 Fonctions de chiffrement
- 7.3 Code d’authentification de message
- 7.4 Empreinte de fichier
- 7.5 Stéganographie
- 7.6 Communication inter-applicative sécurisée
Bases de données
- 1. Introduction
- 2. Accès à une base de données relationnelle
- 2.1 Point d’entrée
- 2.2 MySQL
- 2.3 PostgreSQL
- 2.4 SQLite
- 2.5 Oracle
- 3. Utilisation d’un ORM
- 3.1 Qu’est-ce qu’un ORM ?
- 3.2 ORM proposés par Python
- 3.3 SQLAlchemy
- 3.3.1 Introspection sur une table existante
- 3.3.2 Manipuler des données sur une table existante
- 3.3.3 Décrire une base de données par le code
- 4.1 CSV
- 4.2 NoSQL
- 4.3 Base de données orientée objet : ZODB
- 4.4 Base de données orientée graphe : Neo4j
- 4.5 Base de données de type clé-valeur : Redis
- 4.6 Bases de données orientées documents : CouchDB et MongoDB
- 4.7 Bases de données natives XML : BaseX, eXist
- 4.8 Cassandra
- 4.9 Bases de données orientées colonnes : HBase
- 4.10 Big Data : l'écosystème Hadoop
- 5.1 Protocole
- 5.2 Serveurs
- 5.3 Terminologie
- 5.4 Installation
- 5.5 Ouvrir une connexion à un serveur
- 5.6 Effectuer une recherche
- 5.7 Synchrone vs asynchrone
- 5.8 Connexions sécurisées
Créer un environnement de travail en 10 minutes
- 1. Description de l’application à construire
- 2. Containers
- 2.1 Portainer
- 2.2 Base de données
- 3. Créer son container Docker
- 4. Installer ses bibliothèques Python
Créer une application web en 30 minutes
- 1. Description de l’application à construire
- 2. Mise en place
- 2.1 Isolation de l’environnement
- 2.2 Création du projet
- 2.3 Paramétrage
- 2.4 Premiers essais
- 3. Réalisation de l’application
- 3.1 Modèles
- 3.2 Templates
- 3.3 Vues
- 4. Pour aller plus loin
Créer une application console en 10 minutes
- 1. Objectif
- 2. Enregistrer le script
- 3. Création des données
- 4. Parseur d’arguments
Créer une application graphique en 20 minutes
- 1. Objectif
- 1.1 Fonctionnel
- 1.2 Technique
- 2. Présentation rapide de Gtk et d’astuces
- 2.1 Présentation
- 2.2 Astuces
- 3. Démarrer le programme
- 4. Interface graphique avec Glade
- 5. Créer le composant graphique
- 6. Contrôleur
- 7. Autres bibliothèques graphiques
- 7.1 TkInter
- 7.2 wxPython
- 7.3 PyQt
- 7.4 PySide
- 7.5 Autres
Créer un jeu en 30 minutes avec PyGame
- 1. Présentation de PyGame
- 2. Réalisation d’un jeu Tetris
- 2.1 Présentation du jeu
- 2.2 Présentation des problématiques
- 2.3 Création des constantes
Annexes
- 1. Objets mutables et non mutables
- 2. Table Unicode
- 3. Bytes
- 4. Guide de portage vers Python 3
- 5. Comment déboguer
- 6. Comment tester la performance
- Index