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 :
- 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)
À côté de cela nous avons aussi plusieurs implémentations communautaires, qui à la différence ne fonctionneront pas en mode examen en 2020 :
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 et
time.
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 | ? | ? | | ? | |
gc | ? | | | ? | ? |
kandinsky | | ? | | | |
math | 41 | 41 | 25 | 41 | 28 |
random | | 8 | 8 | 8 | 8 |
sys | ? | | | ? | ? |
time | | 3 | | | 4 |
Modules | 6 | 6 | 3 | 7 | 8 |
Éléments | 259+ | 240+ | 208 | 253+ | 230+ |
D'où à date le classement suivant :
- TI-Nspire avec 6 modules et plus de 259 entrées
- Casio Graph 35+E/75+E avec 7 modules et plus de 253 entrées
- NumWorks avec 6 modules et plus de 240 entrées
- module externe TI-Python pour TI-83 Premium CE avec 8 modules et plus de 230 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 du module
cmath pour les nombres complexes, disponible uniquement sur les implémentations
Casio Graph 35/75+E,
NumWorks et
TI-Nspire, à l'aide du 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 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
Et bien ici pas de perdante
(sauf les absentes), contrairement au module
math pour le module
cmath les
Casio Graph 35/75+E,
NumWorks et
TI-Nspire exposent toutes les mêmes
12 éléments :


>>> from explmod import *
>>> import cmath
>>> explmod(cmath)
__name__=cmath
cos=<function>
e=2.718281828459045
exp=<function>
log=<function>
log10=<function>
phase=<function>
pi=3.141592653589793
polar=<function>
rect=<function>
sin=<function>
sqrt=<function>
D'où mise à jour de notre petit récapitulatif :
| | 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 | ? | | | ? | ? |
kandinsky | | ? | | | |
math | 41 | 41 | 25 | 41 | 28 |
random | | 8 | 8 | 8 | 8 |
sys | ? | | | ? | ? |
time | | 3 | | | 4 |
Modules | 6 | 6 | 3 | 7 | 8 |
Éléments | 271+ | 252+ | 208 | 265+ | 230+ |
D'où à le classement qui pour le moment ne change pas :
- TI-Nspire avec 6 modules et plus de 271 entrées
- Casio Graph 35+E/75+E avec 7 modules et plus de 265 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 230 entrées
- Casio Graph 90+E avec 3 modules et 208 entrées
A bientôt... 