
La semaine dernière,
Casio te sortait ses superbes
mises à jour 3.30 et 3.40 pour ta
Graph 35+E II ou
Graph 90+E. Au menu des possibilités
Python largement étendues avec :
- un module casioplot permettant de contrôler les pixels de l'écran
- un script matplotl.py interfaçant le module casioplot afin de le rendre utilisable comme le module matplotlib.pyplot standard
- un script turtle.py interfaçant le module casioplot afin de le rentre utilisable comme le module turtle standard
Tes scripts faisant usage de ces deux derniers ont de plus le gros avantage de pouvoir être très facilement compatibles :
- avec les plateformes implémentant les modules turtle et matplotlib.pyplot standard (ordinateur, tablette, ...)

- aussi bien avec les Graph 90+E que les Graph 35+E II malgré leurs écrans très différents

- et même compatibles NumWorks, non non tu ne rêves pas !

Nous avions exploré le module
casioplot et reclassé les solutions
Python sur calculatrice en conséquence.
Toutefois nous n'avions pas fait de même pour les interfaces
matplotl.py et
turtle.py, nous contentant pour leur part de tests de compatibilité, aux résultats certes excellents.
En effet, les interfaces
matplotl.py et
turtle.py ont le défaut de disparaître en mode examen, et bien qu'officielles il n'aurait donc pas été juste de les inclure dans un même classement.

Aujourd'hui après avoir pris le temps de réfléchir à comment traiter tout ceci de façon équitable, nous te proposons enfin nos exploration et classement, à l'aide du scrit suivant.
- Code: Select all
def getplatform():
id=-1
try:
import sys
try:
if sys.platform=='nspire':id=0
if sys.platform.startswith('TI-Python') or sys.platform=='Atmel SAMD21':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]
plines=[29,16, 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("<") and s.find(" ")>=0 and not s.startswith("<module")
def explmod(pitm,pitmsl=[],reset=True):
global curline
if(reset):
curline=0
pitmsl=[sstr(pitm)]
hd="."*(len(pitmsl)-1)
spath=".".join(pitmsl)
c,c2=0,0
spitm=str(pitm)
for itms in sorted(dir(pitm)):
c,c2=c+1,c2+1
try:
itm=eval(spath+"."+itms)
mprint(hd+itms+"="+str(itm))
if isExplorable(itm) and itm!=pitm:
pitmsl2=pitmsl.copy()
pitmsl2.append(itms)
c2=c2+explmod(itm,pitmsl2,False)[1]
except:
mprint(hd+itms)
if c>0 and reset:
mprint(hd+"Total: "+str(c)+" 1st level item(s)")
if c2>0 and c2!=c:
mprint(hd+" "+str(c2)+" item(s)")
return [c,c2]


Commençons donc par l'interface
matplotl.py, avec l'appel
import matplotl; explmod(matplotl)
.
Tu bénéficies donc ici de 25 points d'entrée :


On peut déjà noter quelques différences de valeurs entre les versions du script pour
Graph 35+E II et
Graph 90+E, l'un travaillant en effet sur un écran 128×64 pixels et l'autre 384×192 pixels.
Il faut donc éviter intervertir les deux versions du script.
Pas d'erreur sinon, tes scripts seront fonctionnels mais tu obtiendras un affichage non conforme à ton écran; en timbre poste dans le coin supérieur gauche sur
Graph 90+E, ou encore illisible car débordant de l'écran sans possibilité de défilement sur
Graph 35+E II.


Et maintenant voici l'exploiration de l'interface
turtle.py, avec l'appel
import turtle; explmod(turtle)
.
Bien que nettement plus court, le script offre ici dans ses deux versions pas moins de 69 points d'entrée :
Synthétisons donc enfin ces dernières nouveautés :
Et voici donc le classement à jour des
Pythonnettes dans les deux catégories, en terme d'éventail puis de richesse des modules :
Aux examens français :
- 13 modules :
TI-83 Premium CE Edition Python - 11 modules :
NumWorks - 9 modules :
HP Prime (version alpha) - 4 modules :
Casio Graph 35+E II
Casio Graph 90+E
En classe :
- 13 modules :
TI-Python (firmware tiers)
TI-83 Premium CE Edition Python - 11 modules :
NumWorks - 9 modules :
HP Prime (version alpha)
Casio Graph 35+E II
Casio Graph 35+E/USB
Casio Graph 75/85/95
Casio fx-9750GII/GIII
Casio fx-9860G/GII/GIII
(appli CasioPython) - 8 modules :
TI-Nspire (appli MicroPython)
TI-Python - 6 modules :
Casio Graph 35+E II
Casio Graph 90+E
Casio fx-9750/9860GIII
Casio fx-CG50
Aux examens français :
- 219-642 éléments :
HP Prime (version alpha) - 265-365 éléments :
NumWorks - 170-296 éléments :
TI-83 Premium CE Edition Python - 123-214 éléments :
Casio Graph 35+E II
Casio Graph 90+E
En classe :
- 219-642 éléments :
HP Prime (version alpha) - 265-365 éléments :
NumWorks - 238-384 éléments :
TI-Python (firmware tiers) - 217-308 éléments :
Casio Graph 35+E II
Casio Graph 90+E
Casio fx-9750/9860GIII
Casio fx-CG50 - 203-318 éléments :
Casio Graph 35+E II
Casio Graph 35+E/USB
Casio Graph 75/85/95
Casio fx-9750GII/GIII
Casio fx-9860G/GII/GIII
(appli CasioPython) - 176-340 éléments :
TI-Nspire (appli MicroPython) - 170-296 éléments :
TI-83 Premium CE Edition Python - 158-284 éléments :
TI-Python