Aller au contenu

Python

Des noyaux isolés

Les noyaux de Basthon (Python, OCaml, JavaScript, SQL et XCAS) sont désormais isolés : le code s'exécute dans un environnement séparé de la page web qui l'affiche. Concrètement :

  • plus de sécurité : le code exécuté n'a pas accès aux données de la page (comme vos informations de connexion sur un site qui intègre Basthon) ;
  • une page qui ne se bloque plus : un long calcul ne fige plus l'interface ;
  • un affichage en temps réel : les print et les input apparaissent au fur et à mesure de l'exécution.

Jouer avec !

Affichage en temps réel

Pour retrouver l'ancien fonctionnement, il suffit d'ajouter le suffixe -legacy au paramètre d'URL kernel, par exemple https://console.basthon.fr/?kernel=python3-legacy. Tous les détails sont dans la documentation.

Python 3.12

Avec la mise à jour de Pyodide en version 0.26, le noyau Python de Basthon passe à Python 3.12. Parmi les nouveautés : des f-strings plus souples (on peut y réutiliser les mêmes guillemets) et des messages d'erreur encore plus parlants, qui suggèrent par exemple un import oublié.

Jouer avec !

Python 3.12

PythonTutor en couleurs

La visualisation pas à pas de PythonTutor, disponible dans Basthon via from tutor import tutor, profite de deux améliorations :

  • la coloration syntaxique du code ;
  • un cadre qui s'adapte automatiquement à la taille de la visualisation, sans barre de défilement.

Jouer avec !

PythonTutor

icecream

Marre des print pour déboguer ? Le module icecream est disponible dans le noyau Python de Basthon : ic(expression) affiche à la fois l'expression et sa valeur.

Pour qu'il fonctionne, Basthon conserve désormais le code source des cellules exécutées : inspect.getsource marche aussi sur les fonctions définies dans le notebook ou la console.

Jouer avec !

icecream

clear_output

La fonction clear_output du module IPython.display fonctionne dans Basthon : elle efface la sortie de la cellule en cours. Avec wait=True, l'effacement n'a lieu qu'à l'affichage suivant, ce qui évite le clignotement. Parfait pour une barre de progression, un compte à rebours ou une petite animation en mode texte !

Jouer avec !

clear_output