Cours vidéo Python pour débutants

| Pythonneries | pythonneries |

La puissance de Python combinée à sa simplicité ont rendu ce langage populaire comme langage d'initiation à la programmation et à l'algorithmique. Ce tutoriel, destiné à des débutants en informatique, utilise la vidéo pour aider à visualiser les concepts.
Commentez

- Titre : Cours vidéo Python pour débutants

- Auteurs : Pythonneries, pythonneries

- Parution : 8 juin 2010

- Mise à jour : 28 novembre 2011

- Licence : Copyright ® 2010 Pythonneries. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Introduction générale

- Au secours, j'utilise Python 3.x !!

- I. Introduction

- II. Les bases de Python

- III. Premier programme Python

- IV. Les listes

- V. Fonctions et méthodes (1)

- VI. Méthodes (2) et logique

- VII. Contrôle de flux

- VIII. Un vrai programme

- IX. Fichiers et exceptions

- X. Algorithme

- XI. Créer une fonction

- XII. Coder comme un pro

- XIII. La récursion

- XIV. La récursion (2) - Trier

- XV. Objets(1) - Introduction

- XVI. Objets (2) - Héritage

- XVII. Objets (3) - Notions plus avancées

- XVIII. Interfaces graphiques (1) - Éléments graphiques

- XIX. Interfaces graphiques (2) - Programmation événementielle

- XX. Interfaces graphiques (3) - Améliorer l'affichage et gérer les erreurs

- XXI. Interfaces graphiques (4) - Améliorations esthétiques

- XXII. Interfaces graphiques (5) - Activer et désactiver les boutons, dialogue de gestion de fichiers

- XXIII. Bases de données (1) - Parenthèse relationnelle.

- XXIV. Bases de données (2) - Accéder à une base de données en Python

- XXV. Bases de données (3) - Accéder à une base de données en Python

- XXVI. Bases de données (4) - Présentation d'une application de gestion des données d'une base

- XXVII. Bases de données (5) - Application de gestion des données d'une base

- XXVIII. Bases de données (6) - Application de gestion des données d'une base

- XXIX. Bases de données (7) - Application de gestion des données d'une base

- Code source de l'application

- XXX. Parenthèse Web (1) - Comment votre navigateur et un serveur HTTP dialoguent, avec l'exemple d'Apache.

- XXXI. Parenthèse Web (2) - Les formulaires HTML et comment on peut produire des pages dynamiquement avec un programme CGI

- XXXII. Ecrire un programme CGI en Python

- XXXIII. Python sur le web(2) : Développer une application avec WSGI (1re partie)

- XXXIV. Python sure le web(3) : Développer une application avec WSGI (2e partie)

- Conclusion (temporaire)

Introduction générale

L'auteur de ce tutoriel s'est retrouvé, un soir de septembre, à une réunion de parents d'élèves de seconde où la professeur de mathématiques, après avoir annoncé une initiation à l'algorithmique avec Python, s'est empressée, fort honnêtement, d'ajouter « ne me demandez pas de vous en parler, on est en train de nous former ». L'auteur de ces lignes, un quart de siècle d'informatique au compteur, auteur d'ouvrages informatiques et relativement accoutumé à former via classes et séminaires dans différents pays, a soudainement réalisé que l'on pouvait être un excellent professeur de maths sans se sentir nécessairement très à l'aise en informatique. Et que son expérience de consultant, plus particulièrement spécialisé dans les performances des bases de données, avait développé chez lui des réflexes qui faisaient défaut à la plupart des enseignants, aussi consciencieux et bien intentionnés soient-ils. Il s'est donc attelé à expliquer à sa manière et aussi clairement que possible, bien sûr le langage Python et ses particularités, mais surtout le B-A BA de l'informatique en évitant soigneusement les vieux classiques tels que le tri à bulles (inefficace) et l'explication de la récursion par la factorielle (il en parle, juste pour expliquer pourquoi c'est un mauvais exemple), en espérant être utile tant à ceux qui enseignent qu'à ceux qui cherchent à apprendre - et, tant qu'à faire, distrayant et intéressant. Parti avec l'idée de faire le tour du sujet en cinq ou six modules de 10 minutes, il s'est laissé un peu emporter...

Au secours, j'utilise Python 3.x !!

Les Pythonneries utilisent une version 2.x de Python, toujours très répandue et pas du tout obsolète. Ceci dit, peut-être n'avez-vous à votre disposition qu'une version 3.x de Python ? Pas de panique ! Les Pythonneries sauront vous guider, moyennant quelques adaptations.

Il y a un certain nombre d'incompatibilités entre les versions 2.x et 3.x de Python, dont le détail (en anglais) se trouve ici (merci à FaireEtDefaire pour le lien).

Dans le cadre particulier des Pythonneries, qui n'explorent qu'une petite partie du langage (c'est davantage une initiation à l'informatique avec Python qu'un cours Python à proprement parler), il y a deux choses à modifier par rapport aux vidéos si vous utilisez Python 3.x:

Les Pythonneries utilisent soit <>, soit != pour signifier "différent". Les deux sont acceptés en Python 2.x. Seul != est valide en Python 3.x.
Dans les Pythonneries l'affichage de A se fait avec

print A

et celui de A et B avec

print A, B

Avec Python 3.x cela devient respectivement

print(A)

et

print(A, B)

Et voilà tout. Le point le plus délicat concerne la partie "interfaces graphiques" (Pythonneries 20, 21 et 22, ainsi que 26 à 29) qui emploie une bibliothèque nommée WxPython qui, au moins en Juin 2011, n'est pas disponible pour Python 3.x. Je vous recommande d'utiliser la bibliothèque concurrente PyQt qui l'est. Vous ne perdrez pas votre temps à regarder comment on fait avec WxPython, parce que, dans l'esprit, c'est très proche et les explications tentent toujours d'être générales. Pour les subtilités propres à PyQt, et une manière de coder moins "manuelle" que ce qui est proposé dans les Pythonneries, vous pouvez vous reporter à ce cours.

En espérant vous donner le goût de l'informatique et d'en apprendre davantage...

I - Introduction

Qu'est-ce que ce langage informatique, Python ? Comment le situer par rapport à d'autres langages ? D'où est-ce qu'il sort ? Pourquoi ce nom ? Comment est-ce que je peux l'avoir sur ma machine ? Voilà les questions auxquelles cette vidéo apporte une réponse.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/swGl-iPmYic&hl=fr_FR&fs=1

II - Les bases de Python

Si vous ne connaissez rien à l'informatique, cette vidéo vous expliquera ce qu'on appelle affectation et comment manipuler nombres et texte dans Python. Si vous connaissez déjà l'informatique, vous découvrirez que le fait que Python détermine tout seul le type de vos données peut amener quelques surprises.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/Dwy2AAfcOkQ&hl=fr_FR&fs=1

III - Premier programme Python

Vous verrez comment interagir avec un programme Python, des fonctions ultra-utiles, comment sauvegarder un programme et le relancer et un problème pénible qu'ignorent superbement les anglo-saxons : les caractères accentués.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/HPM2ZAxKVlU&hl=fr_FR&fs=1

IV - Les listes

Après les variables simples, les listes et les opérations que l'on peut leur appliquer - ajouter ou enlever des éléments, en extraire des morceaux, parcourir tous les éléments ? Et au passage, une différence fondamentale entre la modification d'une variable simple et celle d'une liste.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/J3RJE8516MU&hl=fr_FR&fs=1

V - Fonctions et méthodes (1)

Les fonctions qu'il faut absolument connaître pour modifier et afficher les données d'un programme, et des fonctions assez spéciales qui sont " accrochées " à une variable - qu'on appelle des méthodes (nous en reparlerons plus loin), qui sont illustrées par différents traitements que nous pouvons appliquer à du texte.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/u3u0BxbzLFw&hl=fr_FR&fs=1

VI - Méthodes (2) et logique

Un tour rapide des méthodes qui s'appliquent aux listes, un tout premier programme très simple qui vous montre comment se déroule l'exécution et enfin quelque chose d'absolument fondamental en informatique : la logique et les tests sur la vérité de ce que l'on appelle une proposition logique (pas de panique, c'est plus simple que cela n'en a l'air), avec en prime un panorama sur quelques grands penseurs.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/h_s6ctXNPJ0&hl=fr_FR&fs=1

VII - Contrôle de flux

Une vidéo fondamentale qui s'appuie sur les tests logiques présentés dans la pythonnerie n°6 pour vous montrer comment exécuter des traitements sous condition, comment répéter des traitements ? Le B-A-BA de l'informatique, aux couleurs de Python, et où vous verrez le programme s'exécuter sous vos yeux (forcément ébahis), au ralenti !

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/-mBZbM9Iar8&hl=fr_FR&fs=1

VIII - Un vrai programme

Maintenant que nous maîtrisons les fondamentaux, un authentique programme de quizz, simple mais parfaitement fonctionnel, qui est en plus l'occasion de découvrir une des richesses de Python, les modules, et comment faire pour limiter les problèmes avec ces #$£% d'accents.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/0Rw29Pyr7nM&hl=fr_FR&fs=1

IX - Fichiers et exceptions

Nous améliorons le programme de la pythonnerie n°8 en le rendant générique, c'est-à-dire en sortant questions et réponses du programme - l'occasion de voir comment lire un fichier externe et comment intercepter les messages d'injures du système, quand il y a une erreur, pour les transformer en messages compréhensibles par l'utilisateur du programme.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/WaVYoF4tiEY&hl=fr_FR&fs=1

X - Algorithme

Où l'on parle de l'Inde, du califat de Bagdad, d'un pape et de comment traiter un problème en informatique. Au risque de décevoir les admirateurs de Prévert, pas de raton-laveur.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/6Q0ZniYCjzI&hl=fr_FR&fs=1

XI - Créer une fonction

Vous verrez comment définir vos propres traitements dans du code réutilisable dans différents programmes, sur l'exemple d'un algorithme pas si simple qui amène à se poser un certain nombre de questions.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/SPLqHZan1Zg&hl=fr_FR&fs=1

XII - Coder comme un pro

En informatique, une bonne part du code consiste à traiter les différents cas d'erreurs possibles, anticiper tout ce qui peut arriver, et essayer de garder un programme "en contrôle" quoi qu'il advienne. C'est ce que nous faisons dans cette vidéo, en essayant de donner une qualité industrielle à la fonction de la pythonnerie n°_11.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/-xVAVXvENek&hl=fr_FR&fs=1

XIII - La récursion

J'ai vu une fois dans le glossaire d'une documentation informatique en cours d'élaboration : « Récursion : voir récursion ». Si la plaisanterie vous échappe, regardez cette vidéo ! Avec une initiation (très superficielle !) à HTML en prime.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/oKpYx0_PcBE&hl=fr_FR&fs=1

XIV - La récursion (2) - Trier

Les tris sont une des tartes à la crème de l'enseignement de la programmation ; mais cette vidéo va surtout vous montrer le plus efficace des algorithmes, qui est récursif. Accrochez-vous bien.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/yHF7yZ7zpDw&hl=fr_FR&fs=1

XV - Objets(1) - Introduction

Jusqu'ici, nous n'avons vu que ce que l'on appelle la programmation « procédurale ». Nous attaquons dans cette pythonnerie la programmation dite « orientée objet » et la vie sexuelle débridée de certains rongeurs.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/n8NTKHyoMC8&hl=fr_FR&fs=1

XVI - Objets (2) - Héritage

Nous avons vu sur un exemple très simple à quoi correspondait la notion d'objet et comment définir une classe et créer des méthodes. Voyons maintenant comment nous pouvons en pratique bâtir sur des classes existantes et comment créer un objet de multiples manières.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/P2vMRF5dJXs&hl=fr_FR&fs=1

XVII - Objets (3) - Notions plus avancées

Continuons avec les objets en voyant comment nous pouvons rendre la création de l'objet très souple et la manière d'aller jusqu'à redéfinir les opérations pour un type d'objet.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/pVHWgJ3aoJg&hl=fr_FR&fs=1

XVIII - Interfaces graphiques (1) - Éléments graphiques

Une des utilisations essentielles de la programmation objet est la programmation des interfaces graphiques. Nous allons "habiller" le programme développé dans les pythonneries n° 8 et 9 pour lui donner une interface graphique avec wxPython, en nous focalisant d'abord sur l'aspect purement visuel.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/PQ94Zx_ClE8&hl=fr_FR&fs=1

XIX - Interfaces graphiques (2) - Programmation événementielle

Après une comparaison succincte entre wxPython, PyQt et Tkinter, nous allons attacher des actions et rendre fonctionnelle l'application commencée dans la pythonnerie n°18.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/a1Epu6RoV04&hl=fr_FR&fs=1

XX - Interfaces graphiques (3) - Améliorer l'affichage et gérer les erreurs

Nous commencerons par régler des problèmes d'affichage prévisibles avant de nous lancer dans une restructuration du code et gérer les erreurs avec une fenêtre de message.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/kEnMYZPVy08&hl=fr_FR&fs=1

XXI - Interfaces graphiques (4) - Améliorations esthétiques

Ajout d'icônes, modifier la couleur et modifier les polices... l'apparence, ça compte !

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/H8z6XfKWkHo&hl=fr_FR&fs=1

XXII - Interfaces graphiques (5) - Activer et désactiver les boutons, dialogue de gestion de fichiers

La touche finale au programme de quizz : un bouton que l'on active ou non pour "souffler" la bonne réponse, et la possibilité de changer de questionnaire à la volée - l'occasion d'ajouter un certain nombre d'outils à notre panoplie graphique.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/snhhJr9gz3I&hl=fr_FR&fs=1

XXIII - Bases de données (1) - Parenthèse relationnelle.

Il n'y a pas une ligne de Python dans ce tutoriel, mais il explique la philosophie des bases de données relationnelles et donne un bref aperçu du langage SQL. Les fondations...

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/pqoIBiM2AvE&hl=fr_FR&fs=1

XXIV - Bases de données (2) - Accéder à une base de données en Python

Ce tutoriel présente juste le contexte de ce qui sera développé dans les tutoriels suivants ; l'application (gestion de DVD), une problématique intéressante à résoudre (recherche "floue" sur les titres) et une présentation rapide de sqlite qui sera utilisé dans les exemples.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/Now9xiWQp78&hl=fr_FR&fs=1

XXV - Bases de données (3) - Accéder à une base de données en Python

Créer les tables et insérer les données initiales.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/kOQI0h3gRew&hl=fr_FR&fs=1

XXVI - Bases de données (4) - Présentation d'une application de gestion des données d'une base

Cette vidéo présente ce qu'on appelle une application CRUD, c'est à dire d'interrogation et de mise à jour des données dans une base, en wxPython. Logique et cinématique de l'application, SQL suit bientôt ...

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/AGOUayj4tAU&hl=fr_FR&fs=1

XXVII - Bases de données (5) - Application de gestion des données d'une base

Première phase: retourner et afficher les données, en interrogeant une base de films soit sur le titre, soit sur le genre (ou le genre et le titre). C'est aussi l'occasion de dire un mot sur l'injection SQL ...

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/ox6kdCtFxxA&hl=fr_FR&fs=1

XXVIII - Bases de données (6) - Application de gestion des données d'une base

Insertion de nouveaux films dans la base via l'application graphique.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/O56FNa-yChA&hl=fr_FR&fs=1

XXIX - Bases de données (7) - Application de gestion des données d'une base

Mise à jour des données de la base via l'interface, problème des accès concurrents et démo de l'application finie.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/poQkW3s4kiI&hl=fr_FR&fs=1

Code source de l'application

Voici le code source de la DVDthèque: DVDtheque_pythonneries

XXX - Parenthèse Web (1) - Comment votre navigateur et un serveur HTTP dialoguent, avec l'exemple d'Apache.

Une parenthèse pour expliquer le web, HTTP et tout ça, avant de voir comment on peut y faire des choses avec Python

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/E7Od7J5RwGE&hl=fr_FR&fs=1

XXXI - Parenthèse Web (2) - Les formulaires HTML et comment on peut produire des pages dynamiquement avec un programme CGI

Comment on peut rendre un site web dynamique.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/wb6DdLbek58&hl=fr_FR&fs=1

XXXII - Ecrire un programme CGI en Python

Après avoir expliqué les principes de base du CGI, la mise en ouvre, en donnant accès sur le web à la base de DVD créée dans les Pythonneries 24 et 25.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/HbU_BO_O-Tg&hl=fr_FR&fs=1

XXXIII - Python sur le web(2) : Développer une application avec WSGI (1re partie)

Pour avoir le plein contrôle de votre application web grâce à Python, il y a mieux que CGI : WSGI.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/MFOoj8EqCYc&hl=fr_FR&fs=1

XXXIV - Python sure le web(3) : Développer une application avec WSGI (2e partie)

Gérer les fichiers statiques, intégration avec Apache grâce à mod_wsgi.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/v/wNDLiGfWAGU&hl=fr_FR&fs=1

Conclusion (temporaire)

Ce tutoriel est un travail en cours, qui sera (doucement) enrichi et complété au fil du temps. Bien entendu, il n'a aucune prétention à remplacer la documentation de référence, qu'il espère simplement rendre indirectement plus accessible. Mais son auteur espère avoir confirmé le goût de l'informatique chez ceux qui l'avaient déjà et montré aux autres que la programmation n'est pas forcément rébarbative ni mystérieuse.

Avec les remerciements de l'auteur à developpez.com et en particulier à djug, pour l'aider à donner à ce cours une plus large audience et à Wachter , jacques_jean, ClaudeLELOUP, Niitaku, Pierre Fauconnier et _Max_ pour la relecture.