Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » CASIO MicroPython: Savoir si le programme s’exécute sur un ordinateur ou sur la calto
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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+


KikoodxHors ligneMembrePoints: 1844 Défis: 11 Message

Citer : Posté le 13/11/2019 19:42 | #


Salut !
Encore mieux :
try:
  open("","")
  print("Casio")
except:
  print("any other Python")

DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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..
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 17167 Défis: 142 Message

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...
CritorEn ligneAdministrateurPoints: 1635 Défis: 18 Message

Citer : Posté le 13/11/2019 20:42 | #


Astuce fort intéressante, merci.
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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 ?
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 17167 Défis: 142 Message

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
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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..
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 17167 Défis: 142 Message

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 :

with open("blake.txt", "w+") as fp:
  fp.write("Tiger, tiger burning bright, in the forests of the night.")
  fp.write("What immortal hand or eye could frame thy fearful symmetry?")
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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..
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 17167 Défis: 142 Message

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)
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
KikoodxHors ligneMembrePoints: 1844 Défis: 11 Message

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 :
Disperseur a écrit :
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..

Disperseur a écrit :
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).
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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()
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
KikoodxHors ligneMembrePoints: 1844 Défis: 11 Message

Citer : Posté le 14/11/2019 07:49 | #


Disperseur a écrit :
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.
DisperseurHors ligneMembrePoints: 1716 Défis: 1 Message

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 ?
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
KikoodxHors ligneMembrePoints: 1844 Défis: 11 Message

Citer : Posté le 14/11/2019 07:55 | #


Disperseur a écrit :
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é.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 120 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd