Page 1 of 1

Débutant: intégration de Python dans un classeur

PostPosted: 02 May 2023, 22:10
by TheOtherSide
Bonjour,

Je viens d'acquérir une nSpire CXIIT CAS, et la principale nouveauté pour moi tourne autour des classeurs.
J'essaye d'intégrer des programmes en Python dans un classeur, mais je ne suis pas sûr de le faire correctement parce que l'expérience n'est pas du tout fluide.
Voici mes principaux points d'interrogation :
1. Est-ce que la seule possibilité pour exécuter un programme en Python est de se positionner sur l'onglet de son source ?
2. Est-ce qu'il y a un raccourcis plus rapide que menu 2 1 ou ctrl menu 6 pour l''exécution ? Parce que retrouver le bon onglet + la séquence de 3 touches, c'est assez enterré et pas très intuitif.
3. Lorsqu'on veut uniquement exécuter un programme, est-on obligé d'avoir un onglet pour le source + un autre onglet pour la console ? Tout est doublé, 3 programmes prennent 6 onglets, ça devient vite confus.
4. Lorsqu'on exécute un programme, on a le source affiché dans l'onglet avec le curseur dans le source. C'est très facile de modifier involontairement le source. Est-ce qu'il y a un moyen de verrouiller l'édition et d'empêcher toute modification du source ?
5. La calculatrice est complètement bloquée pendant l'exécution de la fonction input() : "esc", "on" n'y font rien. Quelle est la procédure pour un arrêt anticipé d'un programme Python ?
6. J'utilise Python parce que c'est le langage le plus familier pour moi. Est-ce que les points précédents sont les mêmes en Lua et TI-basic ? Il me semble que le passage Python -> Lua ne devrait pas être trop douloureux, encore faut-il qu'il y ait un intérêt. Je programme depuis l'application PC et pas directement sur la calculatrice, donc l'absence d'éditeur Lua "local" n'est pas un problème.

Merci pour vos conseils !

Re: Débutant: intégration de Python dans un classeur

PostPosted: 02 May 2023, 22:17
by Adriweb
Hello,

Étant pas vraiment dispo à l'instant, je réponds que très partiellement, juste à ton dernière point: le Nspire Lua est tres largement plus puissant et plus rapide que que le Python. En effet le lua a été mis en place pour faire en sorte que les gens fasses des "apps", alors que le python pour répondre au besoin éducatif/des programmes scolaires.
Et puis d'ailleurs en Lua il n'y a pas d'éditeur on-calc officiels (tiers oui), c'est vraiment fait pour des gros codes à éditer/debugger sur ordi.

Re: Débutant: intégration de Python dans un classeur

PostPosted: 02 May 2023, 23:04
by TheOtherSide
Je viens de télécharger quelques classeurs Lua, et l'expérience utilisateur n'est pas du tout la même, tous les points que j'ai soulevé semblent résolus.
Ceci dit, le côté "quick and dirty" du mode texte pur peut aussi avoir son intérêt, même pour des programmes d'une certaine taille.
Est-ce que Lua sur Nspire le permet, ou est-ce obligatoirement graphique ?

Re: Débutant: intégration de Python dans un classeur

PostPosted: 03 May 2023, 00:15
by Hamza.S
TheOtherSide wrote:1. Est-ce que la seule possibilité pour exécuter un programme en Python est de se positionner sur l'onglet de son source ?

non tu peux aller sur shell, taper from module import* module = nom du module créé et :nsva: pour accéder aux fonctions créées

TheOtherSide wrote:2. Est-ce qu'il y a un raccourcis plus rapide que menu 2 1 ou ctrl menu 6 pour l''exécution ? Parce que retrouver le bon onglet + la séquence de 3 touches, c'est assez enterré et pas très intuitif.

:nsct: :nsr: pour exécuter si tu as ouvert le code source sinon réponse à la question 1

TheOtherSide wrote:3. Lorsqu'on veut uniquement exécuter un programme, est-on obligé d'avoir un onglet pour le source + un autre onglet pour la console ? Tout est doublé, 3 programmes prennent 6 onglets, ça devient vite confus.

non tu peux fermer les pages des codes sources ( :nsdo: :ns5: :ns6: pour fermer la page :nsdo: :ns5: :ns5: pour fermer la l'application) et exécuter les programmes avec la méthode réponse question 1

TheOtherSide wrote:4. Lorsqu'on exécute un programme, on a le source affiché dans l'onglet avec le curseur dans le source. C'est très facile de modifier involontairement le source. Est-ce qu'il y a un moyen de verrouiller l'édition et d'empêcher toute modification du source ?

tant que la vérification syntaxe n'est pas faite, le code n'est pas pris en compte
si la page contient plusieurs applications, :nsct: :ns6: pour dégrouper comme ça chaque application sera dans une page. pour toute modification de page ça se passe dans :nsdo:

TheOtherSide wrote:5. La calculatrice est complètement bloquée pendant l'exécution de la fonction input() : "esc", "on" n'y font rien. Quelle est la procédure pour un arrêt anticipé d'un programme Python ?

pour input je ne sais pas, mais pour interrompre, il faut maintenir :nsho:

Re: Débutant: intégration de Python dans un classeur

PostPosted: 03 May 2023, 23:05
by Adriweb
TheOtherSide wrote:Ceci dit, le côté "quick and dirty" du mode texte pur peut aussi avoir son intérêt, même pour des programmes d'une certaine taille.
Est-ce que Lua sur Nspire le permet, ou est-ce obligatoirement graphique ?


Pas bien sur de comprendre, tu parle du shell/REPL python, que tu voudrais aussi avoir en Lua?
C'est pas dispo de base, mais ca peut se faire.

Re: Débutant: intégration de Python dans un classeur

PostPosted: 04 May 2023, 08:14
by TheOtherSide
Bonjour,
@Hamza.S: Merci pour les explications détaillées. Le 1. reste compliqué, par contre le 5. marche correctement: effectivement il faut faire un appui long et non pas bref sur "on".
@Adriweb: En utilisant l'équivalent de print/input du Python, mais j'ai crû comprendre que io.read, io.write ne sont pas implémentés sur Nspire, et donc que les applications doivent utiliser des composants graphiques.

Re: Débutant: intégration de Python dans un classeur

PostPosted: 04 May 2023, 08:43
by Adriweb
Pas besoin de tout reimplementer soi-meme (meme s'il existe des framework, du style ETK, qui ont permis de faire FormulaPro par exemple), pour du simple input/output, il est possible d'utiliser des D2Editor dans un mode basique.