Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit problème avec la fonction return

    16 novembre 2017 à 13:43:08

    Bonjour,

    Je ne comprends pas pq mon code ne fonctionne pas ?

    def answer():
    	""" 
    	Goal = to have the following pattern : "3, Kal. July -> 3 days before kalendes of july"
    	"""
    	number = int(input("Please insert your number : "))
    	feast = str.capitalize(input("Please insert your feast : "))
    	month = str.capitalize(input("Please insert your month : "))
    	
    	return number 
    	return feast 
    	return month 
    
    answer()
    
    print(number, feast, month)


    Le messag d'erreur m'indique que "number" n'a pas de valeur. Or, je suis censé le renvoyer avec la fonction input(), non ? Je pense que c'est la fonction return qui cloche. J'ai loupé une étape importante avec cette dernière ?

    Désolé pour une question aussi banale, mais je ne comprends vraiment pas pourquoi ça coince.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      16 novembre 2017 à 14:19:08

      C'est pas comme ça qu'on renvoie plusieurs valeurs :lol::

      def answer():
          """
          Goal = to have the following pattern : "3, Kal. July -> 3 days before kalendes of july"
          """
          number = int(input("Please insert your number : "))
          feast = str.capitalize(input("Please insert your feast : "))
          month = str.capitalize(input("Please insert your month : "))
           
          return number, feast, month


      Ensuite, les variables d'une fonction n'existe qu'à l'intérieur de celle-ci. Autrement dit, la variable number (par ex.) n'existe pas à l'extérieur. Par contre, grâce à return tu peux récupérer sa valeur dans une nouvelle variable:

      a, b, c = answer()
      
      


      Ici, a va pointer vers la valeur qu'avait number, b vers celle de feast et c vers celle de month. Après libre à toi de donner les même noms lors de la récupération (en gardant bien à l'esprit que le number de récupération est différent du number à l'intérieur de la fonction):

      number, feast, month = answer()
      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        16 novembre 2017 à 17:55:25

        Au départ, j'avais en effet écrit "return a, b, c". Puis comme ça marchait pas, j'ai essayé d'autres trucs. 

        Merci beaucoup ! J'ai bien compris la logique derrière (pas très compliqué en même temps...). Je me sens vraiment bête haha

        • Partager sur Facebook
        • Partager sur Twitter

        Petit problème avec la fonction return

        × 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