π
<-
Chat plein-écran
[^]

News 2024
Avril (1)

News 2023
Août (2)
Juin (3)
Mai (7)
Avril (2)
Mars (3)

News 2022
Août (3)
Juin (4)
Mai (1)
Avril (6)
Mars (4)
Janvier (12)

News 2021
Août (8)
Juillet (28)
Juin (20)
Mai (19)
Avril (25)
Mars (15)

News 2020
Août (16)
Juillet (13)
Juin (17)
Mai (38)
Avril (21)
Mars (17)

News 2019
Août (10)
Juin (4)
Mai (11)
Avril (8)
Mars (18)
Janvier (14)

News 2018
Août (5)
Juin (9)
Mai (10)
Avril (2)
Mars (14)
Janvier (12)

News 2017
Août (10)
Juillet (14)
Juin (14)
Mai (11)
Avril (9)
Mars (12)
Janvier (11)

News 2016
Octobre (10)
Août (8)
Juin (8)
Mai (14)
Avril (9)
Mars (13)
Janvier (11)

News 2015
Octobre (15)
Août (11)
Juin (7)
Mai (12)
Avril (6)
Mars (11)

News 2014
Août (2)
Juin (2)
Mai (5)
Avril (4)
Mars (5)

News 2013
Août (6)
Juin (8)
Mai (14)
Avril (24)
Mars (16)
Janvier (10)

News 2012
Octobre (11)
Août (6)
Juin (8)
Mai (16)
Avril (16)
Mars (6)

News 2011
Août (4)
Juin (11)
Mai (5)
Avril (2)
Mars (6)

News 2010
Juin (1)
Mai (2)
Avril (1)

News 2009
Août (2)
Avril (1)

TI-Python, exploration de 3 modules : array, collections, gc

Nouveau messagede critor » 29 Jan 2019, 19:49

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, 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
builtins218188175204190
array???
collections?
cmath121212
gc???
math4141254128
random8888
sys151215
time34
dessin
(spécifique)
?
(nsp)
?
(kandinsky)
Modules76378
Éléments286+252+208277+245+


D'où à date le classement suivant :
  1. TI-Nspire avec 7 modules et plus de 286 entrées
  2. Casio Graph 35+E/75+E avec 7 modules et plus de 277 entrées
  3. NumWorks avec 6 modules et plus de 252 entrées
  4. module externe TI-Python pour TI-83 Premium CE avec 8 modules et plus de 245 entrées
  5. 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 :
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 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.
TI-Python a écrit:>>> 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.
TI-Python a écrit:>>> 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 :
TI-Python a écrit:>>> 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 :
NumWorks
Casio
Graph 90+E
module externe
TI-Python pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
spécifique?
(nsp)
?
(kandinsky)
?
(handshake)
Modules76379
Éléments297+252+208288258+


D'où le nouveau classement avec un léger changement : ;)
  1. TI-Nspire avec 7 modules et plus de 297 entrées
  2. Casio Graph 35+E/75+E avec 7 modules et 288 entrées
  3. module externe TI-Python pour TI-83 Premium CE avec 9 modules et plus de 258 entrées
  4. NumWorks avec 6 modules et plus de 252 entrées
  5. Casio Graph 90+E avec 3 modules et 208 entrées

A bientôt... ;)
Lien vers le sujet sur le forum: TI-Python, exploration de 3 modules : array, collections, gc (Commentaires: 0)

TI-Python : handshake et autres modules spécifiques

Nouveau messagede critor » 30 Jan 2019, 18:07

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, time, cmath, sys, array, collections et gc.

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
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
spécifique?
(nsp)
?
(kandinsky)
?
(handshake)
Modules76379
Éléments297+252+208288258+


D'où à date le classement suivant :
  1. TI-Nspire avec 7 modules et plus de 297 entrées
  2. Casio Graph 35+E/75+E avec 7 modules et 288 entrées
  3. module externe TI-Python pour TI-83 Premium CE avec 9 modules et plus de 258 entrées
  4. NumWorks avec 6 modules et plus de 252 entrées
  5. 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 des modules Python spécifiques à certains implémentations:
  • kandinsky pour le dessin sur NumWorks
  • nsp pour le dessin et le clavier sur TI-Nspire
  • et le mystérieux handshake sur le 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 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 nsp spécifique aux TI-Nspire nous révèle 10 éléments.

Le module kandinsky spécifique à la NumWorks nous révèle 5 éléments.

Enfin, voici ci-dessous une reconstitution de ce que le module externe TI-Python devrait afficher à partir de nos observations d'octobre dernier :
TI-Python a écrit:>>> from EXPLMOD import *
>>> import handshake
>>> explmod(handshake)
__file__=handshake.py
__name__=handshake
_print=<function>
print=<function>
Total: 4 item(s)
4


Il semble donc s'agir d'un module redéfinissant la fonction print(), peut-être pour que son affichage se produise bien sur l'écran de la calculatrice TI-83 Premium CE qui, rappelons-le, n'est techniquement pas la machine exécutant les scripts puisque c'est le processeur du module externe TI-Python qui s'en charge.
Il sera intéressant d'en consulter le code, ce que nous n'avons pas pu faire la dernière fois. ;)

Suite à cela, mettons à jour notre petit récapitulatif :
NumWorks
Casio
Graph 90+E
module externe
TI-Python pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
spécifique10
(nsp)
5
(kandinsky)
4
(handshake)
Modules76379
Éléments307257208288262


Voici donc enfin le classement final de la richesse des différentes implémentations Python sur calculatrices: :bj:
  1. TI-Nspire avec 7 modules et 307 entrées
  2. Casio Graph 35+E/75+E avec 7 modules et 288 entrées
  3. module externe TI-Python pour TI-83 Premium CE avec 9 modules et 262 entrées
  4. NumWorks avec 6 modules et 257 entrées
  5. Casio Graph 90+E avec 3 modules et 208 entrées
Enfin final jusqu'à-ce que l'un ou l'autre des constructeurs se décide à nous rajouter de nouveaux modules. ;)
Lien vers le sujet sur le forum: TI-Python : handshake et autres modules spécifiques (Commentaires: 1)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1394 utilisateurs:
>1362 invités
>25 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)