Découvre le Python haut de gamme des TI-Nspire CX II
Posted: 13 May 2020, 04:10
Ce n'est pas prévu avant la rentrée de septembre 2020, mais nous nous proposons de te faire découvrir aujourd'hui en avant-première la prochaine mise à jour qui rajoutera la programmation en Python aux TI-Nspire CX II.
Sauf surprise il s'agira donc de la première solution Python sur calculatrices haut de gamme, et nous allons voir si elle est bien partie pour être à la hauteur.
La force exclusive des calculatrices TI-Nspire, c'est leur logiciel de Mathématique intégré.
Plusieurs applications sont disponibles et rajoutables :
Sauf surprise il s'agira donc de la première solution Python sur calculatrices haut de gamme, et nous allons voir si elle est bien partie pour être à la hauteur.
La fonctionnalité Python sera disponible :
- sur les calculatrices TI-Nspire CX II, dont entre autres les modèles TI-Nspire CX II-T et TI-Nspire CX II-T CAS distribués en Europe
- sur tous les logiciels TI-Nspire pour ordinateur, aussi bien dans leur version enseignant qu'élève, aussi bien dans leur version CAS que non-CAS
Attention, le Python ne sera par contre pas disponible :
- sur les anciens modèles TI-Nspire CX et TI-Nspire CX CAS, qui ne sont plus concernés par les mises à jour depuis la version 5.0
- sur les applications TI-Nspire pour iPad
La force exclusive des calculatrices TI-Nspire, c'est leur logiciel de Mathématique intégré.
Plusieurs applications sont disponibles et rajoutables :
- sous forme de pages au sein de documents
- même en plusieurs exemplaires
- et il est même possible de regrouper jusqu'à 4 applications sur une même page de document, les applications prenant alors la forme de widgets
Sommaire :
- 1er coup d'oeil éditeur
- Des modèles de scripts
- Les bibliothèques disponibles
- Organisation du menu des bibliothèques
- L'assistant à la saisie, 1ère rencontre
- Autres touches clavier dédiées
- Bibliothèque ti_system + davantage d'assistance à la saisie
- Bibliothèque ti_draw + encore plus d'assistance à la saisie
- Bibliothèque ti_image + dimensions zone graphique maximale + toujours plus d'assistance à la saisie
- Conclusion
1) 1er coup d'oeil éditeur
Go to topPlus précisément comme tu le vois l'application Python peut prendre 2 formes différentes :
L'éditeur pour commencer par lui t'indique comme tu le vois en haut à droite des informations essentielles pour quand le Python t'indiquera une ligne d'erreur : numéro de ligne sur laquelle se situe actuellement le curseur et nombre total de lignes du script.
Il a également l'avantage de te donner le nom du script en cours d'édition pour t'éviter toute erreur, permet de visualiser simultanément 11 lignes de scripts ce qui est assez confortable pour une vue d'ensemble.
On apprécie la coloration syntaxique, l'indentation automatique, ainsi que la notation spéciale légère mais bien visible pour les espaces d'indentation en début de ligne, comme sur TI-83 Premium CE.
Notons qu'il n'y a nul besoin de repasser par le menu d'ajout d'application pour obtenir une console si on a fait le choix de l'éditeur, la simple touche
- celle d'un éditeur si tu crées un nouveau script ou ouvres un script existant
- et celle de la console (shell) pour importer tes scripts ou taper des commandes Python
L'éditeur pour commencer par lui t'indique comme tu le vois en haut à droite des informations essentielles pour quand le Python t'indiquera une ligne d'erreur : numéro de ligne sur laquelle se situe actuellement le curseur et nombre total de lignes du script.
Il a également l'avantage de te donner le nom du script en cours d'édition pour t'éviter toute erreur, permet de visualiser simultanément 11 lignes de scripts ce qui est assez confortable pour une vue d'ensemble.
On apprécie la coloration syntaxique, l'indentation automatique, ainsi que la notation spéciale légère mais bien visible pour les espaces d'indentation en début de ligne, comme sur TI-83 Premium CE.
Notons qu'il n'y a nul besoin de repasser par le menu d'ajout d'application pour obtenir une console si on a fait le choix de l'éditeur, la simple touche
menuappelée depuis l'éditeur permettra de vérifier la syntaxe du script saisi et d'accéder à la console Python en lançant le script courant automatiquement ou pas.
2) Des modèles de scripts
Go to topTentons maintenant de créer un nouveau script. Comme dans la mise à jour 5.5 à venir pour TI-83 Premium CE Edition Python et qui semble donc développée en parallèle, nous remarquons la possibilité de préciser un type de script :
A l'exception du premier choix, les autres nous font démarrer avec des scripts déjà préremplis avec les appels d'importation correspondants, et que voici ci-contre pour Calculs Mathématiques et Projets STEM Hub.
Une excellente initiative qui permettra aux élèves les plus pressés et passionnés d'aller plus rapidement au coeur du problème, mais également d'aiguiller les plus timides en leur éviter le syndrome de la page blanche !
- Script Vierge / Blank Program
- Calculs Mathématiques / Math Calculations
- Simulation Aléatoire / Random Simulations
- Image Processing (non présent sur TI-83 Premium CE Edition Python 5.5)
- Tracer (x,y) et Texte / Plotting (x,y) & Text
- Partage de Données / Data Sharing
- Projets STEM Hub / Hub Project
- Rover / Rover Coding
A l'exception du premier choix, les autres nous font démarrer avec des scripts déjà préremplis avec les appels d'importation correspondants, et que voici ci-contre pour Calculs Mathématiques et Projets STEM Hub.
Une excellente initiative qui permettra aux élèves les plus pressés et passionnés d'aller plus rapidement au coeur du problème, mais également d'aiguiller les plus timides en leur éviter le syndrome de la page blanche !
3) Les modules disponibles
Go to topMais justement puisque nous parlons d'importation, quels sont les bibliothèques disponibles ? Il nous suffit de taper
On apprécie ici la disponibilité de la bibliothèque standard cmath pour les fonctions sur les nombres complexes, absente sur TI-83 Premium CE Edition Python 5.5, et qui sera fort utile aux élèves choisissant l'option Mathématiques Expertes en Terminale.
Du côté des bibliothèques de Texas Instruments, on ne retrouve pas la bibliothèque ti_graphics de la TI-83 Premium CE Edition Python 5.5, peut-être ici remplacée et scindée en deux bibliothèques ti_draw et ti_image, que nous allons détailler plus loin.
Quelle différence avec ti_plotlib ?
En tous cas un changement de nom qui suggérerait a priori que pour les scripts Python réalisant des tracés au niveau du pixel, il n'y aurait pas de compatibilité entre les TI-83 Premium CE Edition Python 5.5 et TI-Nspire CX II.
menu. Nous avons donc de listés :
- 4 modules standard
- math
- random
- cmath (non présent sur TI-83 Premium CE Edition Python 5.5)
- time
- 6 modules spécifiques à Texas Instruments :
- ti_plotlib (tracés dans un repère orthogonal)
- ti_hub (projets d'objets connectés avec l'interface TI-Innovator Hub)
- ti_rover (projets de robotique avec le TI-Innovator Rover)
- ti_system
- ti_draw (non présent sur TI-83 Premium CE Edition Python 5.5)
- ti_image(non présent sur TI-83 Premium CE Edition Python 5.5)
On apprécie ici la disponibilité de la bibliothèque standard cmath pour les fonctions sur les nombres complexes, absente sur TI-83 Premium CE Edition Python 5.5, et qui sera fort utile aux élèves choisissant l'option Mathématiques Expertes en Terminale.
Du côté des bibliothèques de Texas Instruments, on ne retrouve pas la bibliothèque ti_graphics de la TI-83 Premium CE Edition Python 5.5, peut-être ici remplacée et scindée en deux bibliothèques ti_draw et ti_image, que nous allons détailler plus loin.
Quelle différence avec ti_plotlib ?
- ti_plotlib te permet de réaliser des tracés dans un repère orthogonal, des diagrammes notamment, repère dont tu choisis librement les unités sur les deux axes.
- alors qu'avec ti_graphics et donc ici ses remplaçants ti_draw et ti_image, tu spécifies à la différence des coordonnées en pixels par rapport au coin supérieur gauche de l'écran
En tous cas un changement de nom qui suggérerait a priori que pour les scripts Python réalisant des tracés au niveau du pixel, il n'y aurait pas de compatibilité entre les TI-83 Premium CE Edition Python 5.5 et TI-Nspire CX II.
4) Organisation du menu des modules
Go to topExplorons déjà rapidement quelques-uns des sous-menus associés. Bien loin de lister en vrac le contenu associé aux bibliothèques en question, ils l'organisent et le répartissent en divers catégories pour un accès plus rapide à ce que tu cherches :
5) L'assistant à la saisie, 1ère rencontre
Go to topSi tu penses que chaque entrée te menu te saisit une simple ligne à compléter, attends-toi à être surpris(e).
Déjà c'est tout un bloc de lignes qui peut être saisi automatiquement, notamment pour les boucles et instructions conditionnelles.
Mais surtout regarde bien, tu disposes de tout un dispositif d'aide à la saisie à un niveau jusqu'ici jamais atteint !
C'est un peu comme un texte à trous. Les zones de saisie que tu te dois de compléter te sont notées en gris clair, avec même une étiquette indicative au cas où !
Si ton curseur se trouve dans l'une des zones en question son affichage passe en inversé. Pas besoin non plus de t'acharner sur les touches fléchées pour aller rejoindre les différents bouts à compléter, tu peux passer instantanément de l'un à l'autre à l'aide de la touche
tab!
Il est à noter que cette formidable assistance à la saisie marche de façon similaire avec l'ensemble des fonctions natives !
Et tout ceci marche aussi bien dans l'éditeur que dans la console !
6) Autres touches clavier dédiées
Go to topPoursuivons justement avec d'autres points forts tirant profit de la bonne conception du clavier TI-Nspire.
Ici dans la console Python, c'est la touche
Mais ce qui est remarquable, c'est que ça marche même de façon similaire dans l'éditeur de script, avec la liste cette fois-ci des variables globales au script en question !
Un autre énorme avantage par rapport à la TI-83 Premium CE Edition Python, c'est que nous avons ici une touche
On note au passage un autre avantage à ce jour exclusif sur calculatrices au profit de Texas Instruments, la gestion de la saisie d'un bloc d'instructions sur plusieurs lignes dans la console Python, comme sur TI-83 Premium CE Edition Python et sur ordinateur !
Tu vérifieras si ça t'amuse, la concurrence retourne à ce jour une erreur dès la saisie de la première ligne du bloc.
Ici dans la console Python, c'est la touche
varqui permet de liste les variables existant dans le contexte mémoire courant, évitant ainsi d'avoir taper leurs noms. Avec même en prime un visuel différent pour distinguer les fonctions.
Mais ce qui est remarquable, c'est que ça marche même de façon similaire dans l'éditeur de script, avec la liste cette fois-ci des variables globales au script en question !
Un autre énorme avantage par rapport à la TI-83 Premium CE Edition Python, c'est que nous avons ici une touche
shift, qui permet lorsque maintenue enfoncée de sélectionner librement des zones de texte à des fins de couper-copier-coller. Un confort d'utilisation fabuleux !
On note au passage un autre avantage à ce jour exclusif sur calculatrices au profit de Texas Instruments, la gestion de la saisie d'un bloc d'instructions sur plusieurs lignes dans la console Python, comme sur TI-83 Premium CE Edition Python et sur ordinateur !
Tu vérifieras si ça t'amuse, la concurrence retourne à ce jour une erreur dès la saisie de la première ligne du bloc.
7) Bibliothèque ti_system + davantage d'assistance à la saisie
Go to topDécouvrons maintenant la bibliothèque ti_system de la TI-Nspire CX II. Selon son menu ci-contre elle a plusieurs rôles comparables à ceux de la bibliothèque de même nom sur TI-83 Premium CE Edition Python 5.5 :
Par exemple avec l'application de géométrie dynamique, pour tester si le triangle qui y est construit est rectangle :
Ici on importe donc les valeurs des variables TI-Nspire globales a, b et c associées aux longueurs des 3 côtés du triangle sur la page de l'application de géométrie.
En passant pensais-tu avoir déjà tout vu niveau assistant de saisie Python sur TI-Nspire ? Oh que non, et c'est loin d'être fini tu n'as pas idée. En attendant tu pourras remarquer ici qu'en plus de l'étiquette indicative, la zone à compléter active pourra être accompagnée d'une info-bulle explicative !
Autre exemple, on peut également imaginer des échanges bidirectionnels. Par exemple une exportation de liste Python vers l'environnement TI-Nspire pour traitement, puis sa réimportation après traitement.
Tiens, tu as vu ? Les zones à compléter bénéficiant de l'assistance à la saisie ça marche donc non seulement pour les blocs d'instructions et paramètre de fonctions, mais également variables à affecter !
- faire appel avec
- détecter des appuis de touches avec get_key(), particulièrement utile pour la conception d'interfaces de menus ou jeux en Python
- exporter des variables (
store_value('nom',valeur)
) ou listes (store_list('nom',list)
) du contexte Python vers l'environnement TI-Nspire du document courant - inversement récupérer dans le contexte Python des variables (
recall_value('nom')
) ou listes (recall_value('nom')
) de l'environnement TI-Nspire du document courant
eval_function('nom',valeur)
à des fonctions existant dans l'environnement TI-Nspire, a priori utile pour les fonctions justement non fournies dans le contexte Python comme tout ce qui touche au calcul formel Par exemple avec l'application de géométrie dynamique, pour tester si le triangle qui y est construit est rectangle :
Ici on importe donc les valeurs des variables TI-Nspire globales a, b et c associées aux longueurs des 3 côtés du triangle sur la page de l'application de géométrie.
En passant pensais-tu avoir déjà tout vu niveau assistant de saisie Python sur TI-Nspire ? Oh que non, et c'est loin d'être fini tu n'as pas idée. En attendant tu pourras remarquer ici qu'en plus de l'étiquette indicative, la zone à compléter active pourra être accompagnée d'une info-bulle explicative !
Autre exemple, on peut également imaginer des échanges bidirectionnels. Par exemple une exportation de liste Python vers l'environnement TI-Nspire pour traitement, puis sa réimportation après traitement.
Tiens, tu as vu ? Les zones à compléter bénéficiant de l'assistance à la saisie ça marche donc non seulement pour les blocs d'instructions et paramètre de fonctions, mais également variables à affecter !
8) Bibliothèque ti_draw + encore plus d'assistance à la saisie
Go to topLe menu associé à la bibliothèque ti_draw est scindé en deux catégories : formes et contrôles.
Comme deviné il s'agit bien d'une bibliothèque de dessin permettant de travailler au niveau du pixel, et donc comparable au ti_graphics de la TI-83 Premium CE Edition Python 5.5.
On y retrouve d'ailleurs quasiment toutes les mêmes fonctions de tracé au menu formes :
La catégorie contrôles nous réserve davantage de surprises.
On y retrouve certes de probables équivalents au reste des fonctions de ti_graphics : set_color(), set_pen(), ainsi que clear() pour cls().
Mais bien d'autres surprises sont au menu :
Choisissons donc
Cela te donne déjà une idée des dimensions de la zone graphique utilisable lorsque l'application Python est en pleine page.
Comme deviné il s'agit bien d'une bibliothèque de dessin permettant de travailler au niveau du pixel, et donc comparable au ti_graphics de la TI-83 Premium CE Edition Python 5.5.
On y retrouve d'ailleurs quasiment toutes les mêmes fonctions de tracé au menu formes :
draw_line(x1,y1,x2,y2)
: trace un segment entre les pixels (x1,y1) et (x2,y2)draw_poly([(x1,y1),(x2,y2),...])
oufill_poly([(x1,y1),(x2,y2),...])
: trace une ligne brisée ou remplit un polygonedraw_rect(x,y,w,h)
oufill_rect(x,y,w,h)
: trace ou remplit un rectangle, de dimensions w×h pixels, avec le pixel (x,y) comme coin supérieur gauchedraw_circle(x,y,r)
oufill_circle(x,y,r)
: trace un cercle ou remplit un disque, de centre le pixel (x,y) et de rayon r - draw_circle() n'est à ce jour pas présent sur TI-83 Premium CE Edition Python 5.5draw_arc(x,y,w,h,t1,t2)
oufill_arc(x,y,w,h,t1,t2)
: trace un arc ou remplit un secteur d'ellipse inscrite dans un rectangle de dimensions w×h pixels, avec le pixel (x,y) comme coin supérieur gauche, entre les angles au centre orientés t1 et t2 exprimés en dixièmes de degrésdraw_text('texte',x,y)
: écrit un texte avec le pixel (x,y) comme coin supérieur gauche- et
plot_xy(...)
, ici un ajout par rapport à ti_graphics
La catégorie contrôles nous réserve davantage de surprises.
On y retrouve certes de probables équivalents au reste des fonctions de ti_graphics : set_color(), set_pen(), ainsi que clear() pour cls().
Mais bien d'autres surprises sont au menu :
- clear_rect() pour n'effacer qu'une partie de l'écran
- set_window()
- get_screen_dim() pour obtenir donc les dimensions de la zone graphique, plus besoin de les détecter avec des boucles de set_pixel et get_pixel; particulièrement utile sur TI-Nspire où comme peuvent coexister jusqu'à 4 applications par page de document, elles n'ont pas forcément accès à une zone graphique maximale
- use_buffer() et paint_buffer(), renvoyant à des fonctions de noms similaires introduites avec les capacités graphiques du langage TI-Basic historique lors de la toute première version 5.0 de la TI-Nspire CX II, et suggérant donc que l'on pourra effectuer des tracés sur un calque initialement invisible, technique du double buffer permettant d'optimiser les affichages complexes d'interfaces de menus ou jeux
set_pen('taille','type')
qui attend dans l'ordre :- 'thin' (fin), 'medium' (moyen) ou 'thick' (épais) pour la taille
- 'solid' (continu), 'dot' (traits de pointillé courts) ou 'dash' (traits de pointillé longs) pour le type
Choisissons donc
setPen('thick','dash')
pour un tracé épais en traits de pointillé longs, et terminons avec un draw_line(1,1,120,100)
.Cela te donne déjà une idée des dimensions de la zone graphique utilisable lorsque l'application Python est en pleine page.
9) Bibliothèque ti_image + dimensions zone graphique maximale + toujours plus d'assistance à la saisie
Go to topEt enfin dernière inconnue nous avons donc la bibliothèque ti_image, fournissant sans doute de par son nom et sa séparation de ti_draw de la gestion d'images bien plus étendue que les quelques rudiments trouvés dans le ti_graphics de la TI-83 Premium CE Edition Python 5.5.
A première vue, pas grand chose au menu :
Pas question ici pour l'assistant d'aide à la saisie de nous ouvrir une liste de toutes les valeurs autorisées, mais il ne nous laisse pas tomber pour autant et adopte un autre comportement supplémentaire : l'info-bulle associée à la zone à compléter active indique les plages de valeurs autorisées :
Nous aurions pu le deviner, puisque c'est à cette même zone graphique maximale de 318×212 pixels qu'ont accès les scripts Lua depuis la version 3.0, et TI-Basic depuis la version 5.0.
Bref, terminons donc en précisant la couleur rouge, et ici encore l'assistant d'aide à la saisie nous indique bien gentiment de saisir des codes couleur entre 0 et 255 !
Enfin, si il n'y avait pas beaucoup de fonctions au menu de la bibliothèque ti_image, c'est parce qu'elles sont en fait associées à l'objet image créé, et l'excellent assistant d'aide à la saisie nous en fournit automatiquement la liste au choix dès que l'on suffixe le nom d'objet créé d'un point. get_pixel() et set_pixel() sont notamment au menu de ces fonctions de classe encore appelées méthodes !
A première vue, pas grand chose au menu :
new_image(width,height)
pour créer une image de width×height pixelsload_image('name')
, suggérant le chargement d'images extérieures au contexte Python, peut-être :- soit rajoutées en tant que ressources du document courant via le logiciel TI-Nspire comme c'est déjà possible dans le contexte des scripts Lua depuis la version 3.0
- soit provenant d'une banque d'images évoquée très récemment pour TI-83 Premium CE Edition Python 5.5
- peut-être les deux...
copy_image(image)
permettant donc un 2ème exemplaire mémoire d'une image déjà créée ou chargée, particulièrement utile à des fins de transformations (symétrie, rotations, inversions de couleurs, extraction de composante couleur, passage en niveaux de gris, ...) et donc fort pertinent dans le cadre de l'enseignement SNT de Seconde
Pas question ici pour l'assistant d'aide à la saisie de nous ouvrir une liste de toutes les valeurs autorisées, mais il ne nous laisse pas tomber pour autant et adopte un autre comportement supplémentaire : l'info-bulle associée à la zone à compléter active indique les plages de valeurs autorisées :
- de 0 à 318 pour la largeur
- de 0 à 212 pour la hauteur
Nous aurions pu le deviner, puisque c'est à cette même zone graphique maximale de 318×212 pixels qu'ont accès les scripts Lua depuis la version 3.0, et TI-Basic depuis la version 5.0.
Bref, terminons donc en précisant la couleur rouge, et ici encore l'assistant d'aide à la saisie nous indique bien gentiment de saisir des codes couleur entre 0 et 255 !
Enfin, si il n'y avait pas beaucoup de fonctions au menu de la bibliothèque ti_image, c'est parce qu'elles sont en fait associées à l'objet image créé, et l'excellent assistant d'aide à la saisie nous en fournit automatiquement la liste au choix dès que l'on suffixe le nom d'objet créé d'un point. get_pixel() et set_pixel() sont notamment au menu de ces fonctions de classe encore appelées méthodes !
Conclusion
Go to topTexas Instruments semble vraiment avoir travaillé très dur; nous ignorons depuis combien de temps ils ont cogité ça, nous en restons presque sans voix...
Ne repartons pas pour un roman, tentons de résumer l'ensemble avec les qualités caractéristiques et à ce jour exclusives de la solution Python sur TI-Nspire CX II :
Ne repartons pas pour un roman, tentons de résumer l'ensemble avec les qualités caractéristiques et à ce jour exclusives de la solution Python sur TI-Nspire CX II :
- L'application Python bénéficie d'une large intégration à l'environnement TI-Nspire, contrairement à d'autres modèles pas besoin en classe de dissocier les tâches numériques en Python du reste de la résolution d'un problème !
- L'aide à la saisie disponible aussi bien dans la console que l'éditeur est absolument époustouflante, de par ses différents comportements d'assistance qui varient et s'adaptent d'une zone à compléter à une autre. L'assistant est toujours de bon conseil, répondant par avance à toutes les questions que se poserait un codeur débutant, on le croirait presque pensant !
Envie de te faire ta propre opinion ?
Rendez-vous ce Mercredi 13 Mai de 18h30 à 20h pour une vidéoconférence de présentation de la prochaine mise à jour Python pour TI-Nspire CX II, avec cette fois-ci des captures d'écran en français et peut-être même quelques nouvelles informations.
Tu pourras notamment y poser toutes les questions de ton choix !
Rendez-vous ce Mercredi 13 Mai de 18h30 à 20h pour une vidéoconférence de présentation de la prochaine mise à jour Python pour TI-Nspire CX II, avec cette fois-ci des captures d'écran en français et peut-être même quelques nouvelles informations.
Tu pourras notamment y poser toutes les questions de ton choix !
Attention il est obligatoire de t'inscrire, c'est par ici.