Forum Programmation.python fonctions

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-2
13
juin
2015

Bonjour ,
je suis un peu perdu sous python , quand est ce qu'on met les deux points : exactement ? après la déclaration de fonctions , après un for , while ? quels sont les cas ou je devrais les mettre ?

2 question :
quand faudra t-il mettre if _name_ == "main":
c'est dans une instruction qui sert à quoi ?

merci

  • # lire le cours ?

    Posté par  . Évalué à 5.

    c'est pas expliquer dans le cours/le manuel de python ? les exemples ?

    parce que si tu viens à chaque fois que tu dois mettre un :, un ;, une ou plusieurs tabulations…

    quelques lectures :
    - https://www.python.org/about/gettingstarted/
    - https://wiki.python.org/moin/BeginnersGuide/Programmers

    bon week end ;)

    • [^] # Re: lire le cours ?

      Posté par  (site web personnel) . Évalué à 1.

      En effet ce sont des trucs hyper basiques :)

      Pour l'instruction :

      if __name__ == '__main__':

      (attention aux caractères "_", il y en a un nombre bien précis, ce n'est pas pour rien)

      Ça dit que ce qui est ensuite n'est exécuté que quand on appelle directement ce fichier, pas quand on l'importe comme module au sein d'un autre programme.

      • [^] # Re: lire le cours ?

        Posté par  (site web personnel) . Évalué à 3.

        Complément à

        c'est dans une instruction qui sert à quoi ?

        Il y a deux utilisations principales:

        1. appel de la fonction "main" du module lorsque celui-ci est utilisé en module principal — par exemple un module qui fournit des fonctions de traitement de fichier utilisables par d'autres modules, et qui peut être appelé directement en lui donnant des noms de fichiers à traiter.

        2. code d'auto-test du module, pour des modules qui n'ont a priori aucune raison d'être module principal, on utilise cette construction afin de pouvoir regrouper le code de test dans le module et l'exécuter en utilisant le module comme module principal.

        Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # code ./?

    Posté par  . Évalué à 1.

    j'ai trouvé un code de ce type sur internet à ce propos :

    file one.py

    def func():
    print("func() in one.py")

    print("top-level in one.py")

    if name == "main":
    print("one.py is being run directly")
    else:
    print("one.py is being imported into another module")

    quand on invoque python one.py , pourquoi on a une execution de ce type :
    top-level in one.py
    one.py is being run directly

    Pourquoi on zappe la fonction "func" et on n'a pas le "print("func() in one.py")" à l'execution .
    Merci

    • [^] # Re: code ./?

      Posté par  (site web personnel) . Évalué à 3.

      Hum, ça serait bien de suivre un poly d'initiation à Python (pub gratuite)…

      Lorsque tu définis une fonction, c'est comme quand tu écrits une recette de cuisine, tu indiques ce qu'il faudrait faire pour arriver au plat cuisiné… mais tu ne le fais pas.

      C'est quand tu appelles la fonction que son code est exécuté (la recette est suivie, on mélange les ingrédients, etc) et que tu produits un résultat.

      Dans ton fichier one.py, il n'y a pas d'appel à la fonction func(), donc elle n'est jamais exécutée, donc il n'y a pas d'affichage de func() in one.py.

      Note: pour mettre du code dans un post, regarde la dernière ligne de l'aide-mémoire qui est affiché sous le bloc de rédaction.

      Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # oui mais ...

    Posté par  . Évalué à 1.

    merci pour ton commentaire , mais parcontre on dit que pyhon est sequentiel donc normalement il doit executer la focntion func non ?
    ou sinon dans les cas des fonctions il faut qu'elle ssoit dabord appelé par un objet de la classe ?
    merci

    • [^] # Re: oui mais ...

      Posté par  (site web personnel) . Évalué à 3.

      Le def … n'est pas un appel à la fonction, c'est sa définition.

      Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

    • [^] # Re: oui mais ...

      Posté par  (site web personnel) . Évalué à 2.

      Quand tu écris ton script, il n'est pas exécuté tout de suite. Il faut que tu le lance (dans un terminal, avec ton éditeur, …) pour voir les print s'effectuer.

      Tu peux voir def ... comme l'écriture d'un sous-script. La définition de cette fonction est faite tout de suite (python est séquentiel), mais il faut un appel explicite pour que la fonction soit exécutée.

      Matthieu Gautier|irc:starmad

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.