O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Apprendre à programmer avec Python 3

Book Description

Présentation
Un livre incontournable pour acquérir l'exigeante discipline qu'est l'art de la programmation !

Original et stimulant, cet ouvrage aborde au travers d'exemples attrayants et concrets tous les fondamentaux de la programmation. L'auteur a choisi Python, langage moderne et élégant, aussi performant pour le développement d'applications web complexes que pour la réalisation de scripts système ou l'analyse de fichiers XML.

Un support de cours réputé et adopté par de nombreux enseignants, avec 60 pages d'exercices corrigés

Reconnu et utilisé par les enseignants de nombreuses écoles et IUT, complété d'exercices accompagnés de leurs corrigés, cet ouvrage original et érudit est une référence sur tous les fondamentaux de la programmation : choix d'une structure de données, paramétrage, modularité, orientation objet et héritage, conception d'interface, multithreading et gestion d'événements, protocoles de communication et gestion réseau, bases de données... jusqu'à la désormais indispensable norme Unicode (le format UTF-8). On verra notamment la réalisation avec Python 3 d'une application web interactive et autonome, intégrant une base de données SQLite. Cette nouvelle édition traite de la possibilité de produire des documents imprimables (PDF) de grande qualité en exploitant les ressources combinées de Python 2 et Python 3.

A qui s'adresse ce livre ?
  • Aux étudiants en BTS et IUT Informatique et à leurs enseignants ;
  • À tous les autodidactes férus de programmation qui veulent découvrir le langage Python.
Au sommaire
  • A l'école des sorciers
  • Premiers pas
  • Contrôle du flux d'exécution
  • Instructions répétitives
  • Principaux types de données
  • Fonctions prédéfinies
  • Fonctions originales
  • Utilisation de fenêtres et de graphismes
  • Manipuler des fichiers
  • Approfondir les structures de données
  • Classes, objets, attributs
  • Classes, méthodes, héritage
  • Classes et interfaces graphiques
  • Et pour quelques widgets de plus...
  • Analyse de programmes concrets
  • Gestion d'une base de données
  • Applications web
  • Imprimer avec Python
  • Communications à travers un réseau et multithreading
  • Annexe A. Installation de Python
  • Annexe B. Solutions des exercices

Table of Contents

  1. Couverture
  2. Page de titre
  3. Copyright
  4. Chez le même éditeur
  5. Préface
  6. Remerciements
  7. Table des matières
  8. 1. À l’école des sorciers
    1. Boîtes noires et pensée magique
    2. Magie blanche, magie noire
    3. La démarche du programmeur
    4. Langage machine, langage de programmation
    5. Édition du code source - Interprétation
    6. Mise au point d’un programme - Recherche des erreurs (debug)
      1. Erreurs de syntaxe
      2. Erreurs sémantiques
      3. Erreurs à l’exécution
    7. Recherche des erreurs et expérimentation
  9. 2. Premiers pas
    1. Calculer avec Python
    2. Données et variables
    3. Noms de variables et mots réservés
    4. Affectation (ou assignation)
    5. Afficher la valeur d’une variable
    6. Typage des variables
    7. Affectations multiples
    8. Opérateurs et expressions
    9. Priorité des opérations
    10. Composition
  10. 3. Contrôle du flux d’exécution
    1. Séquence d’instructions
    2. Sélection ou exécution conditionnelle
    3. Opérateurs de comparaison
    4. Instructions composées - blocs d’instructions
    5. Instructions imbriquées
    6. Quelques règles de syntaxe Python
      1. Les limites des instructions et des blocs sont définies par la mise en page
      2. Instruction composée : en-tête, double point, bloc d’instructions indenté
      3. Les espaces et les commentaires sont normalement ignorés
  11. 4. Instructions répétitives
    1. Réaffectation
    2. Répétitions en boucle - L’instruction while
      1. Commentaires
      2. Remarques
      3. Élaboration de tables
      4. Construction d’une suite mathématique
    3. Premiers scripts, ou comment conserver nos programmes
      1. Problèmes éventuels liés aux caractères accentués
  12. 5. Principaux types de données
    1. Les données numériques
      1. Le type integer
    2. Le type float
    3. Les données alphanumériques
      1. Le type string
        1. Remarques
        2. Triple quotes
    4. Accès aux caractères individuels d’une chaîne
    5. Opérations élémentaires sur les chaînes
    6. Les listes (première approche)
  13. 6. Fonctions prédéfinies
    1. La fonction print()
    2. Interaction avec l’utilisateur : la fonction input()
    3. Importer un module de fonctions
    4. Un peu de détente avec le module turtle
    5. Véracité/fausseté d’une expression
    6. Révision
      1. Contrôle du flux - utilisation d’une liste simple
      2. Boucle while - instructions imbriquées
  14. 7. Fonctions originales
    1. Définir une fonction
      1. Fonction simple sans paramètres
      2. Fonction avec paramètre
      3. Utilisation d’une variable comme argument
        1. Remarque importante
      4. Fonction avec plusieurs paramètres
        1. Notes
      5. Variables locales, variables globales
      6. Vraies fonctions et procédures
        1. Notes
    2. Utilisation des fonctions dans un script
      1. Notes
    3. Modules de fonctions
    4. Typage des paramètres
    5. Valeurs par défaut pour les paramètres
    6. Arguments avec étiquettes
  15. 8. Utilisation de fenêtres et de graphismes
    1. Interfaces graphiques (GUI)
    2. Premiers pas avec tkinter
      1. Examinons à présent plus en détail chacune des lignes de commandes exécutées
    3. Programmes pilotés par des événements
      1. Exemple graphique : tracé de lignes dans un canevas
      2. Exemple graphique : deux dessins alternés
      3. Exemple graphique : calculatrice minimaliste
      4. Exemple graphique : détection et positionnement d’un clic de souris
    4. Les classes de widgets tkinter
    5. Utilisation de la méthoid() pour contrôler la disposition des widgets
    6. Composition d’instructions pour écrire un code plus compact
    7. Modification des propriétés d’un objet - Animation
    8. Animation automatique - Récursivité
  16. 9. Manipuler des fichiers
    1. Utilité des fichiers
    2. Travailler avec des fichiers
    3. Noms de fichiers - le répertoire courant
    4. Les deux formes d’importation
    5. Écriture séquentielle dans un fichier
      1. Notes
    6. Lecture séquentielle d’un fichier
      1. Notes
    7. L’instruction break pour sortir d’une boucle
    8. Fichiers texte
      1. Remarques
    9. Enregistrement et restitution de variables diverses
    10. Gestion des exceptions : les instructions try - except - else
  17. 10. Approfondir les structures de données
    1. Le point sur les chaînes de caractères
      1. Indiçage, extraction, longueur
      2. Extraction de fragments de chaînes
      3. Concaténation, répétition
      4. Parcours d’une séquence : l’instruction for … in …
      5. Appartenance d’un élément à une séquence : l’instruction in utilisée seule
      6. Les chaînes sont des séquences non modifiables
      7. Les chaînes sont comparables
      8. La norme Unicode
      9. Séquences d’octets : le type bytes
      10. L’encodage Utf-8
      11. Conversion (encodage/décodage) des chaînes
        1. Conversion d’une chaîne bytes en chaîne string
        2. Conversion d’une chaîne string en chaîne bytes
        3. Conversions automatiques lors du traitement des fichiers
        4. Cas des scripts Python
      12. Accéder à d’autres caractères que ceux du clavier
      13. Les chaînes sont des objets
      14. Fonctions intégrées
      15. Formatage des chaînes de caractères
      16. Formatage des chaînes « à l’ancienne »
    2. Le point sur les listes
      1. Définition d’une liste - accès à ses éléments
      2. Les listes sont modifiables
      3. Les listes sont des objets
      4. Techniques de slicing avancé pour modifier une liste
        1. Insertion d’un ou plusieurs éléments n’importe où dans une liste
        2. Suppression / remplacement d’éléments
      5. Création d’une liste de nombres à l’aide de la fonction range()
      6. Parcours d’une liste à l’aide de for, range() et len()
      7. Une conséquence importante du typage dynamique
      8. Opérations sur les listes
      9. Test d’appartenance
      10. Copie d’une liste
        1. Petite remarque concernant la syntaxe
        2. Nombres aléatoires - histogrammes
        3. Tirage au hasard de nombres entiers
      11. Les tuples
      12. Opérations sur les tuples
      13. Les dictionnaires
        1. Création d’un dictionnaire
        2. Opérations sur les dictionnaires
        3. Test d’appartenance
        4. Les dictionnaires sont des objets
        5. Parcours d’un dictionnaire
        6. Les clés ne sont pas nécessairement des chaînes de caractères
        7. Les dictionnaires ne sont pas des séquences
        8. Construction d’un histogramme à l’aide d’un dictionnaire
        9. Contrôle du flux d’exécution à l’aide d’un dictionnaire
  18. 11. Classes, objets, attributs
    1. Utilité des classes
    2. Définition d’une classe élémentaire
    3. Attributs (ou variables) d’instance
    4. Passage d’objets comme arguments dans l’appel d’une fonction
    5. Similitude et unicité
    6. Objets composés d’objets
    7. Objets comme valeurs de retour d’une fonction
    8. Modification des objets
  19. 12. Classes, méthodes, héritage
    1. Définition d’une méthode
      1. Définition concrète d’une méthode dans un script
      2. Essai de la méthode, dans une instance quelconque
    2. La méthode constructeur
      1. Exemple
    3. Espaces de noms des classes et instances
    4. Héritage
    5. Héritage et polymorphisme
      1. Commentaires
    6. Modules contenant des bibliothèques de classes
  20. 13. Classes et interfaces graphiques
    1. Code des couleurs : un petit projet bien encapsulé
    2. Cahier des charges de notre programme
    3. Mise en œuvre concrète
    4. Commentaires
    5. Petit train : héritage, échange d’informations entre objets
    6. Cahier des charges
    7. Implémentation
    8. Commentaires
    9. OscilloGraphe : un widget personnalisé
    10. Expérimentation
    11. Cahier des charges
    12. Implémentation
    13. Curseurs : un widget composite
      1. Présentation du widget Scale
      2. Construction d’un panneau de contrôle à trois curseurs
        1. Commentaires
        2. Propagation des événements
    14. Intégration de widgets composites dans une application synthèse
    15. Commentaires
  21. 14. Et pour quelques widgets de plus
    1. Les boutons radio
      1. Commentaires
    2. Utilisation de cadres pour la composition d’une fenêtre
      1. Commentaires
    3. Comment déplacer des dessins à l’aide de la souris
      1. Commentaires
    4. Widgets complémentaires, widgets composites
      1. Combo box simplifié
        1. Commentaires
      2. Le widget Text assorti d’un ascenseur
        1. Gestion du texte affiché
        2. Commentaires
        3. Canevas avec barres de défilement
        4. Commentaires
    5. Application à fenêtres multiples - paramétrage implicite
      1. Commentaires
    6. Barres d’outils - expressions lambda
      1. Métaprogrammation - expressions lambda
      2. Passage d’une fonction (ou d’une méthode) comme argument
      3. Fenêtres avec menus
        1. Cahier des charges de l’exercice
        2. Première ébauche du programme
          1. Analyse du script
        3. Ajout de la rubrique Musiciens
          1. Analyse du script
        4. Ajout de la rubrique Peintres
          1. Analyse du script
        5. Ajout de la rubrique Options
        6. Menu avec cases à cocher
        7. Menu avec choix exclusifs
        8. Contrôle du flux d’exécution à l’aide d’une liste
        9. Présélection d’une rubrique
  22. 15. Analyse de programmes concrets 2
    1. Jeu des bombardes
      1. Prototypage d’une classe Canon
        1. Commentaires
      2. Ajout de méthodes au prototype
        1. Commentaires
      3. Développement de l’application
        1. Commentaires
      4. Développements complémentaires
        1. Commentaires
    2. Jeu de Ping
      1. Principe
      2. Programmation
        1. Cahier des charges du logiciel à développer
  23. 16. Gestion d’une base de données
    1. Les bases de données
      1. SGBDR - Le modèle client/serveur
      2. Le langage SQL
      3. SQLite
      4. Création de la base de données - Objets « connexion » et « curseur»
      5. Connexion à une base de données existante
      6. Recherches sélectives dans une base de données
      7. La requête select
    2. Ébauche d’un logiciel client pour PostgreSQL
      1. Décrire la base de données dans un dictionnaire d’application
      2. Définir une classe d’objets-interfaces
        1. Commentaires
      3. Construire un générateur de formulaires
        1. Commentaires
      4. Le corps de l’application
        1. Commentaires
  24. 17. Applications web
    1. Pages web interactives
    2. Un serveur web en pur Python !
      1. Première ébauche : mise en ligne d’une page web minimaliste
      2. Ajout d’une deuxième page
      3. Présentation et traitement d’un formulaire
      4. Analyse de la communication et des erreurs
      5. Structuration d’un site à pages multiples
      6. Prise en charge des sessions
    3. Réalisation concrète d’un site web interactif
      1. Le script
      2. Les « patrons » HTML
    4. Autres développements
  25. 18. Imprimer avec python
    1. L’interface graphique peut aider
    2. Le PDF, langage de description de page pour l’impression
    3. Installer Python 2.6 ou 2.7 pour utiliser des modules Python 2
    4. Exploitation de la bibliothèque ReportLab
      1. Un premier document PDF rudimentaire
        1. Commentaires
      2. Générer un document plus élaboré
        1. Commentaires
    5. Documents de plusieurs pages et gestion des paragraphes
      1. Exemple de script pour la mise en page d’un fichier texte
      2. Commentaires
        1. En conclusion
  26. 19. Communications à travers un réseau et multithreading
    1. Les sockets
      1. Construction d’un serveur rudimentaire
        1. Commentaires
      2. Construction d’un client rudimentaire
        1. Commentaires
    2. Gestion de plusieurs tâches en parallèle à l’aide de threads
      1. Client réseau gérant l’émission et la réception simultanées
        1. Commentaires
    3. Serveur réseau gérant les connexions de plusieurs clients en parallèle
      1. Commentaires
    4. Jeu des bombardes, version réseau
      1. Programme serveur : vue d’ensemble
      2. Protocole de communication
        1. Remarques complémentaires
    5. Programme serveur : première partie
    6. Synchronisation de threads concurrents à l’aide de verrous (threadlocks)
      1. Utilisation
    7. Programme serveur : suite et fin
      1. Commentaires
    8. Programme client
      1. Commentaires
      2. Conclusions et perspectives
      3. Utilisation de threads pour optimiser les animations
        1. Temporisation des animations à l’aide de after()
        2. Temporisation des animations à l’aide de time.sleep()
        3. Exemple concret
          1. Commentaires
  27. 20. Annexe a. installation de python
    1. Sous Windows
    2. Sous Linux
    3. Sous Mac OS
    4. Installation de Cherrypy
    5. Installation de pg8000
    6. Installation de ReportLab et de Python Imaging Library
  28. 21. Annexe b. solutions des exercices
  29. 22. Index