• Aide
  • Eurêkoi Eurêkoi

Livre

Python 3 : les fondamentaux du langage

Résumé

Après avoir détaillé les atouts de Python pour répondre aux besoins des entreprises quel que soit le domaine informatique concerné, l'auteur présente les fondamentaux de ce langage et l'utilisation de ses fonctionnalités. Il propose également un tutoriel pour créer une application professionnelle. Avec des compléments accessibles en ligne et un accès gratuit à la version numérique.


  • Éditeur(s)
  • Date
    • C 2023
  • Notes
    • La 4e de couv. indique : Le code source des parties 2, 4 et 5 est intégralement téléchargeables
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (702 p.) : ill. ; 22 cm
  • Sujet(s)
  • ISBN
    • 978-2-409-04044-3
  • Indice
  • Quatrième de couverture
    • 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 souhaite maîtriser ce langage très abouti. Il détaille tout le coeur 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.


  • Tables des matières
      • Python 3

      • 4e édition

      • Les fondamentaux du langage

      • Editions ENI

      • Avant-propos
      • 1. Introduction23
      • 2. Contenu de l'ouvrage23
      • 3. Progressivité de l'ouvrage24
      • 4. À destination des enseignants et élèves25
      • 5. À destination des chercheurs ou doctorants26
      • 6. À destination de ceux qui viennent d'un autre langage27
      • Partie 1 : Les atouts de Python
      • Chapitre 1-1
      • Clés théoriques
      • 1. Petite histoire des langages informatiques29
      • 1.1 Informatique théorique29
      • 1.2 Chronologie de l'informatique30
      • 1.2.1 Évolutions des problématiques liées à l'informatique30
      • 1.2.2 Chronologie des langages informatiques31
      • 2. Typologie des langages de programmation35
      • 2.1 Paradigmes35
      • 2.1.1 Définition35
      • 2.1.2 Paradigme impératif et dérivés36
      • 2.1.3 Paradigme objet et dérivés37
      • 2.1.4 Programmation orientée aspect37
      • 2.1.5 Paradigme fonctionnel38
      • 2.1.6 Paradigme logique38
      • 2.1.7 Programmation concurrente38
      • 2.1.8 Synthèse39
      • 2.2 Interopérabilité39
      • 2.3 Niveau de programmation41
      • 2.3.1 Machine41
      • 2.3.2 Bas niveau41
      • 2.3.3 Haut niveau42
      • 2.4 Typage43
      • 2.4.1 Faible vs fort43
      • 2.4.2 Statique vs dynamique43
      • 2.5 Grammaire44
      • 2.5.1 Langages formels44
      • 2.5.2 Syntaxe44
      • 3. Python et le reste du monde45
      • 3.1 Positionnement stratégique du langage Python45
      • 3.1.1 Segments de marchés45
      • 3.1.2 Niveau de complexité45
      • 3.1.3 Forces du langage45
      • 3.1.4 Points faibles46
      • 3.2 Intégration avec d'autres langages47
      • 3.2.1 Extensions C47
      • 3.2.2 Intégration de programmes écrits en C47
      • 3.2.3 Intégration de programmes Python dans du C47
      • 3.2.4 Intégration de programmes écrits en Java47
      • 3.2.5 Intégration de programmes Python dans Java47
      • 3.2.6 Autres intégrations47
      • Chapitre 1-2
      • Présentation de Python
      • 1. Philosophie49
      • 1.1 Python en quelques lignes49
      • 1.1.1 D'où vient le nom « Python » ?49
      • 1.1.2 Présentation technique50
      • 1.1.3 Présentation conceptuelle50
      • 1.2 Comparaison avec d'autres langages50
      • 1.2.1 Shell50
      • 1.2.2 Perl51
      • 1.2.3 C, C+ +51
      • 1.2.4 Java52
      • 1.2.5 PHP54
      • 1.3 Grands principes55
      • 1.3.1 Le zen de Python55
      • 1.3.2 Le développeur n'est pas stupide56
      • 1.3.3 Documentation56
      • 1.3.4 Python est livré piles incluses56
      • 1.3.5 DuckTyping57
      • 1.3.6 Notion de code pythonique57
      • 2. Histoire de Python57
      • 2.1 La genèse57
      • 2.2 Extension du périmètre fonctionnel58
      • 2.3 Évolution de la licence62
      • 2.4 Avenir62
      • 3. Gouvernance63
      • 3.1 Développement63
      • 3.1.1 Branches63
      • 3.1.2 Communauté64
      • 3.2 Mode de gouvernance65
      • 3.2.1 Créateur du langage65
      • 3.2.2 PEP65
      • 3.2.3 Prise de décisions65
      • 3.2.4 Contribuer à Python66
      • 4. Que contient Python ?66
      • 4.1 Une grammaire et une syntaxe66
      • 4.2 Plusieurs implémentations67
      • 4.3 Une bibliothèque standard67
      • 4.4 Des bibliothèques tierces67
      • 4.5 Des frameworks67
      • 5. Phases d'exécution d'un programme Python68
      • 5.1 Chargement de la machine virtuelle68
      • 5.2 Compilation68
      • 5.3 Interprétation69
      • Chapitre 1-3
      • Pourquoi choisir Python
      • 1. Qualités du langage71
      • 1.1 Ticket d'entrée71
      • 1.2 Qualités intrinsèques73
      • 1.3 Couverture fonctionnelle74
      • 1.4 Domaines d'excellence74
      • 1.5 Garanties75
      • 2. Diffusion76
      • 2.1 Entreprises76
      • 2.2 Le monde de la recherche78
      • 2.3 Le monde de l'éducation78
      • 2.4 Communauté79
      • 3. Références80
      • 3.1 Poids lourds de l'industrie informatique80
      • 3.1.1 Google80
      • 3.1.2 Mozilla81
      • 3.1.3 Microsoft81
      • 3.1.4 Canonical81
      • 3.1.5 Cisco82
      • 3.2 Entreprises innovantes82
      • 3.2.1 Services de stockage en ligne82
      • 3.2.2 Informatique dématérialisée82
      • 3.2.3 Forge83
      • 3.2.4 Réseaux sociaux83
      • 3.3 Éditeurs de contenus83
      • 3.3.1 Disney Animation Studio83
      • 3.3.2 YouTube83
      • 3.3.3 Box ADSL83
      • 3.3.4 Spotify83
      • 3.4 Éditeurs de logiciels83
      • 4. Retours d'expérience84
      • 4.1 Internet des objets84
      • 4.2 Système et développement web85
      • 4.3 Enseignement86
      • 4.4 Embarqué86
      • 4.5 Développement web87
      • 4.6 ERP87
      • Chapitre 1-4
      • Installer son environnement de travail
      • 1. Introduction89
      • 2. Installer Python89
      • 2.1 Pour Windows89
      • 2.2 Pour Mac92
      • 2.3 Pour GNU/Linux et BSD93
      • 2.4 Par la compilation94
      • 2.5 Pour un smartphone94
      • 3. Installer une bibliothèque tierce95
      • 3.1 À partir de Python 3.495
      • 3.2 Pour une version inférieure à Python 3.497
      • 3.3 Pour Linux97
      • 4. Créer un environnement virtuel97
      • 4.1 A quoi sert un environnement virtuel ?97
      • 4.2 Pour Python 3.3 ou version supérieure98
      • 4.3 Pour toute version de Python98
      • 4.4 Pour Linux100
      • 5. Gestion des dépendances101
      • 6. Installer Anaconda102
      • 6.1 Pour Windows102
      • 6.2 Pour Linux103
      • 6.3 Pour Mac103
      • 6.4 Mettre à jour Anaconda103
      • 6.5 Installer une bibliothèque externe103
      • 6.6 Environnements virtuels104
      • 7. Docker104
      • 8. La console Python105
      • 8.1 Démarrer la console Python105
      • 8.2 BPython105
      • 8.3 IPython106
      • 8.4 IPython Notebook106
      • 9. Installer un IDE107
      • 9.1 Liste d'IDE107
      • 9.2 Présentation de PyCharm108
      • 9.3 Configuration de PyCharm108
      • 10. VSCode112
      • Partie 2 : Guide Python
      • Chapitre 2-1
      • Les premiers pas
      • 1. Avant de commencer113
      • 1.1 Quelques notions importantes113
      • 1.1.1 Comment fonctionne un ordinateur ?113
      • 1.1.2 Qu'est-ce qu'un programme informatique ?114
      • 1.1.3 Qu'est-ce qu'un code source ?114
      • 1.2 Quelques conventions utilisées dans ce livre114
      • 1.2.1 Code Python114
      • 1.2.2 Terminal115
      • 1.2.3 Mise en forme115
      • 1.3 Quelle est la meilleure méthode pour apprendre ?116
      • 2. Premier programme116
      • 2.1 Hello world !116
      • 2.2 Affectation118
      • 2.3 Valeur booléenne119
      • 2.4 Type120
      • 2.5 Exceptions121
      • 2.6 Bloc conditionnel123
      • 2.7 Conditions avancées125
      • 2.8 Bloc itératif125
      • 3. Premier jeu : Devine le nombre127
      • 3.1 Description du jeu127
      • 3.2 Aides127
      • 3.2.1 Gestion du hasard127
      • 3.2.2 Étapes de développement128
      • 3.3 Pour aller plus loin128
      • Chapitre 2-2
      • Fonctions et modules
      • 1. Les fonctions129
      • 1.1 Pourquoi utiliser des fonctions ?129
      • 1.2 Introduction aux fonctions131
      • 1.2.1 Comment déclarer une fonction131
      • 1.2.2 Gestion d'un paramètre132
      • 1.2.3 Comment rendre une fonction plus générique134
      • 1.2.4 Paramètres par défaut136
      • 1.3 Problématiques de couplage et duplication de code137
      • 1.3.1 Niveau de ses fonctions137
      • 1.3.2 Notion de complexité139
      • 1.3.3 Bonnes pratiques141
      • 2. Les modules142
      • 2.1 Introduction142
      • 2.1.1 Qu'est-ce qu'un module ?142
      • 2.1.2 Comment crée-t-on un module Python ?143
      • 2.1.3 Organiser son code143
      • 2.2 Gérer le code de ses modules143
      • 2.2.1 Exécuter un module, importer un module143
      • 2.2.2 Gérer une arborescence de modules144
      • 3. Terminer le jeu145
      • 3.1 Créer des niveaux146
      • 3.2 Déterminer un nombre de coups maximal146
      • 3.3 Enregistrer les meilleurs scores146
      • 3.4 Intelligence artificielle146
      • Chapitre 2-3
      • Les principaux types
      • 1. Chaînes de caractères147
      • 1.1 Syntaxe147
      • 1.2 Formatage d'une chaîne148
      • 1.3 Notion de casse148
      • 1.4 Notion de longueur149
      • 1.5 Appartenance150
      • 1.6 Notion d'occurrence150
      • 1.7 Remplacement151
      • 1.8 Notion de caractère151
      • 1.9 Typologie des caractères152
      • 1.10 Séquencer une chaîne de caractères153
      • 2. Listes154
      • 2.1 Syntaxe154
      • 2.2 Indices154
      • 2.3 Valeurs155
      • 2.4 Hasard157
      • 2.5 Techniques d'itération157
      • 2.6 Tri160
      • 3. Dictionnaires162
      • 3.1 Présentation des dictionnaires162
      • 3.2 Parcourir un dictionnaire162
      • 3.3 Exemple163
      • Chapitre 2-4
      • Les classes
      • 1. Syntaxe165
      • 2. Notion d'instance courante166
      • 3. Opérateurs169
      • 4. Héritage170
      • 4.1 Spécialisation171
      • 4.2 Programmation par composants172
      • Partie 3 : Les fondamentaux du langage
      • Chapitre 3-1
      • Algorithmique de base
      • 1. Délimiteurs175
      • 1.1 Instruction175
      • 1.2 Une ligne de code = une instruction175
      • 1.3 Commentaire176
      • 1.4 Une instruction sur plusieurs lignes176
      • 1.5 Mots-clés. .176
      • 1.6 Mots réservés177
      • 1.7 Indentation178
      • 1.8 Symboles179
      • 1.9 Opérateurs182
      • 1.10 Utilisation du caractère souligné186
      • 1.11 PEP-8187
      • 1.12 PEP-7187
      • 1.13 PEP-257187
      • 2. Instructions187
      • 2.1 Définitions187
      • 2.1.1 Variable187
      • 2.1.2 Fonction189
      • 2.1.3 Fonctions lambda190
      • 2.1.4 Classe191
      • 2.1.5 Instruction vide192
      • 2.1.6 Suppression192
      • 2.1.7 Renvoyer le résultat de la fonction193
      • 2.2 Instructions conditionnelles194
      • 2.2.1 Définition194
      • 2.2.2 Condition194
      • 2.2.3 Instruction if194
      • 2.2.4 Instruction elif195
      • 2.2.5 Instruction else195
      • 2.3 Instruction de correspondance197
      • 2.4 Utilisation d'une expression d'affectation200
      • 2.4.1 Instruction switch200
      • 2.4.2 Interruptions201
      • 2.4.3 Approfondissement des conditions201
      • 2.4.4 Performances202
      • 2.5 Itérations203
      • 2.5.1 Instruction for203
      • 2.5.2 Instruction while203
      • 2.5.3 Quelle différence entre for et while ?204
      • 2.5.4 Instruction break204
      • 2.5.5 Instruction return206
      • 2.5.6 Instruction continue206
      • 2.5.7 Instruction else206
      • 2.5.8 Générateurs207
      • 2.6 Constructions fonctionnelles210
      • 2.6.1 Construction conditionnelle210
      • 2.6.2 Générateurs210
      • 2.6.3 Compréhensions de listes210
      • 2.6.4 Compréhensions d'ensembles211
      • 2.6.5 Compréhensions de dictionnaires211
      • 2.7 Compréhensions et expressions d'affectation211
      • 2.8 Gestion des exceptions211
      • 2.8.1 Présentation rapide des exceptions211
      • 2.8.2 Lever une exception212
      • 2.8.3 Pourquoi lever une exception ?212
      • 2.8.4 Assertions213
      • 2.8.5 Capturer une exception214
      • 2.8.6 Effectuer un traitement de l'exception215
      • 2.8.7 Gérer la sortie du bloc de capture217
      • 2.8.8 Gérer le non-déclenchement d'exceptions217
      • 2.8.9 Gestionnaire de contexte219
      • 2.8.10 Programmation asynchrone220
      • 2.9 Divers221
      • 2.9.1 Gérer des imports221
      • 2.9.2 Traverser les espaces de nommage222
      • 2.9.3 Fonctions print, help, eval et exec224
      • Chapitre 3-2
      • Déclarations
      • 1. Variable227
      • 1.1 Qu'est-ce qu'une variable ?227
      • 1.1.1 Contenu227
      • 1.1.2 Contenant227
      • 1.1.3 Modes de modification d'une variable229
      • 1.2 Typage dynamique232
      • 1.2.1 Affectation : rappels232
      • 1.2.2 Primitive type et nature du type232
      • 1.2.3 Caractéristiques du typage Python233
      • 1.3 Visibilité236
      • 1.3.1 Espace global236
      • 1.3.2 Notion de bloc236
      • 2. Fonction240
      • 2.1 Déclaration240
      • 2.2 Paramètres241
      • 2.2.1 Signature d'une fonction241
      • 2.2.2 Notion d'argument ou de paramètre242
      • 2.2.3 Valeur par défaut243
      • 2.2.4 Valeur par défaut mutable244
      • 2.2.5 Paramètres nommés245
      • 2.2.6 Déclaration de paramètres extensibles246
      • 2.2.7 Passage de paramètres étoilés247
      • 2.2.8 Signature universelle248
      • 2.2.9 Obliger un paramètre à être nommé (keyword-only)249
      • 2.3 Obliger un paramètre à être positionnel (positional-only)251
      • 2.3.1 Annotations/type hint/typage statique251
      • 3. Classe255
      • 3.1 Déclaration255
      • 3.1.1 Signature255
      • 3.1.2 Attribut255
      • 3.1.3 Méthode256
      • 3.1.4 Bloc local256
      • 3.2 Instanciation257
      • 3.2.1 Syntaxe257
      • 3.2.2 Relation entre l'instance et la classe257
      • 4. Module258
      • 4.1 À quoi sert un module ?258
      • 4.2 Déclaration258
      • 4.3 Instructions spécifiques259
      • 4.4 Comment appréhender le contenu d'un module ?260
      • 4.5 Compilation des modules260
      • Chapitre 3-3
      • Modèle objet
      • 1. Tout est objet263
      • 1.1 Principes263
      • 1.1.1 Quel sens donner à « objet » ?263
      • 1.1.2 Adaptation de la théorie objet dans Python264
      • 1.1.3 Généralités265
      • 1.2 Classes266
      • 1.2.1 Introduction266
      • 1.2.2 Déclaration impérative d'une classe266
      • 1.2.3 Instance267
      • 1.2.4 Objet courant268
      • 1.2.5 Déclaration par prototype d'une classe269
      • 1.2.6 Tuples nommés271
      • 1.3 Méthodes272
      • 1.3.1 Déclaration272
      • 1.3.2 Appel de méthode273
      • 1.3.3 Méthodes et attributs spéciaux276
      • 1.3.4 Constructeur et initialisateur279
      • 1.3.5 Gestion automatisée des attributs280
      • 1.3.6 Intérêt du paradigme objet281
      • 1.3.7 Relation entre objets281
      • 1.4 Héritage282
      • 1.4.1 Polymorphisme par sous-typage282
      • 1.4.2 Surcharge de méthode283
      • 1.4.3 Surcharge des opérateurs285
      • 1.4.4 Polymorphisme paramétrique285
      • 1.4.5 Héritage multiple287
      • 2. Autres outils de la programmation objet289
      • 2.1 Principes289
      • 2.2 Interfaces290
      • 2.3 Attributs292
      • 2.4 Propriétés294
      • 2.5 Emplacements297
      • 2.6 Métaclasses298
      • 2.7 Classes abstraites300
      • 2.8 La Zope Component Architecture303
      • 2.8.1 Présentation303
      • 2.8.2 Installation303
      • 2.8.3 Définir une interface et un composant304
      • 2.8.4 Autres fonctionnalités305
      • 2.8.5 Avantages de la ZCA305
      • 3. Fonctions spéciales et primitives associées305
      • 3.1 Personnalisation305
      • 3.1.1 Classes305
      • 3.1.2 Instances307
      • 3.1.3 Comparaison308
      • 3.1.4 Évaluation booléenne308
      • 3.1.5 Relations d'héritage ou de classe à instance309
      • 3.2 Classes particulières309
      • 3.2.1 Itérateurs309
      • 3.2.2 Conteneurs312
      • 3.2.3 Instances assimilables à des fonctions312
      • 3.2.4 Ressources à protéger313
      • 3.2.5 Types314
      • 3.2.6 Classes de données314
      • Chapitre 3-4
      • Nombres, booléens et algorithmes appliqués
      • 1. Nombres315
      • 1.1 Types315
      • 1.1.1 Entiers315
      • 1.1.2 Réels316
      • 1.1.3 Socle commun aux nombres entiers et réels317
      • 1.1.4 Méthodes dédiées aux nombres entiers318
      • 1.1.5 Méthodes dédiées aux nombres réels319
      • 1.1.6 Complexes319
      • 1.2 La console Python, la calculatrice par excellence320
      • 1.2.1 Opérateurs mathématiques binaires320
      • 1.2.2 Opérateurs binaires particuliers321
      • 1.2.3 Opérateurs mathématiques unaires322
      • 1.2.4 Arrondis323
      • 1.2.5 Opérateurs de comparaison326
      • 1.2.6 Opérations mathématiques n-aires327
      • 1.2.7 Fonctions mathématiques usuelles328
      • 1.3 Représentations d'un nombre333
      • 1.3.1 Représentation décimale333
      • 1.3.2 Représentation par un exposant333
      • 1.3.3 Représentation par une fraction333
      • 1.3.4 Représentation hexadécimale334
      • 1.3.5 Représentation octale335
      • 1.3.6 Représentation binaire336
      • 1.3.7 Opérations binaires336
      • 1.3.8 Longueur de la représentation mémoire d'un entier338
      • 1.4 Conversions340
      • 1.4.1 Conversion entre entiers et réels340
      • 1.4.2 Conversion entre réels et complexes340
      • 1.4.3 Conversion vers un booléen341
      • 1.5 Travailler avec des variables342
      • 1.5.1 Un nombre est non mutable342
      • 1.5.2 Modifier la valeur d'une variable342
      • 1.5.3 Opérateurs d'incrémentation343
      • 1.6 Statistiques344
      • 2. Booléens345
      • 2.1 Le type booléen345
      • 2.1.1 Classe bool345
      • 2.1.2 Les deux objets True et False346
      • 2.1.3 Différence entre l'opérateur d'égalité et d'identité346
      • 2.2 Évaluation booléenne346
      • 2.2.1 Méthode générique346
      • 2.2.2 Objets classiques346
      • Chapitre 3-5
      • Séquences et algorithmes appliqués
      • 1. Présentation des différents types de séquences349
      • 1.1 Généralités349
      • 1.2 Les listes350
      • 1.3 Les n-uplets351
      • 1.4 Conversion entre listes et n-uplets353
      • 1.5 Socle commun entre liste et n-uplet353
      • 2. Notion d'itérateur354
      • 3. Utilisation des indices et des tranches356
      • 3.1 Définition de l'indice d'un objet et des occurrences356
      • 3.2 Utiliser l'indice pour adresser la séquence358
      • 3.3 Retrouver les occurrences d'un objet et leurs indices359
      • 3.4 Taille d'une liste, comptage d'occurrences360
      • 3.5 Utiliser l'indice pour modifier ou supprimer361
      • 3.6 Itération simple363
      • 3.7 Présentation de la notion de tranches (slices)366
      • 3.8 Cas particulier de la branche 2.x de Python375
      • 3.9 Utilisation basique des tranches376
      • 3.10 Utilisation avancée des tranches377
      • 4. Utilisation des opérateurs379
      • 4.1 Opérateur +379
      • 4.2 Opérateur *380
      • 4.3 Opérateur+ =383
      • 4.4 Opérateur * =384
      • 4.5 Opérateur in385
      • 4.6 Opérateurs de comparaison386
      • 5. Méthodes de modifications387
      • 5.1 Ajouter des éléments dans une liste et un n-uplet387
      • 5.2 Supprimer un objet d'une liste et d'un n-uplet389
      • 5.3 Solutions de contournement pour la modification de n-uplets 393
      • 5.4 Renverser une liste ou un tuple394
      • 5.5 Trier une liste395
      • 6. Utilisation avancée des listes398
      • 6.1 Opérations d'ensemble398
      • 6.2 Pivoter une séquence399
      • 6.3 Itérer correctement400
      • 6.4 Programmation fonctionnelle401
      • 6.5 Compréhensions de listes403
      • 6.6 Itérations avancées405
      • 6.7 Combinatoire409
      • 7. Adapter les listes à des besoins spécifiques412
      • 7.1 Liste d'entiers412
      • 7.2 Présentation du type array414
      • 7.3 Utiliser une liste comme pile415
      • 7.4 Utiliser une liste comme file d'attente416
      • 7.5 Conteneur plus performant416
      • 7.6 Utiliser des listes pour représenter des matrices417
      • 7.7 Liste sans doublons419
      • 8. Autres types de données421
      • Chapitre 3-6
      • Ensembles et algorithmes appliqués
      • 1. Présentation425
      • 1.1 Définition d'un ensemble425
      • 1.2 Différences entre set et frozenset426
      • 1.3 Utilisation pour dédoublonner des listes427
      • 1.4 Rajouter une relation d'ordre427
      • 2. Opérations ensemblistes428
      • 2.1 Opérateurs pour un ensemble à partir de deux autres428
      • 2.2 Opérateurs pour modifier un ensemble à partir d'un autre429
      • 2.3 Méthodes équivalentes à la création ou modification ensembliste430
      • 2.4 Méthodes de comparaison des ensembles430
      • 2.5 Exemples non classiques d'utilisation431
      • 3. Méthodes de modification d'un ensemble435
      • 3.1 Ajouter un élément435
      • 3.2 Supprimer un élément435
      • 3.3 Vider un ensemble436
      • 3.4 Dupliquer un élément436
      • 3.5 Sortir une valeur d'un ensemble437
      • 3.6 Utiliser un ensemble comme un recycleur d'objets438
      • 3.7 Algorithmique avancée : résolution du problème des n-dames441
      • Chapitre 3-7
      • Chaînes de caractères et algorithmes appliqués
      • 1. Présentation443
      • 1.1 Définition443
      • 1.2 Vocabulaire444
      • 1.3 Spécificités de la branche 2.x445
      • 1.4 Changements apportés par la branche 3.x446
      • 1.5 Chaîne de caractères en tant que séquence de caractères448
      • 1.6 Caractères450
      • 1.7 Opérateurs de comparaison451
      • 2. Formatage de chaînes de caractères454
      • 2.1 Opérateur modulo454
      • 2.2 Méthodes de formatage sur l'ensemble de la chaîne459
      • 2.3 Nouvelle méthode de formatage des variables dans une chaîne ....462
      • 2.4 Littéraux formatés465
      • 3. Opérations d'ensemble466
      • 3.1 Séquençage de chaînes466
      • 3.2 Opérations sur la casse468
      • 3.3 Recherche sur une chaîne de caractères470
      • 3.4 Informations sur les caractères470
      • 4. Problématiques relatives à l'encodage472
      • 4.1 Encodage par défaut472
      • 4.2 Encodage du système472
      • 4.3 L'unicode, référence absolue472
      • 4.4 Autres encodages473
      • 4.5 Ponts entre l'unicode et le reste du monde474
      • 4.6 Revenir vers l'Unicode475
      • 5. Manipulations de bas niveau avancées476
      • 5.1 Opérations de comptage476
      • 5.2 Une chaîne de caractères vue comme une liste477
      • 5.3 Une chaîne de caractères vue comme un ensemble de caractères478
      • 6. Représentation mémoire478
      • 6.1 Présentation du type bytes478
      • 6.2 Lien avec les chaînes de caractères479
      • 6.3 Présentation du type bytearray480
      • 6.4 Gestion d'un jeu de caractères482
      • Chapitre 3-8
      • Dictionnaires et algorithmes appliqués
      • 1. Présentation489
      • 1.1 Définition489
      • 1.2 Évolutions et différences entre les branches 2.x et 3.x490
      • 1.3 Vues de dictionnaires491
      • 1.4 Instanciation493
      • 1.5 Compréhension de dictionnaire494
      • 2. Manipuler un dictionnaire494
      • 2.1 Récupérer une valeur d'un dictionnaire494
      • 2.2 Modifier les valeurs d'un dictionnaire495
      • 2.3 Supprimer une entrée d'un dictionnaire497
      • 2.4 Dupliquer un dictionnaire497
      • 2.5 Utiliser le dictionnaire comme agrégateur de données498
      • 2.6 Méthodes d'itération499
      • 3. Utilisation avancée des dictionnaires499
      • 3.1 Rajouter une relation d'ordre499
      • 3.2 Algorithmiques classiques500
      • 3.3 Adapter les dictionnaires à des besoins spécifiques503
      • 3.4 Représentation universelle de données505
      • Chapitre 3-9
      • Données temporelles et algorithmes appliqués
      • 1. Gérer une date calendaire507
      • 1.1 Notion de date calendaire507
      • 1.2 Travailler sur une date508
      • 1.3 Considérations astronomiques509
      • 1.4 Considérations historiques509
      • 1.5 Considérations techniques509
      • 1.6 Représentation textuelle510
      • 2. Gérer un horaire ou un moment d'une journée512
      • 2.1 Notion d'instant512
      • 2.2 Notion de fuseau horaire513
      • 2.3 Représentation textuelle513
      • 3. Gérer un instant absolu514
      • 3.1 Notion d'instant absolu514
      • 3.2 Rapport avec les notions précédentes515
      • 3.3 Représentation textuelle517
      • 3.4 Gestion des fuseaux horaires517
      • 3.5 Créer une date à partir d'une représentation textuelle517
      • 4. Gérer une différence entre deux dates ou instants518
      • 4.1 Notion de différence et de résolution518
      • 4.2 Considérations techniques519
      • 4.3 Utilisation avec des dates calendaires520
      • 4.4 Utilisation avec des horaires520
      • 4.5 Utilisation avec des dates absolues520
      • 4.6 La seconde comme unité de base521
      • 4.7 Précision à la nanoseconde521
      • 5. Spécificités des fuseaux horaires521
      • 6. Problématiques de bas niveau522
      • 6.1 Timestamp et struct_time522
      • 6.2 Mesures de performances523
      • 7. Utilisation du calendrier526
      • 7.1 Présentation du module calendar526
      • 7.2 Fonctions essentielles du calendrier530
      • Partie 4 : Les fonctionnalités
      • Chapitre 4-1
      • Manipulation de données
      • 1. Manipuler des fichiers533
      • 1.1 Ouvrir un fichier533
      • 1.2 Lire un fichier534
      • 1.3 Écrire un fichier535
      • 1.4 Comparer deux fichiers536
      • 2. Utilitaire de sauvegarde538
      • 3. Lire un fichier de configuration538
      • 4. Format d'export/import539
      • 4.1 CSV539
      • 4.1.1 Exploiter un fichier CSV540
      • 4.1.2 Génération d'un fichier CSV543
      • 4.2 JSON546
      • 4.3 Base64548
      • 4.4 Pickle549
      • 5. Compresser et décompresser un fichier551
      • 5.1 Tarfile551
      • 5.2 Gzip553
      • 5.3 BZ2554
      • 5.4 Zi p file554
      • 5.5 Interface de haut niveau556
      • 6. Outils de manipulation de données557
      • 6.1 Générer des nombres aléatoires557
      • 6.2 Expressions régulières558
      • 7. Cryptographie légère562
      • 7.1 Nombre aléatoire sécurisé562
      • 7.2 Fonctions de chiffrement563
      • 7.3 Code d'authentification de message565
      • 7.4 Empreinte de fichier566
      • 7.5 Stéganographie566
      • 7.6 Communication inter-applicative sécurisée570
      • Chapitre 4-2
      • Bases de données
      • 1. Introduction573
      • 2. Accès à une base de données relationnelle573
      • 2.1 Point d'entrée573
      • 2.2 MySQL574
      • 2.3 PostgreSQL579
      • 2.4 SQLite581
      • 2.5 Oracle582
      • 3. Utilisation d'un ORM582
      • 3.1 Qu'est-ce qu'un ORM ?582
      • 3.2 ORM proposés par Python582
      • 3.3 SQLAlchemy583
      • 3.3.1 Introspection sur une table existante583
      • 3.3.2 Manipuler des données sur une table existante586
      • 3.3.3 Décrire une base de données par le code590
      • 4. Autres bases de données591
      • 4.1 CSV591
      • 4.2 NoSQL597
      • 4.3 Base de données orientée objet : ZODB598
      • 4.4 Base de données orientée graphe : Neo4j602
      • 4.5 Base de données de type clé-valeur : Redis604
      • 4.6 Bases de données orientées documents : CouchDB et MongoDB605
      • 4.7 Bases de données natives XML : BaseX, eXist606
      • 4.8 Cassandra607
      • 4.9 Bases de données orientées colonnes : HBase607
      • 4.10 Big Data : l'écosystème Hadoop609
      • 5. LDAP612
      • 5.1 Protocole612
      • 5.2 Serveurs612
      • 5.3 Terminologie612
      • 5.4 Installation613
      • 5.5 Ouvrir une connexion à un serveur613
      • 5.6 Effectuer une recherche614
      • 5.7 Synchrone vs asynchrone615
      • 5.8 Connexions sécurisées616
      • Partie 5 : Mise en pratique
      • Chapitre 5-1
      • Créer un environnement de travail en 10 minutes
      • 1. Description de l'application à construire617
      • 2. Containers618
      • 2.1 Portainer618
      • 2.2 Base de données619
      • 3. Créer son container Docker621
      • 4. Installer ses bibliothèques Python623
      • Chapitre 5-2
      • Créer une application web en 30 minutes
      • 1. Description de l'application à construire625
      • 2. Mise en place626
      • 2.1 Isolation de l'environnement626
      • 2.2 Création du projet627
      • 2.3 Paramétrage627
      • 2.4 Premiers essais629
      • 3. Réalisation de l'application630
      • 3.1 Modèles630
      • 3.2 Templates632
      • 3.3 Vues634
      • 4. Pour aller plus loin638
      • Chapitre 5-3
      • Créer une application console en 10 minutes
      • 1. Objectif639
      • 2. Enregistrer le script640
      • 3. Création des données640
      • 4. Parseur d'arguments641
      • Chapitre 5-4
      • Créer une application graphique en 20 minutes
      • 1. Objectif643
      • 1.1 Fonctionnel643
      • 1.2 Technique643
      • 2. Présentation rapide de Gtk et d'astuces644
      • 2.1 Présentation644
      • 2.2 Astuces644
      • 3. Démarrer le programme645
      • 4. Interface graphique avec Glade648
      • 5. Créer le composant graphique650
      • 6. Contrôleur652
      • 7. Autres bibliothèques graphiques653
      • 7.1 TkInter653
      • 7.2 wxPython653
      • 7.3 PyQt653
      • 7.4 PySide654
      • 7.5 Autres654
      • Chapitre 5-5
      • Créer un jeu en 30 minutes avec PyGame
      • 1. Présentation de PyGame655
      • 2. Réalisation d'un jeu Tetris656
      • 2.1 Présentation du jeu656
      • 2.2 Présentation des problématiques657
      • 2.3 Création des constantes657
      • Annexes
      • 1. Objets mutables et non mutables669
      • 2. Table Unicode672
      • 3. Bytes672
      • 4. Guide de portage vers Python 3675
      • 5. Comment déboguer677
      • 6. Comment tester la performance678
      • Index681

  • Origine de la notice:
    • BPI
  • Disponible - 681.234 CHA

    Niveau 3 - Informatique