Le mot "None" apparait sans raison

Résolu
Aasp78 -  
 Aasp78 -

Bonjour,

Je suis débutant et lors de mon apprentissage, à la fin d'une fonction, le mot "None" est apparu alors qu'il n'y a pas lieu d'être. Je ne comprends pas pourquoi il est là. 

Pourrait-on m'expliquer ce qu'est ce "None" est aussi pourquoi il est apparu ?

Merci d'avance

2 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Tu devrais afficher le code ici, on y verrait plus clair ...

    0
    1. Aasp78
       
      def afficher_infos_perso(nom, age):
          print("vous vous appelez " + nom + " et vous avez " + str(age) + " ans !")
          print("l'an prochain vous aurez " + str(age + 1) + " ans !")
      
          if age == 17:
              print("Vous êtes presque majeur")
          elif age <= 10:
              print("Vous êtes enfant")
          elif age == 18:
              print("Tout juste majeur : Félicitations")
          elif age >= 60:
              print("Vous êtes senior")
          elif age >= 18:
              print("Vous êtes majeur")
          else:
              print("Vous êtes mineur")
      
      def demander_nom():
          nom_reponse = ""
      
          while nom_reponse == "":
              nom_reponse = input("Quelle est votre nom ?")
      
              if nom_reponse == "":
                  print("Vous devez écrire un nom, veuillez ressayer")
          return nom_reponse
      
      def demander_age(nom_personne):
          age_int = 0
      
          while age_int == 0:
              age_str = input(nom_personne + " qu'elle est votre age ?")
      
              try:
                  age_int = int(age_str)
      
              except:
                  print("ERREUR, vous devez rentrer un chiffre, veuillez rééssayer :")
          return age_int
      
      nom1 = demander_nom()
      nom2 = demander_nom()
      age1 = demander_age(nom1)
      age2 = demander_age(nom2)
      print(afficher_infos_perso(nom1, age1))
      print(afficher_infos_perso(nom2, age2))
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Aasp78
         

        Explique maintenant ce qu'il faut répondre à ton programme pour obtenir "None".

        0
      2. Aasp78 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Je ne crois pas avoir compris, je n’ai pas demandé à ce que le none apparaît donc je ne comprend pas pk il apparaît 

        0
      3. gluto > Aasp78
         

        Bonsoir, il apparaît, car une fonction retourne None par défaut.

        Alors, soit tu retournes une chaîne dans ta fonction afficher_infos_perso, soit tu enlèves les aux lignes suivantes :

        print(afficher_infos_perso(nom1, age1))
        print(afficher_infos_perso(nom2, age2))
        1
      4. Aasp78 > gluto
         

        Merci beaucoup pour cette explications claires et précises 

        0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    Un exemple d'apparition spontanée de None:

    def bonjour():
        bonjour=123
    print(bonjour())
    0