Posté le 18/02/2021 10:34
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 204 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
Citer : Posté le 18/02/2021 10:41 | #
Bonjour, c'est parce que dans le shell Python, le programme (qui disons s'appelle x.py) est exécuté avec from x import *. Il n'est pas lancé directement, mais est importé comme un module.
La différence, c'est que du coup __name__ ne vaut pas "__main__" (ce qui est vrai quand on tape directement dans le shell) mais "x" (le nom du module).
Tu peux le vérifier en insérant un print(__name__) juste avant le if.
Tu as plusieurs options pour résoudre ce problème, dont :
• Ne pas utiliser if __name__ == "__main__", ce qui exécutera tes trois lignes finales même si le programme est importé comme un module
• Placer les trois lignes de test dans une fonction et appeler cette fonction à la main en tapant son nom dans le shell après avoir tapé sur Run
Citer : Posté le 18/02/2021 10:42 | #
Hello !
Je ne sais pas trop comment fonctionne l'interpréteur Python de la G90+E, mais il est possible que la métavariable __name__ ne soit pas initialisée.
J'ai pas de calto sous la main, mais tu peux tester dans un programme vierge en faisant un print(__name__)
Si c'est effectivement le cas, tu n'aura pas le choix que de mettre ton code direct à la racine :
r = 0
nbres = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
n = str(n)
for i in range(len(n)):
assert nbres.index(n[len(n)-1-i].upper()) < base, "Nombre avec chiffre invalide"
r += nbres.index(n[len(n)-1-i].upper())*(base**i)
return r
n=input('n=')
b=eval(input('base='))
print(conv(n, b), 'base 10')
brba11 Invité
Citer : Posté le 18/02/2021 10:48 | #
D'accord merci à vous deux, je vais faire l'option d'une petite fonction car il s'agit d'un sous programme, et je ne veux donc pas que les trois lignes s'exécutent pour rien...
Ce n'est donc qu'une fonction de test...
Bonne journée à vous et encore merci!