» CASIO MicroPython: Savoir si le programme s’exécute sur un ordinateur ou sur la calto
CASIO MicroPython: Savoir si le programme s’exécute sur un ordinateur ou sur la calto
Posté le 13/11/2019 19:34
Bonjour bonjour,
Etant donné la variété de supports sur lesquels python peut s'exécuter, je vous donne ce petit truc qui ne vient pas de moi, que j'ai trouvé sur internet en réalisant une recherche sur une commande python. Cette astuce permet au programme de savoir sur quel support il s'exécute.
Tout d'abords une petite explication de texte (et oui, je mets le suspens
).
L'idée c'est d’essayer d'importer des modules qui sont par défaut intégrés dans les IDE pour ordinateurs (ILDE...) et qui ne sont pas présents sur le MicroPython de CASIO. Je pense par exemple à tkinter, turtle, time, os...
Voici maintenant un code d'exemple:
try:
import tkinter
import turtle
import time
import os
print("computer")
except ImportError:
print("CASIO COMPUTER CO., LTD.")
Donc voilà, merci d'avoir pris le temps de lire le tout, j'espère que ça vous servira pour développer des programmes multi-supports en python.
Sur ce, A+
Citer : Posté le 13/11/2019 19:42 | #
Salut !
Encore mieux :
open("","")
print("Casio")
except:
print("any other Python")
Citer : Posté le 13/11/2019 20:15 | #
Ah oui, pas idiot
Ajouté le 13/11/2019 à 20:23 :
Comment tu utilises la commande open() sur le MicroPython ? Je connais le truc en python sur l'ordi mais ça ne fonctionne pas..
-Planétarium 2
Citer : Posté le 13/11/2019 20:41 | #
Vous pouvez aussi regarder le script Python du concours de rentrée, qui sait distinguer de nombreuses plateformes de calculatrices...
Citer : Posté le 13/11/2019 20:42 | #
Astuce fort intéressante, merci.
Citer : Posté le 13/11/2019 20:43 | #
@Lephenixnoir: il fonctionne sur g90 ?
Comment on utilise la fonction open() de MircoPython qui agit sur les fichiers ?
-Planétarium 2
Citer : Posté le 13/11/2019 20:50 | #
La fonction open() de MicroPython s'utilise eh bien... comme le demande le standard Python : https://docs.python.org/3/library/functions.html#open
Citer : Posté le 13/11/2019 21:10 | #
Oui mais on obtient un objet de type None.. je ne parvient pas a utiliser ce que renvoie cette fonction..
-Planétarium 2
Citer : Posté le 13/11/2019 21:13 | #
Tu obtiens None si l'ouverture du fichier échoue. open("", "") n'est pas un appel intéressant, ici il sert à juste à déterminer si la fonction est disponible.
Si tu veux faire quelque chose d'utile, essaye quelque chose de ce genre :
fp.write("Tiger, tiger burning bright, in the forests of the night.")
fp.write("What immortal hand or eye could frame thy fearful symmetry?")
Citer : Posté le 13/11/2019 21:15 | #
Je tiens a preciser que je fais ça sur G90 actuellement.. ça ne fonctionne pas sur g90..
-Planétarium 2
Citer : Posté le 13/11/2019 21:16 | #
Bien sûr que ça ne marche pas sur G90, on se tue à le dire et ça ne marchera possiblement jamais correctement selon les limitations du système de fichiers. x)
Citer : Posté le 13/11/2019 21:18 | #
Ben du coup oui je me doutais, je sais que vous le dites souvent j'en suis témoin (je vois pas pk je m'acharne alors sur ce truc ).
Mais dans ce cas que fait la fonction open() si on ne peut pas l'utiliser
-Planétarium 2
Citer : Posté le 13/11/2019 21:46 | #
Justement, le Python de la 90+e est le seul à ne pas renvoyer d'erreur avec ces paramètres, de toute façon elle renvoie None
C'est le principe de la vérification
Ajouté le 14/11/2019 à 07:36 :
Ah oui, pas idiot
Ajouté le 13/11/2019 à 20:23 :
Comment tu utilises la commande open() sur le MicroPython ? Je connais le truc en python sur l'ordi mais ça ne fonctionne pas..
Ben du coup oui je me doutais, je sais que vous le dites souvent j'en suis témoin (je vois pas pk je m'acharne alors sur ce truc ).
Mais dans ce cas que fait la fonction open() si on ne peut pas l'utiliser
Explication plus détaillée : open renvoie, sur Casio, un objet None à partir du moment où ses paramètres sont deux chaînes.
C'est le seul à faire ça, deux chaînes vides renvoient une erreur lorsque exécuté sur un ordinateur (ou n'importe quel interpréteur supportant réellement open).
Citer : Posté le 14/11/2019 07:44 | #
D'accord, du coup on se demande bien ce qu'elle fait la cette pseudo fonction open()
-Planétarium 2
Citer : Posté le 14/11/2019 07:49 | #
D'accord, du coup on se demande bien ce qu'elle fait la cette pseudo fonction open()
Je viens de l'expliquer -_-"
Pour faire simple, open("", "") renvoie une erreur sur toutes les plateformes excepté le Python de Casio.
Citer : Posté le 14/11/2019 07:52 | #
Oui nan mais ça j'avais compris . Du coup si on suit à la lettre ce que tu dis, Casio aurait mis la fonction uniquement pour permettre de détecter le support d'execution ?
-Planétarium 2
Citer : Posté le 14/11/2019 07:55 | #
Oui nan mais ça j'avais compris . Du coup si on suit à la lettre ce que tu dis, Casio aurait mis la fonction uniquement pour permettre de détecter le support d'execution ?
Non, pas du tout, c'est juste une exploitation de leur système de fichier non implémenté.