Apprendre le Python

Sans exagération ni de subjectivité, actuellement le langage Python et l’un des langages les plus utilisés en informatique. C’est un langage plutôt orienté vers les applications de bureau, les serveurs web, le calcul scientifique, script et automatisation des tâches, l’intelligence artificielle, data science…etc. D’un point de vue pédagogique, on peut clairement distinguer deux écoles de formation de programmation. L’école classique, comprenant entre autres le langage C et C++. C’est l’école dans la manière de formation se focalise sur une compréhension bas-niveau de la programmation, l’étudiant généralement, assimile en profondeur le fonctionnement de la machine. En contrepartie, il lui est très difficile de réaliser une application complète et finie. La deuxième école se focalise sur un apprentissage haut-niveau, et ça implique généralement le langage Python ou Javascript. Dans lesquels les concepts de programmation sont étudiés d’une manière générique, mais avec l’accès à un arsenal d’outils prêts à être utilisés à la volée. Avec cette dernière école, il devient plus facile de concevoir des applications complètes et prêtes à être utilisées, même si elles sont le plus souvent des applications ballonnées et peu optimisées. La vidéo en bas présente un cours très structuré, et très abordable pour les débutants concernant le langage Python. Ça a été réalisé par l’académicien Mosh Hamedani, possédant une chaîne YouTube et ainsi site web CodeWithMosh.com avec plusieurs vidéos et cours pour apprendre différents langages de programmation. 

Cours en Python

L’automatisation avec Python

On a souvent tendance à l’oublier mais il faut se rappeler que le but initial de l’informatique dans les années 60 et 70 était l’automatiser des tâches administratives répétitives et ennuyeuses pour les employés des entreprises, de nos jours l’informatique a un tout autre visage, puisqu’un PC, une tablette ou un smartphone sont généralement utilisés pour communiquer, naviguer sur internet, voir des vidéos, lire les news, réviser ses cours…etc. Mine de rien, l’informatique reste toujours aujourd’hui le meilleur moyen d’automatiser les tâches administratives, et c’est surtout plus facile avec ce qu’on appelle le langage Python. 

Le langage Python est un langage réputé pour sa facilité d’appréhension et sa versatilité, contrairement aux langages C/C++ qui sont souvent évoqués dans ce blog, le python touche plusieurs horizons, avec premièrement tout d’abord les applications normales de bureau, les applications web, et plus récemment les applications mobiles, il est aussi très convoité pour l’intelligence artificielle et le data science, et pour ce qui nous concerne dans cet article l’automatisation des tâches informatiques. Le python et le langage idéal pour automatiser les tâches comme lire les données des fichiers Excel, de les transcrire sur une page web, d’extraire les tables des sites web, de générer des rapports automatiques de données, faire l’agrégation de plusieurs sources de données, l’extraction et génération automatique de l’information des fichiers PDF…etc. La vidéo en bas de la chaîne YouTube du site web éducatif www.freecodecamp.org est un cours de courte durée pour maitriser les capacités d’automatisation proposées par Python. 

L’automatisation avec Python

La récursivité comme solution pour le jeu du Sudoku

Le jeu du Sudoku est un jeu de puzzle populaire sur certains journaux et magazines, il est représenté sur l’image en bas, globalement il se constitue d’une grille de 9×9 cases partiellement remplies par des chiffres de 1 à 9, la grille est aussi subdivisée en 3×3 carré de 3×3 chiffres, le joueur doit remplir le reste des cases vides restantes en respectant la règle qu’il ne doit pas y avoir de répétition d’un chiffre sur une colonne, sur une ligne ou sur le carré 3×3.

Une grille vide de Sudoku

Les règles sont simples mais le casse-tête demande beaucoup de temps à l’humain pour le résoudre, et pourtant c’est déconcertant comment un programme d’une poignée de lignes de code arrive à résoudre le problème sur ordinateur en une fraction de seconde, dans la vidéo qui suit l’enseignant s’exulte de la magie de la récursivité, et c’est d’autant plus vrai que la récursivité est une technique de programmation réputée difficile à apprendre mais très efficace une fois maîtrisée. Il n’était par rare dans les examens d’algorithmique que j’ai eu à corriger de tomber sur des problèmes difficiles à résoudre par les méthodes conventionnelles (par boucles et tests) alors qu’ils devenaient très simples en récursivité.

résoudre le sudoku par récursivité