Tag: accesseur

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: annotations-de-type

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Tag: arbre-de-décision

Posts / Le machine learning, comment ça marche ?

Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?

Tag: architecture

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: argparse

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: assertion

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: ast

Posts / AST pour Python

Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.

Tag: astral

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: async

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: asyncio

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: automatisation

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: autopep8

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: await

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: base-de-données

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: bio

Posts / Du bon pain maison en moins de 10 minutes !

Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !

Tag: black

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: bonne-pratique

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: booléen

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: break

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: bureautique

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: c

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Posts / C de l’art

Oui il est possible de faire de l’art en programmant. En voici un exemple, un joli code source permet de générer un donut animé : k;double sin() ,cos();main(){float A= 0,B=0,i,j,z[1760];char b[ 1760];printf("\x1b[2J");for(;; ){memset(b,32,1760);memset(z,0,7040) ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28 >i;i+=0.02){float c=sin(i),d=cos(j),e= sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c* h*e+f*g+5),l=cos (i),m=cos(B),n=s\ in(B),t=c*h*g-f* e;int x=40+30*D* (l*h*m-t*n),y= 12+15*D*(l*h*n +t*m),o=x+80*y, N=8*((f*e-c*d*g )*m-c*d*e-f*g-l *d*n);if(22>y&& y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]= ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/ printf("\x1b[H");for(k=0;1761>k;k++) putchar(k%80?b[k]:10);A+=0.04;B+= 0.02;}}/*****####*******!!=;:~ ~::==!!!**********!!!==::- .,~~;;;========;;;:~-. ..,--------,*/ Et voici le résultat à l’exécution sur mon PC : Donut en console Si on ajoute de la coloration syntaxique au code source, cela donne :

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Tag: c++

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: c-embarqué

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Tag: cache

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: chaîne-de-caractères

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: classe

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: co-routine

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: commentaire

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: conteneur

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: continue

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: core-developer

Posts / Raymond Hettinger

Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :

Tag: couverture

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Tag: css

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Changez l’aspect d’un site : exemple de Wikipédia

J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.

Posts / C de CSS

Si vous voulez savoir ce que signifie le C de CSS, ou si vous avez des doutes sur les priorités des règles CSS, voici une excellente présentation de la chose, et en particulier, gardez sous le coude l’image-résumé de l’article : The “C” in CSS: The Cascade. Cascading

Tag: css-tricks

Posts / C de CSS

Si vous voulez savoir ce que signifie le C de CSS, ou si vous avez des doutes sur les priorités des règles CSS, voici une excellente présentation de la chose, et en particulier, gardez sous le coude l’image-résumé de l’article : The “C” in CSS: The Cascade. Cascading

Tag: csv

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Tag: cursive_re

Posts / Des expressions régulières lisibles !

J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.

Tag: dataclass

Formations / Dataclass en Python

Les dataclass sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.

Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité

Tag: datetime

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: deep-learning

Posts / Des réseaux de neurones pour colorer des photos noir et blanc

À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.

Tag: descripteur

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: diagramme

Posts / WaveDrom : les waveforms faciles (diagrammes de timing digital)

Si vous faites régulièrement des diagrammes de timing, et que vous prenez du temps à les dessiner, et encore plus de temps à les modifier pour ajouter ou supprimer les informations manquantes, sachez qu’il existe WaveDrom qui fait cela très bien pour nous. C’est un outil gratuit et open-source (licence MIT) : https://github.com/wavedrom/wavedrom. Vous pouvez l’essayer avec l’éditeur en ligne : https://wavedrom.com/editor.html. Afin d’obtenir le diagramme suivant : Diagramme basique de timing Il faut le décrire sous forme textuelle avec une syntaxe particulière.

Tag: dict

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: dictionnaire

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: dictionnaire-en-compréhension

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: django

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: docstring

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: documentation

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Posts / Rédiger de la bonne documentation pour un projet

Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».

Tag: dunder-methods

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: décorateur

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Posts / Les métaclasses de Python

Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).

Tag: encodage

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: environnement-virtuel

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: excel

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Tag: exception

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: expression-régulière

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Des expressions régulières lisibles !

J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.

Tag: extreme-programming

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: f-string

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: fichier

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: fichier-texte

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Tag: fichiers

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: firefox

Posts / Changez l’aspect d’un site : exemple de Wikipédia

J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.

Tag: flake8

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: flask

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: fonction

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: fonction-variadique

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: for

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: formation

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Formations / Dataclass en Python

Les dataclass sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.

Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité

Formations / Packages en Python

Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools/pip/venv mais aussi une méthode plus moderne à base de pyproject.toml avec Poetry.

Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Formations / Python et XML

Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).

Découvrez comment Python permet de manipuler simplement les fichiers XML.

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Formations / Communication réseau en Python

Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.

Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Posts / Je publie sur LinkedIn

Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.

Posts / Simple is better than complex

Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".

Posts / Certifié en Python avec une note de 1000/1000

Certification API Society J’ai eu une note de 1000/1000 à une certification Python. Pour tout dire, mon objectif était d’avoir le niveau « Instructeur », ce qui m’autorise à animer des formations préparant à cette certification. Je parle de https://api-society.com/fr/certifications/technologies-numeriques/developpement-logiciel/fondamentaux-python, certification reconnue par l’état (France Compétences : https://www.francecompetences.fr/recherche/rs/6301/). Les objectifs sont d’attester que vous maîtrisez les bases de Python (types de données basiques, if et boucles, fonctions, modules, paquets, programmation orientée objet, et un peu de la bibliothèque standard).

Posts / Unicode, c'est simple sauf quand c'est compliqué

Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.

Posts / TDD et Python

TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: formatter

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: gestionnaire-de-contexte

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Tag: getter

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: ghz

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: git

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Tag: github

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Posts / Des messages d’erreur ou de debug en Python

Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.

Tag: glob

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: graphique

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Tag: guido-van-rossum

Posts / On parle de moi dans un podcast américain sur Python

Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).

Tag: générateur

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: how-to

Posts / Rédiger de la bonne documentation pour un projet

Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».

Tag: html

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Tag: http

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: héritage

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: if

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: indexation

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: informatique-embarquée

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Tag: instance

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: interface-homme-machine

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: isort

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: iter

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: itérable

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: itérateur

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: java

Posts / TDD et Python

TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: javascript

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: journal-dexécution

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Tag: json

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: lambda

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: libreoffice

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: linkedin

Posts / Je publie sur LinkedIn

Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.

Tag: linter

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: linux

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: linuxfr

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: list

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: liste

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: liste-en-compréhension

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: logging

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Des messages d’erreur ou de debug en Python

Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.

Tag: logiciels-libres

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Tag: machine-learning

Posts / Des réseaux de neurones pour colorer des photos noir et blanc

À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.

Posts / Le machine learning, comment ça marche ?

Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?

Tag: maison

Posts / Du bon pain maison en moins de 10 minutes !

Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !

Tag: markdown

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Tag: math

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: meetup

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: microcontrôleur

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: module

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: modèle-objet

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: multi-threading

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Formations / Communication réseau en Python

Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.

Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.

Tag: multiprocessing

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: métaclasse

Posts / Les métaclasses de Python

Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).

Tag: méthode

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: méthodes-agiles

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: n-uplet

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: next

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Tag: nose

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: openpyxl

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Tag: opérateur

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: orienté-objet

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: os

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: package

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: padpo

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Tag: pain

Posts / Du bon pain maison en moins de 10 minutes !

Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !

Tag: parallélisation

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: pathlib

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: pep

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: pep-20

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Simple is better than complex

Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".

Posts / TDD et Python

TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: pep-343

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Tag: pep-517

Formations / Packages en Python

Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools/pip/venv mais aussi une méthode plus moderne à base de pyproject.toml avec Poetry.

Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.

Tag: pep-518

Formations / Packages en Python

Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools/pip/venv mais aussi une méthode plus moderne à base de pyproject.toml avec Poetry.

Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.

Tag: pep-597

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Tag: pep-8

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: perceptron

Posts / Le machine learning, comment ça marche ?

Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?

Tag: pillow

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Tag: pip

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: podcast

Posts / On parle de moi dans un podcast américain sur Python

Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).

Posts / Python Bytes

Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.

Posts / Talk Python To Me

Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all

Tag: poo

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: portée

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: pratique

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Formations / Dataclass en Python

Les dataclass sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.

Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité

Formations / Packages en Python

Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools/pip/venv mais aussi une méthode plus moderne à base de pyproject.toml avec Poetry.

Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Formations / Python et XML

Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).

Découvrez comment Python permet de manipuler simplement les fichiers XML.

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Formations / Communication réseau en Python

Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.

Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.

Tag: processeur

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: programmation-par-contrat

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Tag: property

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: pycharm

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: pycoders-weekly

Posts / Des messages d’erreur ou de debug en Python

Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.

Tag: pycon

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Tag: pydocstyle

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: pylama

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: pylint

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: pytest

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: python

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Formations / Dataclass en Python

Les dataclass sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.

Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité

Formations / Packages en Python

Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools/pip/venv mais aussi une méthode plus moderne à base de pyproject.toml avec Poetry.

Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Formations / Python et XML

Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).

Découvrez comment Python permet de manipuler simplement les fichiers XML.

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Formations / Communication réseau en Python

Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.

Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Posts / Je publie sur LinkedIn

Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.

Posts / Simple is better than complex

Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".

Posts / Certifié en Python avec une note de 1000/1000

Certification API Society J’ai eu une note de 1000/1000 à une certification Python. Pour tout dire, mon objectif était d’avoir le niveau « Instructeur », ce qui m’autorise à animer des formations préparant à cette certification. Je parle de https://api-society.com/fr/certifications/technologies-numeriques/developpement-logiciel/fondamentaux-python, certification reconnue par l’état (France Compétences : https://www.francecompetences.fr/recherche/rs/6301/). Les objectifs sont d’attester que vous maîtrisez les bases de Python (types de données basiques, if et boucles, fonctions, modules, paquets, programmation orientée objet, et un peu de la bibliothèque standard).

Posts / Unicode, c'est simple sauf quand c'est compliqué

Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.

Posts / TDD et Python

TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Posts / Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).

Posts / On parle de moi dans un podcast américain sur Python

Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Posts / Des messages d’erreur ou de debug en Python

Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.

Posts / Rédiger de la bonne documentation pour un projet

Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».

Posts / Des réseaux de neurones pour colorer des photos noir et blanc

À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.

Posts / Le machine learning, comment ça marche ?

Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Posts / Python Bytes

Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.

Posts / Des expressions régulières lisibles !

J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.

Posts / AST pour Python

Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.

Posts / Les métaclasses de Python

Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Posts / Raymond Hettinger

Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :

Posts / Talk Python To Me

Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all

Tag: python-bytes

Posts / On parle de moi dans un podcast américain sur Python

Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Posts / Des réseaux de neurones pour colorer des photos noir et blanc

À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.

Posts / Python Bytes

Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.

Posts / Des expressions régulières lisibles !

J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.

Tag: ram

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: random

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: raymond-hettinger

Posts / Gestionnaires de contexte en Python

Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Posts / Raymond Hettinger

Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :

Tag: real-python

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Posts / Les métaclasses de Python

Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: recherche

Formations / Expressions régulières en Python

Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.

Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.

Tag: redbaron

Posts / AST pour Python

Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.

Tag: rs-232

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: ruff

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: rust

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: réseau-de-neurones

Posts / Des réseaux de neurones pour colorer des photos noir et blanc

À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.

Tag: scrum

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: selenium

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: set

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: set-en-compréhension

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: setter

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Tag: shutil

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: simplelogging

Formations / Qualité de logiciel Python

Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).

Cette formation met l’accent sur la qualité de code pour éviter la dette technique.

Posts / Des messages d’erreur ou de debug en Python

Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.

Tag: ssd

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.

Tag: stackoverflow

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: statistics

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: steering-council

Posts / On parle de moi dans un podcast américain sur Python

Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).

Tag: structure-de-données

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: subprocess

Formations / Parallélisation des calculs en Python

Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.

Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.

Tag: surcharge

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Formations / Formation Python avancé

Besoin de créer une application conséquente ?

Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: syntaxe

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: système-dexploitation

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: tableau-de-bord

Formations / Manipulation de fichiers Excel en Python

Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.

Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.

Tag: talk-python-to-me

Posts / Le machine learning, comment ça marche ?

Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?

Posts / Talk Python To Me

Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all

Tag: tdd

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Posts / TDD et Python

TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.

Tag: test

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: test-de-validation

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Tag: test-dintégration

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Tag: test-driven-development

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Tag: test-unitaire

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Posts / La conception de www.colorimo.fr

Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».

Tag: tim-peters

Posts / Les métaclasses de Python

Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).

Tag: tiobe

Posts / Python, le deuxième langage le plus utilisé

Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.

Tag: tox

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: traduction

Posts / Première contribution aux logiciels libres

J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.

Tag: trey-hunner

Posts / Itérateur, itérable, conteneur, générateur, en Python

Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).

Posts / Utilisez pathlib au lieu d’os.path ou glob

Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !

Tag: tuple

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: tutoriel

Posts / Rédiger de la bonne documentation pour un projet

Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».

Tag: typage

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Tag: typage-statique

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Tag: typing

Formations / Annotations de type en Python

Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).

Découvrez comment :

  • trouver des erreurs de conception
  • documenter le code
  • améliorer le comportement des IDE pour gagner en productivité

Tag: unicode

Posts / Unicode, c'est simple sauf quand c'est compliqué

Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.

Tag: unittest

Formations / Tests d’une application Python

Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».

Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !

Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: utf-8

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: uv

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: variable

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: venv

Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !

Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.

Tag: visual-studio-code

Posts / Testez votre Python

J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !

Tag: wavedrom

Posts / WaveDrom : les waveforms faciles (diagrammes de timing digital)

Si vous faites régulièrement des diagrammes de timing, et que vous prenez du temps à les dessiner, et encore plus de temps à les modifier pour ajouter ou supprimer les informations manquantes, sachez qu’il existe WaveDrom qui fait cela très bien pour nous. C’est un outil gratuit et open-source (licence MIT) : https://github.com/wavedrom/wavedrom. Vous pouvez l’essayer avec l’éditeur en ligne : https://wavedrom.com/editor.html. Afin d’obtenir le diagramme suivant : Diagramme basique de timing Il faut le décrire sous forme textuelle avec une syntaxe particulière.

Tag: while

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: wikipédia

Posts / Changez l’aspect d’un site : exemple de Wikipédia

J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.

Tag: word

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: xml

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Formations / Python et XML

Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).

Découvrez comment Python permet de manipuler simplement les fichiers XML.

Tag: xml-rpc

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: xml.etree.elementtree

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: xmlrpc

Formations / Formation initiale en Python

Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.

Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.

Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.

Tag: xp

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: xsd

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: xslt

Formations / Formation à la demande

Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.

Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.

Tag: yapf

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Tag: zeste-de-savoir

Posts / Un code pythonique

Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.

Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre

Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.