1. Livres et vidéos
  2. Python 3 - Les fondamentaux du langage (3e édition)

Python 3 Les fondamentaux du langage (3e édition)

  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7
  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne

Présentation

Ce livre sur les fondamentaux du langage Python 3 (en version 3.8 beta au moment de l'écriture) 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 couvre un périmètre relativement large, 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 (de la création d'un site web au développement de jeux en passant par la conception d'une interface graphique avec Gtk). Le livre est consacré à la branche 3 de Python, et présente bien sûr les nouveautés apportées par la version 3.8. 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, notamment en respectant son rôle, et permettre à celui qui la connaît de trouver des angles d'attaques 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 pour permettre au lecteur de tester le programme et de le modifier à sa guise de manière à faire ses propres expériences.

Table des matières

  • 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. Typologie des langages de programmation
      • 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.2 Interopérabilité
      • 2.3 Niveau de programmation
        • 2.3.1 Machine
        • 2.3.2 Bas niveau
        • 2.3.3 Haut niveau
      • 2.4 Typage
        • 2.4.1 Faible vs fort
        • 2.4.2 Statique vs dynamique
      • 2.5 Grammaire
        • 2.5.1 Langages formels
        • 2.5.2 Syntaxe
    • 3. Python et le reste du monde
      • 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 Intégration avec d’autres langages
        • 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.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. Histoire de Python
      • 2.1 La genèse
      • 2.2 Extension du périmètre fonctionnel
      • 2.3 Évolution de la licence
      • 2.4 Avenir
    • 3. Gouvernance
      • 3.1 Développement
        • 3.1.1 Branches
        • 3.1.2 Communauté
      • 3.2 Mode de gouvernance
        • 3.2.1 Créateur du langage
        • 3.2.2 PEP
        • 3.2.3 Prise de décisions
        • 3.2.4 Contribuer à Python
    • 4. Que contient 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. Phases d’exécution d’un programme Python
      • 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.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. Retours d’expérience
      • 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. Installer Anaconda
      • 5.1 Pour Windows
      • 5.2 Pour Linux
      • 5.3 Pour Mac
      • 5.4 Mettre à jour Anaconda
      • 5.5 Installer une bibliothèque externe
      • 5.6 Environnements virtuels
    • 6. Docker
    • 7. La console Python
      • 7.1 Démarrer la console Python
      • 7.2 BPython
      • 7.3 IPython
      • 7.4 IPython Notebook
    • 8. Installer un IDE
      • 8.1 Liste d'IDE
      • 8.2 Présentation de PyCharm
      • 8.3 Configuration de PyCharm
  • 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.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. Premier programme
      • 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. Premier jeu : Devine le nombre
      • 3.1 Description du jeu
      • 3.2 Aides
        • 3.2.1 Gestion du hasard
        • 3.2.2 Étapes de développement
      • 3.3 Pour aller plus loin
  • 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. Les modules
      • 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 Gérer le code de ses modules
        • 2.2.1 Exécuter un module, importer un module
        • 2.2.2 Gérer une arborescence de modules
    • 3. Terminer le jeu
      • 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.9.1 Opérateur expression d’affectation :=
      • 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.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 Utilisation d’une expression d’affectation
        • 2.3.1 Instruction switch
        • 2.3.2 Interruptions
        • 2.3.3 Approfondissement des conditions
        • 2.3.4 Performances
      • 2.4 Itérations
        • 2.4.1 Instruction for
        • 2.4.2 Instruction while
        • 2.4.3 Quelle différence entre for et while ?
        • 2.4.4 Instruction break
        • 2.4.5 Instruction return
        • 2.4.6 Instruction continue
        • 2.4.7 Instruction else
        • 2.4.8 Générateurs
      • 2.5 Constructions fonctionnelles
        • 2.5.1 Construction conditionnelle
        • 2.5.2 Générateurs
        • 2.5.3 Compréhensions de listes
        • 2.5.4 Compréhensions d’ensembles
        • 2.5.5 Compréhensions de dictionnaires
      • 2.6 Compréhensions et expressions d’affectation
      • 2.7 Gestion des exceptions
        • 2.7.1 Présentation rapide des exceptions
        • 2.7.2 Lever une exception
        • 2.7.3 Pourquoi lever une exception ?
        • 2.7.4 Assertions
        • 2.7.5 Capturer une exception
        • 2.7.6 Effectuer un traitement de l’exception
        • 2.7.7 Gérer la sortie du bloc de capture
        • 2.7.8 Gérer le non-déclenchement d’exceptions
        • 2.7.9 Prise et libération de ressources
        • 2.7.10 Programmation asynchrone
      • 2.8 Divers
        • 2.8.1 Gérer des imports
        • 2.8.2 Traverser les espaces de nommage
        • 2.8.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.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. Fonction
      • 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 Obliger un paramètre à être positionnel (Positional-only)
        • 2.3.1 Annotations
        • 2.3.2 Types hint
    • 3. Classe
      • 3.1 Déclaration
        • 3.1.1 Signature
        • 3.1.2 Attribut
        • 3.1.3 Méthode
        • 3.1.4 Bloc local
      • 3.2 Instanciation
        • 3.2.1 Syntaxe
        • 3.2.2 Relation entre l’instance et la classe
    • 4. Module
      • 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.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. Autres outils de la programmation objet
      • 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. Fonctions spéciales et primitives associées
      • 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 Classes particulières
        • 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
  • Types de données 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.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. Séquences
      • 2.1 Présentation des différents types de séquences
        • 2.1.1 Généralités
        • 2.1.2 Les listes
        • 2.1.3 Les n-uplets
        • 2.1.4 Conversion entre listes et n-uplets
        • 2.1.5 Socle commun entre liste et n-uplet
        • 2.1.6 Notion d’itérateur
      • 2.2 Utilisation des indices et des tranches
        • 2.2.1 Définition de l’indice d’un objet et des occurrences
        • 2.2.2 Utiliser l’indice pour adresser la séquence
        • 2.2.3 Retrouver les occurrences d’un objet et leurs indices
        • 2.2.4 Taille d’une liste, comptage d’occurrences
        • 2.2.5 Utiliser l’indice pour modifier ou supprimer
        • 2.2.6 Itération simple
        • 2.2.7 Présentation de la notion de tranches (slices)
        • 2.2.8 Cas particulier de la branche 2.x de Python
        • 2.2.9 Utilisation basique des tranches
        • 2.2.10 Utilisation avancée des tranches
      • 2.3 Utilisation des opérateurs
        • 2.3.1 Opérateur +
        • 2.3.2 Opérateur *
        • 2.3.3 Opérateur +=
        • 2.3.4 Opérateur *=
        • 2.3.5 Opérateur in
        • 2.3.6 Opérateurs de comparaison
      • 2.4 Méthodes de modifications
        • 2.4.1 Ajouter des éléments dans une liste et un n-uplet
        • 2.4.2 Supprimer un objet d’une liste et d’un n-uplet
        • 2.4.3 Solutions de contournement pour la modification de n-uplets
        • 2.4.4 Renverser une liste ou un tuple
        • 2.4.5 Trier une liste
      • 2.5 Utilisation avancée des listes
        • 2.5.1 Opérations d'ensemble
        • 2.5.2 Pivoter une séquence
        • 2.5.3 Itérer correctement
        • 2.5.4 Programmation fonctionnelle
        • 2.5.5 Compréhensions de listes
        • 2.5.6 Itérations avancées
        • 2.5.7 Combinatoire
      • 2.6 Adapter les listes à des besoins spécifiques
        • 2.6.1 Liste d'entiers
        • 2.6.2 Présentation du type array
        • 2.6.3 Utiliser une liste comme pile
        • 2.6.4 Utiliser une liste comme file d'attente
        • 2.6.5 Conteneur plus performant
        • 2.6.6 Utiliser des listes pour représenter des matrices
        • 2.6.7 Liste sans doublons
      • 2.7 Autres types de données
    • 3. Ensembles
      • 3.1 Présentation
        • 3.1.1 Définition d’un ensemble
        • 3.1.2 Différences entre set et frozenset
        • 3.1.3 Utilisation pour dédoublonner des listes
        • 3.1.4 Rajouter une relation d’ordre
      • 3.2 Opérations ensemblistes
        • 3.2.1 Opérateurs pour un ensemble à partir de deux autres
        • 3.2.2 Opérateurs pour modifier un ensemble à partir d’un autre
        • 3.2.3 Méthodes équivalentes à la création ou modification ensembliste
        • 3.2.4 Méthodes de comparaison des ensembles
        • 3.2.5 Exemples non classiques d’utilisation
      • 3.3 Méthodes de modification d’un ensemble
        • 3.3.1 Ajouter un élément
        • 3.3.2 Supprimer un élément
        • 3.3.3 Vider un ensemble
        • 3.3.4 Dupliquer un élément
        • 3.3.5 Sortir une valeur d’un ensemble
        • 3.3.6 Utiliser un ensemble comme un recycleur d’objets
        • 3.3.7 Algorithmique avancée : résolution du problème des n-dames
    • 4. Chaînes de caractères
      • 4.1 Présentation
        • 4.1.1 Définition
        • 4.1.2 Vocabulaire
        • 4.1.3 Spécificités de la branche 2.x
        • 4.1.4 Changements apportés par la branche 3.x
        • 4.1.5 Chaîne de caractères en tant que séquence de caractères
        • 4.1.6 Caractères
        • 4.1.7 Opérateurs de comparaison
      • 4.2 Formatage de chaînes de caractères
        • 4.2.1 Opérateur modulo
        • 4.2.2 Méthodes de formatage sur l’ensemble de la chaîne
        • 4.2.3 Nouvelle méthode de formatage des variables dans une chaîne
        • 4.2.4 Littéraux formatés
      • 4.3 Opérations d'ensemble
        • 4.3.1 Séquençage de chaînes
        • 4.3.2 Opérations sur la casse
        • 4.3.3 Recherche sur une chaîne de caractères
        • 4.3.4 Informations sur les caractères
      • 4.4 Problématiques relatives à l'encodage
        • 4.4.1 Encodage par défaut
        • 4.4.2 Encodage du système
        • 4.4.3 L'unicode, référence absolue
        • 4.4.4 Autres encodages
        • 4.4.5 Ponts entre l'unicode et le reste du monde
        • 4.4.6 Revenir vers l'Unicode
      • 4.5 Manipulations de bas niveau avancées
        • 4.5.1 Opérations de comptage
        • 4.5.2 Une chaîne de caractères vue comme une liste
        • 4.5.3 Une chaîne de caractères vue comme un ensemble de caractères
      • 4.6 Représentation mémoire
        • 4.6.1 Présentation du type bytes
        • 4.6.2 Lien avec les chaînes de caractères
        • 4.6.3 Présentation du type bytearray
        • 4.6.4 Gestion d’un jeu de caractères
    • 5. Dictionnaires
      • 5.1 Présentation
        • 5.1.1 Définition
        • 5.1.2 Évolutions et différences entre les branches 2.x et 3.x
        • 5.1.3 Vues de dictionnaires
        • 5.1.4 Instanciation
        • 5.1.5 Compréhension de dictionnaire
      • 5.2 Manipuler un dictionnaire
        • 5.2.1 Récupérer une valeur d’un dictionnaire
        • 5.2.2 Modifier les valeurs d’un dictionnaire
        • 5.2.3 Supprimer une entrée d’un dictionnaire
        • 5.2.4 Dupliquer un dictionnaire
        • 5.2.5 Utiliser le dictionnaire comme agrégateur de données
        • 5.2.6 Méthodes d’itération
      • 5.3 Utilisation avancée des dictionnaires
        • 5.3.1 Rajouter une relation d'ordre
        • 5.3.2 Algorithmiques classiques
        • 5.3.3 Adapter les dictionnaires à des besoins spécifiques
        • 5.3.4 Représentation universelle de données
    • 6. Booléens
      • 6.1 Le type booléen
        • 6.1.1 Classe bool
        • 6.1.2 Les deux objets True et False
        • 6.1.3 Différence entre l’opérateur d’égalité et d'identité
      • 6.2 Évaluation booléenne
        • 6.2.1 Méthode générique
        • 6.2.2 Objets classiques
    • 7. Données temporelles
      • 7.1 Gérer une date calendaire
        • 7.1.1 Notion de date calendaire
        • 7.1.2 Travailler sur une date
        • 7.1.3 Considérations astronomiques
        • 7.1.4 Considérations historiques
        • 7.1.5 Considérations techniques
        • 7.1.6 Représentation textuelle
      • 7.2 Gérer un horaire ou un moment d’une journée
        • 7.2.1 Notion d’instant
        • 7.2.2 Notion de fuseau horaire
        • 7.2.3 Représentation textuelle
      • 7.3 Gérer un instant absolu
        • 7.3.1 Notion d’instant absolu
        • 7.3.2 Rapport avec les notions précédentes
        • 7.3.3 Représentation textuelle
        • 7.3.4 Gestion des fuseaux horaires
        • 7.3.5 Créer une date à partir d’une représentation textuelle
      • 7.4 Gérer une différence entre deux dates ou instants
        • 7.4.1 Notion de différence et de résolution
        • 7.4.2 Considérations techniques
        • 7.4.3 Utilisation avec des dates calendaires
        • 7.4.4 Utilisation avec des horaires
        • 7.4.5 Utilisation avec des dates absolues
        • 7.4.6 La seconde comme unité de base
        • 7.4.7 Précision à la nanoseconde
      • 7.5 Spécificités des fuseaux horaires
      • 7.6 Problématiques de bas niveau
        • 7.6.1 Timestamp et struct_time
        • 7.6.2 Mesures de performances
      • 7.7 Utilisation du calendrier
        • 7.7.1 Présentation du module calendar
        • 7.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.2 JSON
      • 4.3 Base64
      • 4.4 Pickle
    • 5. Compresser et décompresser un fichier
      • 5.1 Tarfile
      • 5.2 Gzip
      • 5.3 Bz2
      • 5.4 Zipfile
      • 5.5 Interface de haut niveau
    • 6. Outils de manipulation de données
      • 6.1 Générer des nombres aléatoires
      • 6.2 Expressions régulières
    • 7. Cryptographie légère
      • 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
    • 4. Autres bases de données
      • 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. LDAP
      • 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 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 Vues
      • 3.3 Contrôleurs
    • 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
      • 2.1 Script
    • 3. Bytes
      • 3.1 Script
      • 3.2 Résultat
    • 4. Guide de portage vers Python 3
    • Index

Auteur

Sébastien CHAZALLETEn savoir plus

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.com, 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ème, la création de sites web ou de e-commerce.

Caractéristiques

  • Niveau Initié à Confirmé
  • Nombre de pages 672 pages
  • Parution octobre 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-02096-4
    • EAN : 9782409020964
    • Ref. ENI : RI33PYT
  • Niveau Initié à Confirmé
  • Parution octobre 2019
    • HTML
    • ISBN : 978-2-409-02097-1
    • EAN : 9782409020971
    • Ref. ENI : LNRI33PYT

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (926 Ko)