Cet article au sujet du module
Certaines photos ne correspondront pas exactement à ce qui est décrit, car nous avons amélioré le script utilisé entre les deux événements. Or malheureusement, il était beaucoup plus compliqué de prendre de bonnes photos au congrès
Dans tous les cas, notez que ces tests ont été réalisés sur un prototype non final, et que des choses évoquées peuvent changer d'ici la livraison, en bien ou en mal d’ailleurs.
En vous priant donc de bien vouloir excuser les imprécisions éventuelles.
TI-Python
est rédigé a posteriori et illustré à l’aide des photos de tests prises sur le stand de Texas Instruments
aux journées APMEP 2018 puis congrès UdPPC 2018. Nous ne disposons pas à ce jour du module.Certaines photos ne correspondront pas exactement à ce qui est décrit, car nous avons amélioré le script utilisé entre les deux événements. Or malheureusement, il était beaucoup plus compliqué de prendre de bonnes photos au congrès
UdPPC
de par l'affluence nettement supérieure, le fait que seulement un module au lieu de deux était disponibles sur le stand pour tous ces visiteurs, ainsi que le fait que les stands ne disposaient cette fois-ci pas de cloisons à la différence mais consistaient en de simples tables alignées le long d'une allée et bien remplies - pas vraiment d'espace pour se poser.Dans tous les cas, notez que ces tests ont été réalisés sur un prototype non final, et que des choses évoquées peuvent changer d'ici la livraison, en bien ou en mal d’ailleurs.
En vous priant donc de bien vouloir excuser les imprécisions éventuelles.
Dans un article précédent nous t'avons présenté le
TI-Python
, module externe permettant l'exécution de scripts Python
sur ta TI-83 Premium CE
.Et peut-être as-tu été déçu(e) que le catalogue alphabétique accessible via
2nde
0ne contienne apparemment que 95 éléments, surtout que parmi ces éléments sont inclus ceux des deux modules intégrés
math
et random
. A priori très décevant par rapport à la concurrence...Et bien non, en fait chez
Texas Instruments
le catalogue est très loin de tout lister. Par exemple, la commande try:
fonctionne alors qu'elle n'est pas au catalogue.Comment donc faire pour savoir ce que vaut vraiment le module
TI-Python
?Tentons d'explorer le module
builtins
à 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]
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 explmod(obj,hd="",obs="",reset=True):
global curline
if(reset): curline=0
c=0
for itm in sorted(dir(obj)):
c=c+1
try:
if obs=="":
try:
obs=obj.__name__
except:
obs=str(obj)
obs=obs[obs.find("'")+1:obs.rfind("'")]
its=obs+"."+str(itm)
itv=eval(its)
mprint(hd+str(itm)+"="+str(itv))
if itv!=obj:
c=c+explmod(itv,hd+".",its,False)
except:
mprint(hd+str(itm))
if c>0:
mprint(hd+"Total: "+str(c)+" item(s)")
return c
Le script nous liste alors pas moins de 212 entrées retranscrites ci-dessous :

TI-Python wrote:>>> from explmod import *
>>> import builtins
>>> explmod(builtins)
ArithmeticError=<class 'ArithmeticError'>
AssertionError=<class 'AssertionError'>
AttributeError=<class 'AttributeError'>
BaseException=<class 'BaseException'>
.__init__=<function>
.Total: 1 item(s)
EOFError=<class 'EOFError'>
Ellipsis=Ellipsis
Exception=<class 'Exception'>
GeneratorExit=<class 'GeneratorExit'>ImportError=<class 'ImportError'>
IndentationError=<class 'IndentationError'>
IndexError=<class 'IndexError'>
KeyError=<class 'KeyError'>
KeyboardInterrupt=<class 'KeyboardInterrupt'>
LookupError=<class 'LookupError'>
MemoryError=<class 'MemoryError'>
NameError=<class 'NameError'>
NotImplementedError=<class 'NotImplementedError'>
OSError=<class 'OSError'>OverflowError=<class 'OverflowError'>
ReloadException=<class 'ReloadException'>
RuntimeError=<class 'RuntimeError'>
StopIteration=<class 'StopIteration'>
SyntaxError=<class 'SyntaxError'>
SystemExit=<class 'SystemExit'>
TypeError=<class 'TypeError'>UnicodeError=<class 'UnicodeError'>
ValueError=<class 'ValueError'>
ZeroDivisionError=<class 'ZeroDivisionError'>
__build_class__=<function>
__import__=<function>
__name__=builtins
.count=<bound_method>
.endswith=<bound_method>
.find=<bound_method>.format=<bound_method>
.index=<bound_method>
.isalpha=<bound_method>
.isdigit=<bound_method>
.islower=<bound_method>
.isspace=<bound_method>
.isupper=<bound_method>
.join=<bound_method>
.lower=<bound_method>
.lstrip=<bound_method>.replace=<bound_method>
.rfind=<bound_method>
.rindex=<bound_method>
.rsplit=<bound_method>
.rstrip=<bound_method>
.split=<bound_method>
.startswith=<bound_method>
.strip=<bound_method>
.upper=<bound_method>
.Total: 22 item(s)__repl_print__=<function>
abs=<function>
all=<function>
any=<function>
bin=<function>
bool=<class 'bool'>
bytearray=<class 'bytearray'>
.append=<function>
.extend=<function>
.Total: 2 item(s)bytes=<class 'bytes'>
.count=<function>
.endswith=<function>
.find=<function>
.format=<function>
.index=<function>
.isalpha=<function>
.isdigit=<function>
.islower=<function>
.isspace=<function>.isupper=<function>
.join=<function>
.lower=<function>
.lstrip=<function>
.replace=<function>
.rfind=<function>
.rindex=<function>
.rsplit=<function>
.rstrip=<function>
.split=<function>
.startswith=<function>.strip=<function>
.upper=<function>
.Total: 22 item(s)
callable=<function>
classmethod=<class 'classmethod'>
dict=<class 'dict'>
.__delitem__=<function>
.__getitem__=<function>.__setitem__=<function>
.clear=<function>
.copy=<function>
.fromkeys=<bound_method>
.get=<function>
.item=<function>
.keys=<function>
.pop=<function>
.popitem=<function>
.setdefault=<function>.update=<function>
.values=<function>
.Total: 14 item(s)
dir=<function>
divmod=<function>
enumerate=<class 'enumerate'>
eval=<function>
exec=<function>
filter=<class 'filter'>
float=<class 'float'>getattr=<function>
globals=<function>
hasattr=<function>
hash=<function>
help=<function>
help=<function>
hex=<function>
id=<function>
input=<function>
input=<function>int=<class 'int'>
.from_bytes=<bound_method>
.to_bytes=<function>
.Total: 2 item(s)
isinstance=<function>
issubclass=<function>
iter=<function>
len=<function>
list=<class 'list'>
.append=<function>.clear=<function>
.copy=<function>
.count=<function>
.extend=<function>
.index=<function>
.insert=<function>
.pop=<function>
.remove=<function>
.reverse=<function>
.sort=<function>
.Total: 11 item(s)locals=<function>
max=<function>
memoryview=<class 'memoryview'>
min=<function>
next=<function>
object=<class 'object'>
oct=<function>
open=<function>ord=<function>
pow=<function>
print=<function>
property=<class 'property'>
.__deleter__=<function>
.__getter__=<function>
.__setter__=<function>
.Total: 3 item(s)
range=<class 'range'>
repr=<function>round=<function>
set=<class 'set'>
.__contains__=<function>
.__add__=<function>
.__clear__=<function>
.__copy__=<function>
.__difference__=<function>
.__difference_update__=<function>
.__discard__=<function>
.__intersection__=<function>.__intersection_update__=<function>
.__isdisjoint__=<function>
.__issubset__=<function>
.__issuperset__=<function>
.__pop__=<function>
.__remove__=<function>
.__symetric_difference__=<function>
.__symetric_difference_update__=<function>
.__union__=<function>
.__update__=<function>
.Total: 18 item(s)setattr=<function>
slice=<class 'slice'>
sorted=<function>
staticmethod=<class 'staticmethod'>
str=<class 'str'>
.count=<function>
.endswith=<function>
.find=<function>
.format=<function>.index=<function>
.isalpha=<function>
.isdigit=<function>
.islower=<function>
.isspace=<function>
.isupper=<function>
.join=<function>
.lower=<function>
.lstrip=<function>
.replace=<function>.rfind=<function>
.rindex=<function>
.rsplit=<function>
.rstrip=<function>
.split=<function>
.startswith=<function>
.strip=<function>
.upper=<function>
.Total: 22 item(s)
sum=<function>super=<class 'super'>
tuple=<class 'tuple'>
.count=<function>
.index=<function>
.Total: 2 item(s)
type=<class 'type'>
zip=<class 'zip'>
Total: 212 item(s)
212
>>>
Tout ça c'est bien joli, mais qu'est-ce que ça donne par rapport à la concurrence ?
Et bien voilà, nous avons lancé le même script sur les autres calculatrices disposant du
Python
à ce jour :Casio Graph 90+E | NumWorks | TI-Python pour TI-83 Premium CE | ||
ArithmeticError AssertionError AttributeError BaseException EOFError Ellipsis Exception GeneratorExit ImportError IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError NotImplemented OSError OverflowError RuntimeError StopIteration SyntaxError SystemExit TypeError UnicodeError ValueError ViperTypeError ZeroDivisionError __build_class__() __import__() __repl_print__() abs() all() any() bin() bool bytearray bytes callable() chr() classmethod compile() complex dict dir() divmod() enumerate eval() exec() filter float frozenset getattr() globals() hasattr() hash() hex() id() input() int isinstance() issubclass() iter() len() list locals() map max() memoryview min() next() object oct() open() ord() pow() print() property range repr() reversed round() set setattr() sorted() staticmethod str sum() super tuple type zip | ArithmeticError AssertionError AttributeError BaseException EOFError Ellipsis Exception GeneratorExit ImportError IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError NotImplementedError OSError OverflowError RuntimeError StopIteration SyntaxError SystemExit TypeError ValueError ZeroDivisionError __build_class__() __import__() __name__='builtins' __repl_print__() abs() all() any() bin() bool bytes callable() chr() classmethod complex dict dir() divmod() eval() exec() float getattr() globals() hasattr() hash() hex() id() input() int isinstance() issubclass() iter() len() list locals() map max() min() next() object oct() open() ord() pow() print() range repr() round() set setattr() slice sorted() staticmethod str sum() super tuple type zip | ArithmeticError AssertionError AttributeError BaseException EOFError Ellipsis Exception GeneratorExit ImportError IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError NotImplementedError OSError OverflowError RuntimeError StopIteration SyntaxError SystemExit TypeError ValueError ZeroDivisionError __build_class__() __import__() __name__='builtins' __repl_print__() abs() all() any() bin() bool bytearray bytes callable() chr() classmethod complex dict dir() divmod() enumerate eval() exec() filter float frozenset getattr() globals() hasattr() hash() hex() id() input() int isinstance() issubclass() iter() len() list locals() map max() memoryview min() next() object oct() open() ord() pow() print() property range repr() reversed round() set setattr() slice sorted() staticmethod str sum() super tuple type zip | ArithmeticError AssertionError AttributeError BaseException EOFError Ellipsis Exception GeneratorExit ImportError IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError NotImplementedError OSError OverflowError RuntimeError StopIteration SyntaxError SystemExit TypeError ValueError ZeroDivisionError __build_class__() __import__() __name__='builtins' __repl_print__() abs() all() any() bin() bool bytes callable() chr() classmethod complex dict dir() divmod() enumerate eval() exec() filter float frozenset getattr() globals() hasattr() hash() hex() id() input() int isinstance() issubclass() iter() len() list locals() map max() min() next() object oct() open() ord() pow() print() range repr() reversed round() set setattr() slice sorted() staticmethod str sum() super tuple type zip | ArithmeticError AssertionError AttributeError BaseException EOFError Ellipsis Exception GeneratorExit ImportError IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError NotImplementedError OSError OverflowError ReloadException RuntimeError StopIteration SyntaxError SystemExit TypeError UnicodeError ValueError ZeroDivisionError __build_class__() __import__() __name__='builtins' __repl_print__() abs() all() bin() bool bytearray bytes callable() chr() classmethod dict dir() divmod() enumerate eval() exec() filter float getattr() globals() hasattr() hash() help() hex() id() input() int isinstance() issubclass() iter() len() list locals() map max() memoryview min() next() object oct() open() ord() pow() print() property range repr() round() set setattr() slice sorted() staticmethod str sum() super tuple type zip |
Total: 218 | Total: 197 | Total: 218 | Total: 210 | Total: 212 |
D'où le classement suivant :
- TI-NspireetCasio Graph 35+E/75+Eavec218entrées
- module TI-PythonpourTI-83 Premium CEavec212entrées
- NumWorksavec210entrées
- Casio Graph 90+Eavec197entrées
Avec pas moins de 212 éléments présents à ce jour dans son module
builtins
, l'implémentation Python
du module externe TI-Python
n'est certes pas la plus complète. Toutefois elle se classe quand même honorablement parmi les plus complètes à la 2nde place, deux cheveux devant la NumWorks
, et laisse la Graph 90+E
loin derrière ! 
Mais quel dommage que ce module externe 
TI-Python
apparemment aussi complet ne soit pas utilisable aux examens en France !... 