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.

par Vincent Poulailleau


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 :

par Vincent Poulailleau


Le calamar, cet animal méconnu

Le calamar est un animal méconnu et pourtant c’est le nom donné à ce site web ! Des calamars Fun facts Le calamar a du cœur, ou plutôt il a trois cœurs (deux cœurs branchiaux pour capter le dioxygène en propulsant le sang vers les branchies, et un cœur systémique pour distribuer le sang oxygéné). Il n’a que deux tentacules. En effet, le reste est des bras.

par Vincent Poulailleau


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

par Vincent Poulailleau


Vous programmez en C ?

Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarrerie-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 »).

par Vincent Poulailleau