Le mot "None" apparait sans raison

Résolu/Fermé
Aasp78 - Modifié le 1 sept. 2022 à 15:27
 Aasp78 - 31 août 2022 à 20:17

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

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
29 août 2022 à 19:19

Bonjour,

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

0
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
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Aasp78
31 août 2022 à 19:36

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

0
Aasp78 > yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
31 août 2022 à 19:43

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

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

Merci beaucoup pour cette explications claires et précises 

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
29 août 2022 à 20:23

Un exemple d'apparition spontanée de None:

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