Page 1 of 1

Module TI-Python: exploration module time + comparaison

Unread postPosted: 19 Jan 2019, 11:42
by critor
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. Voici la liste de ces pythonnettes :
  • NumWorks avec MicroPython 1.9.4
  • Casio Graph 90+E avec MicroPython 1.9.4
  • HP Prime avec l'écriture Python de Xcas
L'on peut également citer le module externe TI-Python pour TI-83 Premium CE avec CircuitPython (dérivé de MicroPython), et qui sera disponible à compter de mars 2019.

À côté de cela nous avons aussi plusieurs implémentations communautaires, qui donc à la différence ne fonctionneront pas en mode examen pour les examens 2020 :


10015Dans sa dernière mise à jour 9.2.0 NumWorks vient de rajouter le module time, a priori une exclusivité.

Sauf que nous te révélions par la suite que le module time était déjà inclus dans le module externe TI-Python présenté au mois d'octobre aux journées APMEP à Bordeaux.

Après l'avoir donc fait sur NumWorks, explorons donc ce qu'a à offrir le module time sur le module externe TI-Python pour TI-83 Premium CE, toujours à l'aide du script suivant :
Code: Select all
#platforms: (0)TI-Nspire (1)NumWorks (2)Graph 90+E (3)Graph 75+E (4)TI-Python
plines=[29,12,  7, 9,11]
pcols =[53,99,509,32,32]
platform=0
try:
  import sys
  try:
    if sys.platform=='nspire': platform=0
    if sys.platform=='TI-Python Adapter': platform=4
  except: platform=3
except:
  try:
    import kandinsky
    platform=1
  except:
    platform=2

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 explmod(pitm,r=False,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 r and spath.rfind(itms)<0:
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,r,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c


TI-Python wrote:>>> from explmod import *
>>> import time
>>> explmod(time)
__name__=time
monotonic=<function>
sleep=<function>
struct_time=<class 'struct_time'>
Total: 4 item(s)
4
>>>


Et bien non, malgré le petit nombre d'entrées dans les deux cas, ces deux implémentations du module time ne sont pas équivalentes :
NumWorks
TI-Python pour
TI-83 Premium CE
__name__='time'
monotonic()
sleep()
.
__name__='time'
monotonic()
sleep()
<struct_time>
Total: 3Total: 4


D'où le classement suivant :
  1. module externe TI-Python pour TI-83 Premium CE avec 4 entrées
  2. NumWorks avec 3 entrées
  3. TI-Nspire et Casio Graph 35/75/90+E avec 0 entrée

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 19 Jan 2019, 19:24
by ptijoz
qu'est-ce qu'elle fait cette 4eme fonction time sur ti-83 ?

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 19 Jan 2019, 19:29
by Adriweb
Ce n'est pas une fonction mais une représentation de données, comme son nom l'indique.
Cf. par ici https://docs.python.org/3/library/time. ... truct_time pour la doc coté vrai python, mais je suppose que ce doit être pareil.

Comme c'est la structure retournée par des fonctions qui ne sont pas disponible, je ne suis pas sûr qu'elle ait un quelconque intérêt - peut être aussi pourquoi sur NumWorks, l'impem custom ne s'est limitée à ce qui pourrait uniquement servir. Bref, pour TI-Python ou NumWorks, les 2 fonctions principales/utiles sont là, et c'est ce qui compte.

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 19 Jan 2019, 20:23
by parisse
Je rajoute sleep et monotonic dans Xcas et KhiCAS. Il faut encore que je teste sleep sur la Casio hardware, sur l'emulateur ca ne marche pas.

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 19 Jan 2019, 22:55
by ptijoz
Adriweb wrote:Ce n'est pas une fonction mais une représentation de données, comme son nom l'indique.
Cf. par ici https://docs.python.org/3/library/time. ... truct_time pour la doc coté vrai python, mais je suppose que ce doit être pareil.

Comme c'est la structure retournée par des fonctions qui ne sont pas disponible, je ne suis pas sûr qu'elle ait un quelconque intérêt - peut être aussi pourquoi sur NumWorks, l'impem custom ne s'est limitée à ce qui pourrait uniquement servir. Bref, pour TI-Python ou NumWorks, les 2 fonctions principales/utiles sont là, et c'est ce qui compte.


si elles ne servent à rien dans les cas, pourquoi les compter dans l'énumération ?

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 20 Jan 2019, 06:17
by Adriweb
critor compte juste le nombre de truc dispo, mais apres en effet si elle est inutile, ça n'est pas une très bonne mesure cette fois ci :P

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 20 Jan 2019, 16:54
by parisse
Voila, sleep marche bien sur la calculatrice, mais pour eviter de bloquer l'emulateur avec sleep(1), je vais mettre le delai en centiemes de secondes au lieu de secondes.

Re: Module TI-Python: exploration module time + comparaison

Unread postPosted: 23 Jan 2019, 13:34
by ptijoz
wait(1) and see