Partage
  • Partager sur Facebook
  • Partager sur Twitter

Switch (équivalent) et return de None

Sujet résolu
    26 novembre 2019 à 20:24:00

    Bonjour à tous,

    J'ai rencontré un petit détail qui me tracasse en développant le pendu du cours de Python.

    J'ai créé une fonction équivalente à un switch, et celle-ci me renvoie toujours un "None" dans la console, quelque soit l'option choisie.

    Le "None" est affiché à la suite du traitement de la dite option.

    Tout le reste programme fonctionne à merveille et ce "None" n'est pas bloquant.

    Sauriez-vous pourquoi ?

    Voici le code de mon switch (je peux bien évidement fournir la totalité du code, si nécessaire).

    def quitter():
        global fin
        fin = True
    
    
    
    def switch(choix):
        switcher = {
            "1": regles,
            "2": afficher_scores,
            "3": creation_compte,
            "4": suppression_scores,
            "5": jouer,
            "6": quitter,
        }
        function = switcher.get(choix, lambda: "Choix invalide.\n")
        print (function()) # Appelle de la fonction choisie
    
    while fin != True :   
        # Création et affichage du menu d'acceuil.
        print ("Bonjour et bienvenue dans le jeu de pendu !\n\n")
        print ("Tapez 1 :\t Pour consultez les règles du jeu.\n")
        print ("Tapez 2 :\t Pour consultez les comptes et les scores existants.\n")
        print ("Tapez 3 :\t Pour créer ou identifier votre compte.\n")
        print ("Tapez 4 :\t Pour supprimer la totalité des comptes.\n")
        print ("Tapez 5 :\t Pour jouer.\n")
        print ("Tapez 6 :\t Pour quitter.\n")
        choix = input("")
    
        switch(choix)
    

    Et un screenshot de la console :

    Affichage "None" de la console
    Merci de votre attention et bonne journée,

    Florian

    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2019 à 20:32:50

      Print affiche la valeur de retour de la fonction exécutée, si aucun return explicite n'est indiqué, la fonction renvoie None.

      Enlève le print ligne 17 et ça ne s'affichera plus.

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        27 novembre 2019 à 9:11:18

        Bonjour,

        Je suis navré de ne pas avoir pu penser à ça moi-même ... !

        Maintenant je saurais !

        Merci et bonne journée,

        • Partager sur Facebook
        • Partager sur Twitter

        Switch (équivalent) et return de None

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown