Apprendre à programmer avec Python 3

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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 en 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.

À 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.

Author(s): Gérard Swinnen
Publisher: EYROLLES
Year: 2012

Language: French
Pages: 436

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