π
<-
Chat plein-écran
[^]

Exploration module Python ce_box TI-83 Premium CE 5.5

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Exploration module Python ce_box TI-83 Premium CE 5.5

Unread postby critor » 20 May 2020, 10:30

12382Dans sa prochaine mise à jour
5.5
gratuite prévue pour
Mai 2020
,
Texas Instruments
va rajouter de formidables possibilités historiques à ta
TI-83 Premium CE
:
  • mise à jour en
    5.5
    de l'application
    SciTools
  • mise à jour en
    5.5
    de l'application
    Periodic
  • mise à jour en
    5.5
    de l'application
    Python
    (
    TI-83 Premium CE Édition Python
    uniquement)

Python 5.5
offre de nouveaux modules intégrés pour tes scripts
Python
:
  • time
    , certes déjà présent mais maintenant listé au menu et donc officiel
  • , avec diverses possibilités :
    • détection des simples pressions de touches clavier, y compris avec un clavier
      USB
      externe !
    • affichage dans la console à la ligne que tu veux
    • exportation de listes de nombres du contexte
      Python
      vers l'environnement de la calculatrice
    • importation dans le contexte
      Python
      de listes existant dans l'environnement de la calculatrice vers
    • et donc plus généralement un début d'intégration du
      Python
      à l'environnement mathématique de la calculatrice; plus besoin de traiter les tâches numériques à part, l'application
      Python 5.5
      va enfin pouvoir servir s'articulier naturellement au sein de la résolution de problèmes et tâches complexes !
  • , une bibliothèque graphique pour tracer dans un repère othogonal, conformément aux programmes de
    Mathématiques
    et
    Physique-Chimie
    , comparable à
    matplotl
    chez
    Casio
    ou encore
    matplotlib.pyplot
    , et gérant ici les diagrammes suivants :
    • nuage de points
    • diagramme en ligne brisée
    • droite de régression linéaire
  • pour contrôler directement les pixels de l'écran, comparable à
    kandinsky
    chez
    NumWorks
    ou encore
    casioplot
  • ti_hub
    , pour les projets d'objects connectés à l'aide de l'interface
  • , pour les projets de robotique à l'aide du
Mais ce n'est pas tout car
Python 5.5
gère également la possibilité inédite de rajouter des modules
Python
complémentaires :
  • , comparable à
    turtle
  • pour les diagrammes en boîte
  • pour les histogrammes et aires entre courbes
  • pour les diagrammes utilisant des champs de vecteurs

Nous disposons aujourd'hui enfin de ces 4 modules complémentaires et nous proposons de commencer à te les explorer plus en profondeur.
Attention, ces modules ne sont apparemment pas inclus dans la mise à jour et seront à charger séparément.

Attention également selon nos premiers tests, contrairement aux modules intégrés ces modules complémentaires ne seront pas utilisables en mode examen. :#non#:

Nous commençons dès maintenant par
ce_box
pour les diagrammes en boîte.




Sommaire :





1) importation et taille ce_box

Go to top

Une fois le fichier
ce_box.8xv
chargé dans la calculatrice, à première vue aucun changement.

ce_box
n'apparaît pas dans la liste des script
Python
, et la calculatrice ne l'identifie d'ailleurs clairement pas comme un script
Python
.

ce_box
n'apparaît pas non plus dans la liste des modules disponibles.

Mais pas grave, tentons quand même notre première importation de
ce_box
.

A l'aide du module intégré
gc
et du script suivant, voyons ce que cette importation consomme sur le tas
(heap)
Python
de
17 Ko
et quelques.
Code: Select all
from gc import mem_free as mf

smod = input('Module : ')
mf1, mf2 = 0, 0
scmd = 'from ' + s + ' import *'
mf1 = mf()
exec(scmd)
mf2 = mf()
print(mf1 - mf2)

Comme tu peux voir, la consommation de tas est énorme, le module
ce_box
fait
13,44 Ko
. Il nous reste maintenant moins de
3 Ko
de
heap
Python
disponible, on ne va pas pouvoir aller coder bien loin... :#roll#:

On peut toutefois facilement comprendre cela. Il s'agit d'un module de tracé :
  • qui probablement importe lui-même en interne
    ti_plotlib
    (
    7,232 Ko
    )
  • ti_plotlib
    importe à son tour le module
    sys
    (224 o)
  • ti_plotlib
    importe lui-même à son tour
    ti_graphics
    (2,896 Ko)
  • ti_graphics
    importe également le module
    sys
    (224 o)
  • ti_graphics
    import aussi le module
    math
    (336 o)
Donc en contrepartie de cette consommation de
heap
, tu as déjà à ta disposition une bonne partie des modules et de leurs fonctionnalités sans avoir à rien importer d'autre. :bj:




2) menus ce_box

Go to top

Le module
ce_box
n'est en fait rajouté aux menus qu'à partir du moment où tu édites ou crées un script qui l'importe.

En l'absence de menus jusque-là, il te faudra donc saisir toi-même le nom du module pour la commande d'imporation.




3) exemples ce_box

Go to top

La fonction
ce_box.show()
est tout simplement équivalente au code suivant :
Code: Select all
while not ti_system.escape():
  pass

C'est-à-dire que contrairement à ce que son nom indique,
ce_box.show()
n'affiche rien mais gèle l'affichage courant le temps que l'utilisateur appuie sur une touche d'interruption. C'est nécessaire puisque sur
TI-83 Premium CE Edition Python
les affichages graphiques sont effectués sur l'écran de la console, et seront donc automatiquement nettoyés et perdus en fin d'exécution d'un script.

Code: Select all
from ce_box import *
data = [3,2,3,3,1,5,4,3,1,5,2,1,4,3,3,0,1,3,3,1,2,4,2,4,0,0,2,2,3,2]
Ex1 = box(data)
Ex1.title('Exercice 4-1')
Ex1.show()


Code: Select all
from random import *
from ce_box import *
data = [randint(-10, 42) for i in range(200)]
diag = box(data)
diag.title("Températures")
diag.show()




Dernière question, quelle est la définition utilisée pour les quartiles ? Au lycée français c'est particulier, contrairement à la médiane les quarties sont toujours des valeurs de la série statistique.

La
TI-83 Premium CE
adopte cette définition par défaut mais laisse le choix.

Prenons donc en
Python
un cas qui fait la différence comme par exemple [1, 2, 3, 4, 5] :
Code: Select all
from ce_box import *
d = (1, 2, 3, 4, 5)
b = box(d)
b.show()

Excellente nouvelle,
ce_box
nous fait visiblement des
"quartiles à la française"
, et ce d'ailleurs peu importe le réglage de la calculatrice. Mais peut-être que le comportement sera différent sur la modèle international
TI-84 Plus CE Python Edition
à venir pour cette rentrée 2020.




4) exploration ce_box

Go to top

Enfin, terminons par une exploration intégrale du contenu du module
ce_box
, à l'aide du script suivant :
Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E / G35+E II
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE / Trinket M0
#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.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]

unsafe = ((), (), (), ('sys.argv', 'sys.path'), (), (), ())

if platform>=0:
  curline=0
  _p = print
  nlines=plines[platform]
  ncols=pcols[platform]
  def print(*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
    _p(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):
  for k in done:
    try:
      if isinstance(obj, eval(k)):
        t, done[k] = done[k], True
        return not t
    except: pass
  if str(obj).startswith("<module"): return False
  l = ()
  try: l = dir(obj)
  except: pass
  return len(l)

done = {'str':False, 'list':False, 'tuple':False, 'dict':False, 'complex':False, 'set':False, 'frozenset': False}

def explmod(pitm, pitmsl=[], reset=True):
  global curline
  spitm=sstr(pitm)
  if(reset):
    curline=0
    pitmsl=[spitm]
    for k in done: done[k] = False
  hd="."*(len(pitmsl)-1)
  c,c2=0,0
  l = sorted(dir(pitm))
  for i in range(len(l)):
    l[i] = (l[i], getattr(pitm, l[i]))
  try:
    if not isinstanceof(pitm, str):
      for i in range(len(pitm)):
        l.append((spitm+'['+str(i)+']',pitm[i]))
  except: pass
  for itm in l:
    c,c2=c+1,c2+1
    isUnsafe = platform >= 0 and '.'.join(pitmsl + [itm[0]]) in unsafe[platform]
    try:
      if isUnsafe: raise Exception
      print(hd+itm[0]+"="+str(itm[1]))
    except:
      print(hd+itm[0])
    if not isUnsafe and isExplorable(itm) and itm[1] != pitm and itm[0] not in pitmsl:
      pitmsl2=pitmsl.copy()
      pitmsl2.append(itm[0])
      c2=c2+explmod(itm[1], pitmsl2, False)[1]
  if c>0 and reset:
    print(hd+"Total: "+str(c)+" 1st level item(s)")
    if c2>0 and c2!=c:
      print(hd+"       "+str(c2)+" item(s)")
  return [c,c2]


Notons en passant la présence d'une fonction permettant à tes scripts de tester la version
ce_box
, ici
1.0
.

On valide en passant l'hypothèse formulée plus haut, le module
ti_plotlib
est bien inclus dans
ce_box
et accessible via ce_box.plt.

Le module
ce_box
offre donc 5 éléments au premier niveau, et jusqu'à 32 en comptant les sous-éléments.

De quoi mettre à jour notre comparatif de la richesse des différentes solutions
Python
sur calculatrices :
Casio Graph
35+E II
90+E
NumWorks
TI-83PCE
Ed. Python
builtins
array
collections
cmath
gc
math
matplotlib
matplotlib.pyplot
micropython
os
random
sys
time
turtle
uerrno
84-197
.
.
.
.
25-47
.
.
.
.
8-30
.
.
.
.
97-1581
3-363
.
13-428
9-404
42-602
.
.
10-410
.
.
17-977
.
.
25-1277
89-211
.
.
12-34
.
41-63
3-25
11-33
6-28
.
9-31
.
3-25
38-60
.
92-211
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
spécifique
casioplot:6-28prime:3-368ion:48-162
kandinsky:8-30
ti_graphics:30-75
ti_hub:?
ti_plotlib:49-84
ti_system:12-34
ti_rover:66-92
Modules
4
9
11
13
Eléments
123-302
219-6042
267-701
315-772

Classement en terme de richesse :
  1. 315-772
    éléments :
    TI-83 Premium CE Edition Python
  2. 267-701
    éléments :
    NumWorks
  3. 219-6042
    éléments :
    HP Prime
    (version alpha)
  4. 123-302
    éléments :
    Casio Graph 90+E / 35+E II
Casio Graph
35+E II
90+E
CasioPython
Casio Graph
35+E II
35+E/USB
75/85/95
MicroPython
TI-Nspire
TI-Python
TI-83PCE
Ed. Python
builtins
array
collections
cmath
gc
math
matplotlib
matplotlib.pyplot
micropython
os
random
sys
time
turtle
uerrno
84-197
.
.
.
.
25-47
.
.
.
.
8-30
.
.
69-126
.
91-230
2-28
.
12-38
7-33
41-67
.
.
6-32
.
8-34
12-38
.
.
24-108
93-218
2-28
.
12-38
7-33
41-67
.
.
3-29
.
.
15-86
.
.
.
92-212
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
93-214
2-25
2-25
12-35
7-30
41-64
.
.
6-29
15-38
8-31
15-99
8-33
.
.
92-211
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
spécifique
casioplot:6-28
matplotl:25-68
nsp:3-10board:22
storage:7-47
ce_box:5-32
ce_chart:?
ce_quivr:?
ce_turtl:?
ti_graphics:30-75
ti_hub:?
ti_plotlib:49-84
ti_system:12-34
ti_rover:66-92
Modules
6
9
8
9
13
17
Eléments
217-496
203-608
176-509
158-488
238-692
320-804

Classement en terme de richesse :
  1. 320-804
    éléments :
    TI-83 Premium CE Edition Python
  2. 267-701
    éléments :
    NumWorks
  3. 238-692
    éléments :
    TI-83 Premium CE + TI-Python
    (firmware tiers)
  4. 219-6042
    éléments :
    HP Prime
    (version alpha)
  5. 217-496
    éléments :
    Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  6. 203-608
    éléments :
    Casio Graph 75/85/95 / 35+E/USB / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII
    (appli CasioPython)
  7. 176-509
    éléments :
    TI-Nspire
    (appli MicroPython)
  8. 158-488
    éléments :
    TI-83 Premium CE + TI-Python

Tuto-vidéos
:

Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35641
Images: 9555
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Exploration module Python ce_box TI-83 Premium CE 5.5

Unread postby Lionel Debroux » 20 May 2020, 11:07

Eh ? Seulement 4 KB de tas Python disponible après avoir importé ce truc ?
Pour une invocation interactive triviale, ça passera, mais impossible d'utiliser ça dans un ensemble de scripts, ouais !
Et puis il n'est pas dispo en mode examen, comme les autres modules complémentaires.

On en revient toujours au même point, le matériel incroyablement limité embarqué par les 83PCE EP...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 7.1%
 
Posts: 6536
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: Exploration module Python ce_box TI-83 Premium CE 5.5

Unread postby critor » 20 May 2020, 11:21

Non pardon, toutes mes excuses, c'était une grossière approximation de ma part.

En fait il reste moins de 3 Ko après importation de
ce_box
: :troll:
Image
Code: Select all
from gc import mem_free as mf

smod = input('Module : ')
mf1, mf2 = 0, 0
scmd = 'from ' + s + ' import *'
mf1 = mf()
exec(scmd)
mf2 = mf()
print(mf1 - mf2)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35641
Images: 9555
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Exploration module Python ce_box TI-83 Premium CE 5.5

Unread postby Lionel Debroux » 20 May 2020, 11:29

Encore mieux. Bref, ce n'est pas demain la veille que le Python trafiqué, partiellement NIH, de TI sera utilisable sur les TI-eZ80 pour faire des choses complexes.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 7.1%
 
Posts: 6536
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: Exploration module Python ce_box TI-83 Premium CE 5.5

Unread postby Hamza.S » 20 May 2020, 11:34

On peut déjà faire 1+1 sans que la mémoire flanche, c'est pas mal :troll:

C'est du joli travail de leur part, ceci dit.
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 11.4%
 
Posts: 3926
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):


Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 58 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
668 utilisateurs:
>662 invités
>2 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)