A la rentrée 2019 le 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 :
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 builtins, math, random, time, cmath et sys.
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 :
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 :
- NumWorks avec MicroPython 1.9.4
- Casio Graph 90+E avec MicroPython 1.9.4
- HP Prime avec l'écriture Python de Xcas
- le module externe TI-Python pour TI-83 Premium CE avec CircuitPython (dérivé de MicroPython)
- TI-Nspire avec MicroPython 1.4.6
- Casio Graph 90+E avec l'écriture Python de KhiCAS
- Casio Graph 35+E/75+E avec MicroPython 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 builtins, math, random, time, cmath et sys.
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 pour TI-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ù à date le classement suivant :
- TI-Nspire avec 7 modules et plus de 286 entrées
- Casio Graph 35+E/75+E avec 7 modules et plus de 277 entrées
- NumWorks avec 6 modules et plus de 252 entrées
- module externe TI-Python pour TI-83 Premium CE avec 8 modules et plus de 245 entrées
- Casio Graph 90+E avec 3 modules et 208 entrées
Un classement bien évidemment non final, puisque basé sur la comparaison d'une partie des modules.
Aujourd'hui poursuivons avec la comparaison d'autres modules Python standard disponibles mais non listés sur le module externe TI-Python, array, collections et gc.
Pour cela, utilisons le script suivant :
Pour cela, utilisons le script suivant :
- Code: Select all
#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 new line 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
Le module array est donc disponible sur les TI-Nspire, Graph 35/75+E et module externe TI-Python. Voici ci-dessous une reconstitution de ce que répond le module externe TI-Python, et ci-contre ce que répondent les autres calculatrices concernées.
Le module array expose donc dans tous les cas 4 éléments.
TI-Python wrote:>>> from EXPLMOD import *
>>> import array
>>> explmod(array)
__name__=array
array=<class 'array'>
.append=<function>
.extend=<function>
.Total: 2 item(s)
Total: 4 item(s)
4
>>>
Le module array expose donc dans tous les cas 4 éléments.
Le module gc est lui aussi disponible sur les TI-Nspire, Graph 35/75+E et module externe TI-Python. Voici ci-dessous une reconstitution de ce que répond le module externe TI-Python, et ci-contre ce que répondent les autres calculatrices concernées.
Le module gc expose donc dans tous les cas 7 éléments.
TI-Python wrote:>>> from EXPLMOD import *
>>> import gc
>>> explmod(gc)
__name__=gc
collect=<function>
disable=<function>
enable=<function>
isenabled=<function>
mem_alloc=<function>
mem_free=<function>
Total: 7 item(s)
7
>>>
Le module gc expose donc dans tous les cas 7 éléments.
Le module standard collections est quant à lui disponible uniquement sur le module externe TI-Python. Voici ci-dessous une reconstitution de ce qu'il répond :
Le module collections expose donc 2 éléments.
TI-Python wrote:>>> from EXPLMOD import *
>>> import collections
>>> explmod(collections)
__name__=collections
namedtuple=<function>
Total: 2 item(s)
2
>>>
Le module collections expose donc 2 éléments.
Suite à cela, mettons à jour notre petit récapitulatif :
D'où le nouveau classement avec un léger changement :
A bientôt...
NumWorks | Casio Graph 90+E | module externe TI-Python pour TI-83 Premium CE | |||
builtins | 218 | 188 | 175 | 204 | 190 |
array | 4 | 4 | 4 | ||
collections | 2 | ||||
cmath | 12 | 12 | 12 | ||
gc | 7 | 7 | 7 | ||
math | 41 | 41 | 25 | 41 | 28 |
random | 8 | 8 | 8 | 8 | |
sys | 15 | 12 | 15 | ||
time | 3 | 4 | |||
spécifique | ? (nsp) | ? (kandinsky) | ? (handshake) | ||
Modules | 7 | 6 | 3 | 7 | 9 |
Éléments | 297+ | 252+ | 208 | 288 | 258+ |
D'où le nouveau classement avec un léger changement :
- TI-Nspire avec 7 modules et plus de 297 entrées
- Casio Graph 35+E/75+E avec 7 modules et 288 entrées
- module externe TI-Python pour TI-83 Premium CE avec 9 modules et plus de 258 entrées
- NumWorks avec 6 modules et plus de 252 entrées
- Casio Graph 90+E avec 3 modules et 208 entrées
A bientôt...