Cours de programmation Python

Un ensemble de vidéos pour apprendre la programmation Python

Ayant un peu d’expérience dans le développement Python, j’ai souhaité produire un certain nombre de tutoriels sur ce sujet (sous forme de vidéos YouTube). Mises bout à bout, ces vidéos représentent plusieurs heures de contenu.

Je souhaite que ces vidéos puissent profiter à un maximum de personne. C’est ce qui m’a motivé à rédiger ce billet.

Pour commencer

  • Introduction à la programmation Python : ce premier tutoriel vous permet de préparer votre environnement de développement Python : choix de l’environnement d’exécution, Python 2.x VS Python 3.x, choix d’un IDE (Eclipse, …). Vous allez aussi voir comment exécuter vos premières lignes de code Python.
  • L’indentation de vos codes : en python, l’indentation fait partie de la syntaxe du langage. C’est grâce à elle que l’on défini la notion de bloc d’instructions.

Les types de données en Python

  • Les types scalaires : une présentation des principaux types scalaires du langage Python (entiers, flottants, booléens et chaines de caractères).
  • Les listes et les tuples : ce tutoriel présente les deux types de données "list" et "tuple" au travers de quelques exemples d’utilisation. Les compréhensions de listes y sont aussi abordées.
  • Utilisation du type "set" : ce tutoriel vous montre comment définir un set (un ensemble à valeur unique) en Python.
  • Utilisation du type "dict" : dans ce tutoriel, vous allez voir comment utiliser un dictionnaire (une table associative mettant en relation des clés et des valeurs) en Python.

Instructions et fonctions Python

  • Les instructions Python : vous allez, dans ce tutoriel, voir comment utiliser les différentes instructions de contrôle du langage (if, for, while, break, continue et assert).
  • Définition de fonctions : ce tutoriel vous montre comment définir des fonctions en Python et comment traiter les paramètres de ces fonctions. La mise en oeuvre de fonctions récursives y est aussi présentée.
  • Mise en oeuvre d’un générateur en Python : un générateur est une fonction particulière pouvant retourner successivement plusieurs valeurs.

Programmation Orientée Objet

  • Introduction à la Programmation Orientée Objet (POO) en Python : ce tutoriel vous montre comment définir une première classe de manipulation de nombres rationnels (de fractions). Les concepts de classes, d’objets, d’attributs, de méthodes et de constructeurs vous sont présentés.
  • Principe d’encapsulation : vous allez voir comment mettre en oeuvre l’encapsulation (un concept de programmation orienté objet) en Python. Les techniques de brouillage de membres ainsi que la notion de propriétés vous sont aussi présentées.
  • Définition d’opérateurs en Python : le langage permet de définir des opérateurs sur vos classes. Ce tutoriel vous montre comment réaliser cela.
  • Mise en oeuvre de l’héritage en Python : l’héritage est un concept majeur de la programmation orientée objet. Ce tutoriel vous explique comment le mettre en oeuvre. La notion de polymorphisme y est aussi abordée.
  • Traitement d’exceptions en Python : une exception représente un cas exceptionnel d’exécution de votre programme. Autrement dit, une erreur. Vous allez apprendre dans ce tuto, comment traiter ces exceptions et comment produire vos propres classes d’exceptions (vos propres types d’erreurs).
  • Coder un itérateur Python : ce tutoriel vous montre comment implémenter un itérateur au sein d’une classe Python. Les différences d’implémentation entre Python2 et Python3 y sont aussi présentées.

J’espère que ces vidéos vous auront été utiles. Il est à noter que des nouvelles vidéos Python seront prochainement produites. Si vous trouvez ce billet intéressant, je ne manquerai pas de revenir vers vous pour vous tenir informé des nouveautés.

12 commentaires

merci pour ce billet, qui peut être très intéressant même si tu es tombé dans une communauté très très très sceptique quant à l’usage de vidéo pour apprendre la programmation.

artragis

Et ces vidéos nous donnent des raisons d’être sceptiques : il n’est pas possible de corriger facilement une erreur. Par exemple, j’ai survolé quelques vidéos, et il y a des moments où l’auteur fait une faute de frappe. Donc les quelques secondes qui suivent consistent à se rendre compte de la faute et à revenir en arrière.

Sinon j’avais une question par rapport au style de code : pourquoi enseigner des choses en contradiction totale avec la PEP8 (espaces entre les parenthèses, autour des opérateurs, snake case / camel case) ?

Sinon j’avais une question par rapport au style de code : pourquoi enseigner des choses en contradiction totale avec la PEP8 (espaces entre les parenthèses, autour des opérateurs, snake case / camel case) ?

entwanne

Ça m’a choqué aussi, avec en plus les incohérences :

On voit :

1
2
3
4
str(foo)
min( bar )
def baz(self):
def qux( self ):
+3 -0

Si. Mais les vidéos ne sont pas quelque chose de pratique à survoler. J’en ai regardé 2-3 en entier, et 2-3 autres où j’ai fait une avance rapide, et c’est surtout le style du code qui m’a choqué.

Après, j’ai relevé quelques choses étranges, comme l’utilisation de random.random pour générer des nombres entiers, les getters/setters, ou des while à la place de for. Mais ça n’a rien de totalement loufoque si on est dans l’optique d’un apprentissage de la programmation, et que l’interpréteur Python est juste là en support (un peu comme dans le cours de Gérard Swinnen).

Perso, je ne pense pas que les blancs soient réellement le plus importants. Il est vrai que j’aime bien quand c’est un peu aéré. Mais le plus important ne serait-il pas les explications ???

Dominique

De mon point de vue le style fait partie intégrante de la programmation. ;)

C’est un peu comme le français et la ponctuation, si tu veux. Tu peux enseigner la grammaire , la syntaxe et. le vocabulaire Sans te: soucier de la ponctuation ? Pas forcément. Mais il parait que c’est controversé comme point de vue (et je suis d’avis qu’un langage devrait toujours avoir un outil du genre gofmt qui s’occupe de ça pour toi).

+7 -0

Je plusseoie, un code formaté n’importe comment peut être pénible à lire. Même s’il est formaté de façon autocohérente : le format inhabituel limite la lecture rapide du code. Le cerveau déteste modifier ses habitudes.

C’est d’ailleurs une technique classique dans les projets « libres parce que la licence nous l’oblige plus ou moins mais on préfèrerait que vous ne récupériez pas notre code, alors on va s’arranger pour le faire le moins utilisable possible ».

Salut, merci pour ce billet, qui peut être très intéressant même si tu es tombé dans une communauté très très très sceptique quant à l’usage de vidéo pour apprendre la programmation.

artragis

Moi j’aime bien les vidéos. Ca permet à des débutants de se lancer plus facilement. Surtout que les bonnes ressources françaises sur Youtube manquent un peu.

Être sceptique, ça n’est pas être fermé. Mais il y a pas mal de problèmes avec les vidéo:

  • pas de ctrl/f possible
  • difficulté à corriger une erreur
  • rythme imposé
  • la programmation est quelque chose qui est peu "imageable" tu as certaines choses que tu peux schématiser, mais c’est vite restreint

En fait le seul avantage que je vois à la vidéo, c’est la présence de la voix, et donc ça fait passer beaucoup plus d’information tout en captivant bien plus que l’écrit.

Par contre la facilité, bof bof. C’est plus facile de suivre un tuto écrit je pense.

Moi j’aime bien les vidéos. Ca permet à des débutants de se lancer plus facilement. Surtout que les bonnes ressources françaises sur Youtube manquent un peu.

unidan

Moi j’aimerais bien que tu étayes tes propos, plutôt que de lancer des affirmations non vérifiables. Pourquoi serait-ce plus facile avec des vidéos ? Les débutants ne savent-ils pas lire ?

Je rejoins le commentaire d’artragis, je trouve que le fait de ne pas pouvoir revenir facilement sur une information rend les cours vidéo plus difficiles à suivre. Avec le rythme imposé, il est aussi moins évident de s’arrêter plus longuement sur une notion mal comprise.

  • la programmation est quelque chose qui est peu "imageable" tu as certaines choses que tu peux schématiser, mais c’est vite restreint
artragis

D’accord avec tout ce que tu dis sauf ça. Toute la partie structure de données et algorithmie est très bien visualisable (cf toutes les vidéos de visualisation d’algorithme de tri, de recherche). Aussi, certains domaines profitent pas mal de la vidéo, cf les tutoriels débutant pour Unity et compagnie.

alors, j’ai que deux ans d’expérience pro, dans un domaine très petit finalement (sécurité du mail et qualité logicielle) et pourtant je peux te dire que cette partie imageable est vachement petite par rapport à tout ce qu’il a fallu que je fasse :

  • bdd : peu imageable, les schémas type MCD sont des schémas techniques qui nécessitent un background non négligeable
  • différence valeur/pointeur/référence : la seule manière de voir, c’est de coder, à chaque fois que quelqu’un fait une image, ça foire et les implication de cette différence c’est basiquement tous les jours qui les a.
  • POO: l’UML et autre joyeuseté c’est hyper technique et ça demande un gros background.

Globalement, ce qui est imageable dans l’info c’est globalement la partie "proche de la réalité" (les tri, bien que la réalité est souvent éloignée des tris informatiques) et la partie "scintillante" de l’info (vision par informatique, tri avec les SVM, algo génétique sur des problèmes de graphe…). C’est finalement très peu de choses et c’est globalement pas dirigé vers les débutants.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte