A la rentrée 2019 le
Plusieurs calculatrices graphiques intègrent déjà une implémentation
Ces diverses implémentations ne sont pas équivalentes et diffèrent dans l'éventail de modules qu'elles proposent.
Aussi comme nous l'avons déjà vu, ces implémentations diffèrent également par le contenu proposé dans chaque module.
Nous avons en effet déjà comparé les modules , , , et .
Voici un petit récapitulatif des modules disponibles sur chaque implémentation avec le nombre d'entrées offertes à chaque fois :
D'où à date le classement suivant :
Python
sera le seul langage de programmation préconisé pour l'enseignement de l'algorithmique au lycée en Seconde et Première.Plusieurs calculatrices graphiques intègrent déjà une implémentation
Python
officielle dans leur dernière mise à jour, plus ou moins complète, fidèle et réussie selon le cas :- NumWorksavecMicroPython 1.9.4
- Casio Graph 90+EavecMicroPython 1.9.4
- HP Primeavec l'écriturePythondeXcas
- le module externe TI-PythonpourTI-83 Premium CEavecCircuitPython(dérivé de MicroPython)
- TI-NspireavecMicroPython 1.4.6
- Casio Graph 90+Eavec l'écriturePythondeKhiCAS
- Casio Graph 35+E/75+EavecMicroPython 1.9.4
Ces diverses implémentations ne sont pas équivalentes et diffèrent dans l'éventail de modules qu'elles proposent.
Aussi comme nous l'avons déjà vu, ces implémentations diffèrent également par le contenu proposé dans chaque module.
Nous avons en effet déjà comparé les modules , , , et .
Voici un petit récapitulatif des modules disponibles sur chaque implémentation avec le nombre d'entrées offertes à chaque fois :
NumWorks | Casio Graph 90+E | module externe TI-Python pourTI-83 Premium CE | |||
builtins | 218 | 188 | 175 | 204 | 190 |
array | ? | ? | ? | ||
collections | ? | ||||
cmath | 12 | 12 | 12 | ||
gc | ? | ? | ? | ||
math | 41 | 41 | 25 | 41 | 28 |
random | 8 | 8 | 8 | 8 | |
sys | ? | ? | ? | ||
time | 3 | 4 | |||
dessin (spécifique) | ? (nsp) | ? (kandinsky) | |||
Modules | 7 | 6 | 3 | 7 | 8 |
Éléments | 271+ | 252+ | 208 | 265+ | 230+ |
D'où à date le classement suivant :
- avec 7modules et plus de271entrées
- avec 7modules et plus de265entrées
- NumWorksavec6modules et plus de252entrées
- module externe TI-PythonpourTI-83 Premium CEavec8modules et plus de230entrées
- Casio Graph 90+Eavec3modules et208entrées
Un classement bien évidemment non final, puisque basé sur la comparaison d'une partie des modules.
Aujourd'hui poursuivons avec la comparaison d'un module remarquable, le module
Pour cela, utilisons le script suivant :



Voici ci-contre ce que répondent les
Comme promis, nous en apprenons davantage sur le module externe
Il s'agirait apparemment d'un
Après avoir déjà remarqué que le module externe

Le module externe
En tous cas du point de vue logiciel il doit y avoir sans doute un
A part cela, l'on note la possibilité pour un script
Nous remarquons également dans


Bref, récapitulons ce qu'il y a donc dans nos différents modules
sys
, disponible uniquement sur les TI-Nspire
, Casio Graph 35/75+E
et module externe TI-Python
.C'est en effet l'occasion d'arracher quelques secrets supplémentaires au module externe 
TI-Python
... 
Pour cela, utilisons le script suivant :
- Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
id=-1
try:
import sys
try:
if sys.platform=='nspire':id=0
if sys.platform=='TI-Python Adapter':id=4
except:id=3
except:
try:
import kandinsky
id=1
except:
try:
if chr(256)==chr(0):id=5+(not ("HP" in version()))
except:
id=2
return id
platform=getplatform()
#lines shown on screen
plines=[29,12, 7, 9,11,0,0]
#max chars per line
#(error or CR if exceeded)
pcols =[53,99,509,32,32,0,0]
nlines=plines[platform]
ncols=pcols[platform]
curline=0
def mprint(*ls):
global curline
st=""
for s in ls:
if not(isinstance(s,str)):
s=str(s)
st=st+s
stlines=1+int(len(st)/ncols)
if curline+stlines>=nlines:
input("Input to continue:")
curline=0
print(st)
curline+=stlines
def sstr(obj):
try:
s=obj.__name__
except:
s=str(obj)
a=s.find("'")
b=s.rfind("'")
if a>=0 and b!=a:
s=s[a+1:b]
return s
def isExplorable(obj):
s=str(obj)
return s.startswith("<module '") or s.startswith("<class '")
def explmod(pitm,pitmsl=[],reset=True):
global curline
if(reset):
curline=0
pitmsl=[sstr(pitm)]
hd="."*(len(pitmsl)-1)
spath=".".join(pitmsl)
c=0
for itms in sorted(dir(pitm)):
c=c+1
try:
itm=eval(spath+"."+itms)
mprint(hd+itms+"="+str(itm))
if isExplorable(itm):
pitmsl2=pitmsl.copy()
pitmsl2.append(itms)
c=c+explmod(itm,pitmsl2,False)
except:
mprint(hd+itms)
if c>0:
mprint(hd+"Total: "+str(c)+" item(s)")
return c



Voici ci-contre ce que répondent les
Graph 35/75+E
et TI-Nspire
, et ci-dessous une reconstitution de ce qu'affiche le module externe TI-Python
à partir de nos observations et notes d'octobre 2018 aux journées APMEP
et congrès UdPPC
:TI-Python a écrit:>>> from explmod import *
>>> import sys
>>> explmod(sys)
__name__=sys
argv=[]
byteorder=little
exit=<function>
implementation=(name='circuitpython', version=(3, 0, 0))
maxsize=1073741823
modules={'handshake': <module 'handshake' from 'handshake.py'>}
path=['', '/', '/lib', '.frozen']
platform=TI-Python Adapter
print_exception=<function>
stderr=<io.FileIO 2>
stdin=<io.FileIO 0>
stdout=<io.FileIO 1>
version=3.4.0
version_info=(3, 4, 0)
TI-Python
, notamment que contrairement aux autres calculatrices il n'utilise pas MicroPython
mais CircuitPython
, une implémentation en fait dérivée de MicroPython
et développée par Adafruit
.Il s'agirait apparemment d'un
Circuitpython 3.0.0
implémentant du Python 3.4.0
.Après avoir déjà remarqué que le module externe
TI-Python
utilisait la puce Atmel ATSAMD21
, puce notablement connue pour son usage dans les PyBoards
(cartes de développement
Python
)Trinket M0
et Feather M0
justement également conçues par Adafruit
, cela commence à faire beaucoup de coincidences... 
TI-Python
ne serait-il pas tout simplement une carte Adafruit Trinket M0
ou Feather M0
, avec le port micro-USB remplacé par du mini-USB ?firmware
différent, vu que la carte Adafruit Trinket M0
que nous avions apportée au congrès UdPPC 2018
n'était tout simplement pas reconnue par la calculatrice du stand de Texas Instruments
.A part cela, l'on note la possibilité pour un script
Python
de déterminer très facilement si il tourne sur le module externe TI-Python
en testant juste si platform=='TI-Python Adapter'
.Nous remarquons également dans
sys.path
la mention de plusieurs dossiers du module externe TI-Python
: dossier courant, dossier racine /
, dossier /lib
ainsi qu'un .frozen
.sys.modules
révèle la présence d'un mystérieux module handshake
provenant du script handshake.py
, dans le sens où il n'est pas présent sur la calculatrice du stand de Texas Instruments
! 
Bref, récapitulons ce qu'il y a donc dans nos différents modules
sys
:TI-Nspire | Casio Graph 35+E/USB Graph 75/85/95 | module externe TI-Python pourTI-83 Premium CE |
__name__=sys argv=[] byteorder=little exc_info() exit() implementation=(name='micropython', version=(1, 4, 6)) maxsize=2147483647 . path=['', '/documents/ndless'] platform=nspire print_exception() stderr=<io.TextIOWrapper 2> stdin=<io.TextIOWrapper 0> stdout=<io.TextIOWrapper 1> version=3.4.0 version_info=(3, 4, 0) | __name__=sys argv= byteorder=big . exit() implementation=(name='micropython', version=(1, 9, 4)) maxsize=2147483647 modules={'explmod'} path= . print_exception() . . . version=3.4.0 version_info=(3, 4, 0) | __name__=sys argv=[] byteorder=little . exit() implementation=(name='circuitpython', version=(3, 0, 0)) maxsize=1073741823 modules={'handshake'} path=['', '/', '/lib', '.frozen'] platform=TI-Python Adapter print_exception() stderr=<io.FileIO 2> stdin=<io.FileIO 0> stdout=<io.FileIO 1> version=3.4.0 version_info=(3, 4, 0) |
Total: 15 | Total: 12 | Total: 15 |
Ce qui déjà nous fait remarquer que le 
Notons aussi que
Micropython
pour TI-Nspire
n'est apparemment plus mis à jour depuis des lustres, étant en version 1.4.6
quand toutes les autres calculatrices concernées ont du Micropython 1.9.4
. 
Notons aussi que
sys.maxsize
, taille maximale des listes, chaînes de caractères et autres objets composés, est nettement inférieure sur le module externe TI-Python
, un peu moins de la moitié de ce qu'elle vaut sur les autres modèles.Suite à cela, mettons à jour notre petit récapitulatif :
D'où le classement qui ne change toujours pas :
NumWorks | Casio Graph 90+E | module externe TI-Python pourTI-83 Premium CE | |||
builtins | 218 | 188 | 175 | 204 | 190 |
array | ? | ? | ? | ||
collections | ? | ||||
cmath | 12 | 12 | 12 | ||
gc | ? | ? | ? | ||
math | 41 | 41 | 25 | 41 | 28 |
random | 8 | 8 | 8 | 8 | |
sys | 15 | 12 | 15 | ||
time | 3 | 4 | |||
dessin (spécifique) | ? (nsp) | ? (kandinsky) | |||
Modules | 7 | 6 | 3 | 7 | 8 |
Éléments | 286+ | 252+ | 208 | 277+ | 245+ |
D'où le classement qui ne change toujours pas :
- avec 7modules et plus de286entrées
- avec 7modules et plus de277entrées
- NumWorksavec6modules et plus de252entrées
- module externe TI-PythonpourTI-83 Premium CEavec8modules et plus de245entrées
- Casio Graph 90+Eavec3modules et208entrées
A bientôt... 
