IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Transformer un code en fonction


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut Transformer un code en fonction
    Bonjour,
    je vous préviens c'est vraiment une question de débutant, mais bon voilà,
    j'ai fait le code suivant qui permet de chercher un mot au hasard dans une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import random
     
    liste_mot = ["jouer","gagner","perdre"]
     
    mot_hasard = random.choice(liste_mot)
     
    print(mot_hasard)
    mais au fait j'ai tricher car on me demande de faire une fonction.

    Donc j'ai fait ça (mais je ne vois rien qui s'affiche à l'écran alors que je voudrais afficher la variable : mot_hasard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    def choix_mot(L):
        mot_hasard = random.choice(L)
        return mot_hasard
    la fonction ne plante pas, mais elle n'affiche rien...

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Citation Envoyé par sam01 Voir le message
    ...
    Salut,
    Si tu ne print pas ce que ta fonction te retourne c'est bien normal de ne rien avoir à l'écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import random
     
    liste_mot = ["jouer","gagner","perdre"]
     
    def choix_mot():
        mot_hasard = random.choice(liste_mot)
        return mot_hasard
    print(choix_mot())
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Non seulement, tu ne demandes aucun affichage, mais en plus, tu n'appelles pas la fonction.
    Elle est là, tranquille, en attendant qu'on la sollicite
    Pas d'aide par mp.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sam01 Voir le message
    au fait j'ai tricher car on me demande de faire une fonction.
    Si vous partez de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import random
     
    liste_mot = ["jouer","gagner","perdre"]
     
    mot_hasard = random.choice(liste_mot)
     
    print(mot_hasard)
    en faire une fonction, c'est juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def f():
        import random
     
        liste_mot = ["jouer","gagner","perdre"]
     
        mot_hasard = random.choice(liste_mot)
     
        print(mot_hasard)
     
    f()
    après vous pouvez vouloir cacher dans la fonction juste l'appel à random.choice... mais dans ce cas, le code devra ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import random
     
    liste_mot = ["jouer","gagner","perdre"]
     
    mot_hasard = f(liste_mot)
     
    print(mot_hasard)
    Ce qui donne une idée de comment sera utilisée la fonction et de l'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def f(L):
         return random.choice(L)
    Et essayer de comprendre qu'une fonction c'est une sorte de service qu'on rend à l'appelant (de la fonction) et les lignes de codes exécutées lorsqu'on appelle la fonction.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Citation Envoyé par devilsnake88 Voir le message
    Merci mais le print n'est pas dans la fonction ...

    Citation Envoyé par wiztricks Voir le message
    On est d'accord qu'il n'y a pas de.print dans ta dernière fonction. Donc ce n'est pas le print le problème

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sam01 Voir le message
    On est d'accord qu'il n'y a pas de.print dans ta dernière fonction. Donc ce n'est pas le print le problème
    Il y a bien un "print" quelque part (pour afficher la variable à laquelle a été assigné le retour de la fonction). La gymnastique de ce côté est la même: appeler random.choice ou une fonction qui...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Salut. J'ai commencé il y a plus de 14 mois mais malheureusement je 'ai pas pu poursuivre mon apprentissage pour diverses raisons. C'est comme si tu me disais que j'ai pris un cours de conduite il y a 14 mois et que aujourd'hui je devrais savoir conduire.
    Il y a une réelle différence entre commencer et pratiquer.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 692
    Points : 30 989
    Points
    30 989
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par sam01 Voir le message
    Merci mais le print n'est pas dans la fonction ...
    Soit tu mets le print dans la fonction et elle affichera alors son résultat à l'écran chaque fois qu'on l'appellera (ce qui ne sera peut-être pas du goût de tous ceux qui l'utiliseront), soit tu ne mets pas de print dans la fonction et si tu veux la voir s'exécuter à l'écran, tu devras alors rajouter ensuite spécifiquement un print de ce qu'elle a retourné.
    C'est le principe de la factorisation de code en fonction. Si un code doit faire ABCABCABCD soit on écrit une fonction qui fait A et il faudra ensuite rajouter "BCBCBCD" à chaque appel, soit on écrit une fonction qui fait "AB" et on n'a alors plus qu'à rajouter "CCCD", soit on écrit une fonction qui fait "ABC" et il ne reste plus qu'à rajouter "D" au seul moment où on a besoin de "ABCD". Mais si tu écris une fonction qui fait "ABCD" alors tu ne pourras plus l'utiliser dans les cas où tu ne veux que "ABC".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sam01 Voir le message
    C'est comme si tu me disais que j'ai pris un cours de conduite il y a 14 mois et que aujourd'hui je devrais savoir conduire.
    Il y a une réelle différence entre commencer et pratiquer.
    Ouvrez le tuto. que vous aviez à l'époque et relisez les chapitres que vous aviez travaillé...

    Si vous voulez apprendre, il faut vous trouver des exercices à faire pour progresser... Ce qui suppose passer du temps à vous battre avec votre ordinateur et à relire ce que raconte votre tuto. ou comprendre la solution d'un exercice.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    OK

Discussions similaires

  1. Transformer ce code en fonction
    Par okoweb dans le forum Langage
    Réponses: 9
    Dernier message: 18/10/2010, 09h32
  2. [XML] Transformer un code XML en PHP
    Par leila2006 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/05/2006, 18h51
  3. [LG] Transformer un code ascii en un autre
    Par JoseF dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2005, 11h47
  4. [PHP-JS] pasteHTML qui transforme le code
    Par jibouze dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2005, 17h36
  5. [] transformer un code ean en isbn
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/10/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo