Pourquoi main() empêche-t-il les calculs de s'effectuer ?
Résolu
getudir78
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
getudir78 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
getudir78 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en Python : J'ai téléchargé Anaconda 3 et Pycharm, que j'ai configurés tant bien que mal.
Je ne suis pas très à l'aise.
Le script avec ce main ci-après s'exécute sans erreur mais n'affiche aucun résultat.
Le même script sans main calcule et affiche les résultats sans problème.
Pouvez-vous m'aider à en comprendre les raisons ?
Par avance, merci
Je débute en Python : J'ai téléchargé Anaconda 3 et Pycharm, que j'ai configurés tant bien que mal.
Je ne suis pas très à l'aise.
Le script avec ce main ci-après s'exécute sans erreur mais n'affiche aucun résultat.
# -*- coding: utf-8 -*- import numpy as np import scipy as sp if __name__== "__main__": def main(): x = 4 + 3 # Python de base print('résultat addition = ' + str(int(x))) print('pi de numpy = ' + str(np.pi)) # import de numpy print('cos(pi) de numpy = ' + str(np.cos(np.pi))) # import de scipy print("pi/2 de scipy = %s" % str(sp.pi/2.)) zero = 0 print("cos(pi/2) de scipy : le %d mathématique devient %s" % (zero , str(sp.cos(np.pi/2.))))
Le même script sans main calcule et affiche les résultats sans problème.
# -*- coding: utf-8 -*- import numpy as np import scipy as sp x = 4 + 3 # Python de base print("a") print("résultat addition = {}".format(x)) print("pi de numpy = {}".format(np.pi)) print("z") # import de numpy print("cos(pi) de numpy = {} ".format(str(np.cos(np.pi)))) # import de scipy print("pi/2 de scipy = %s" % (str(sp.pi/2.))) zero = 0 print("cos(pi/2) de scipy : le %d mathématique devient %s" % (zero , str(sp.cos(np.pi/2.))))
Pouvez-vous m'aider à en comprendre les raisons ?
Par avance, merci
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Pourquoi main() empêche-t-il les calculs de s'effectuer ?
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Nous limitons la fréquence de certaines actions que vous pouvez effectuer sur instagram ✓ - Forum Instagram
- Scan ligne de la main gratuit - Télécharger - Photo & Graphisme
- Delai paiement le bon coin remise en main propre - Forum Vos droits sur internet
- Une erreur inattendue vous empeche de supprimer le fichier ✓ - Forum Windows
2 réponses
'lut,
même sans l'indentation (que le forum retire car tu n'as pas utilisé les balises de code), le problème est assez évident:
tu fais bien le
3 solutions:
même sans l'indentation (que le forum retire car tu n'as pas utilisé les balises de code), le problème est assez évident:
tu fais bien le
if __name__== "__main__":typique mais tu définis une fonction
maindedans sans jamais l'appeler.
mainn'a aucune signification particulière en Python contrairement au C, C++ ou Java.
3 solutions:
- retirer la fonction main intégralement et mettre son code dans le corps du
if __name__== "__main__":
- laisser la fonction où elle est mais l’appeler après (peu recommandé, mauvais style):
if __name__== "__main__": def main(): ... main()
- sortir la fonction du
if
, la mettre avant, et l'appeler dans leif
(préférable)
def main(): ... if __name__== "__main__": main()
J'ai implanté la solution 3 et effectivement, le problème est résolu : les calculs s'effectuent et s'affichent. Cela m'encourage à poursuivre mes premiers pas en Python.
Il faudra que je m'interesse "aux balises" et que comprenne plus finement comment travaille main en Python.
Merci aussi au site "commentcamarche.net", d'avoir mis en place ce forum .