Résolue

Comprendre l'utilisation des retours (return) dans les fonctions

# Booléens # Python

Merci pour la correction, je dois avouer que mon cerveau se fait de noeuds en essayant de comprendre votre version, notamment return True ou return False, je n'arrive pas à comprendre comment il fonctionne et ce qu'ils font dans le programme, ça sera peut-être plus clair lorsque les fonctions seront abordées.
Le fait de passer les variables comme des paramètres en entrée me semble assez clair, mais c'est les sorties de chaque fonction que je ne comprends pas; les return x, y sont clairs, on renvoie le résultat de nos variables, mais le True ou False, je ne comprends pas, le if détermine la condition, j'ai alors un premier cas considéré comme vrai ce qui déclenche une action, puis je passe un return True, et enfin un deuxième cas considéré comme faux qui déclenche une autre action ou je passe un return False à la fin, ça me semble logique de renvoyer True pour le cas vrai, et False pour le cas faux, mais comment j'exploite ensuite cela plus tard dans le reste du programme, là c'est le trou noir absolu.

Gabriel Trouvé

Mentor

Salut Franck,

Question super intéressante !

j'avais des exemples sympa avec une application Django en POO, mais j'ai peur de faire trop compliqué. Alors je fais faire quelque chose de très simple et tu me dis si ça te va.

def ma_vérification(a, b):
    """
    Vérifie si a est supérieur à b.

    :param a: Premier nombre
    :param b: Deuxième nombre
    :return: True si a > b, sinon False
    """
    return a > b


a = 10
b = 5
if ma_vérification(a, b):
    print(f"{a} est supérieur à {b}.")
else:
    print(f"{a} n'est pas supérieur à {b}.")

Ici ma fonction returne True ou False selon les nombres a et b on est d'accord ?

Donc selon ce que retourne ma fonction, je vais conditionnellement exécuter une action.

Et on peut très bien assigner le retour de fonction à une variable :

ma_variable = ma_vérification(20, 15)
print(f"Résultat de la vérification : {ma_variable}")
if ma_variable:
    print("La condition est vraie.")

Alors imagine, un exemple un peu plus complexe, où tu veux vérifier si une réclamation est possible :

from datetime import datetime


def claim_verification(status, date_achat):
    """
    Vérifie l'état de la réclamation et la date d'achat.

    :param status: État de la réclamation
    :param date_achat: Date d'achat au format 'YYYY-MM-DD'
    :return: True si la réclamation est valide, sinon False
    """
    date_limite = datetime(2023, 1, 1)
    date_achat = datetime.strptime(date_achat, '%Y-%m-%d')

    if status == "validée" and date_achat < date_limite:
        return True
    return False

is_claim_valid = claim_verification("validée", "2022-12-31")
if is_claim_valid:
    print("La réclamation est valide.")
else:
    print("La réclamation n'est pas valide.")

Ici selon le statut de la commande et de la date d'achat, il sera possible de passer une réclamation ... ou pas !

Est-ce que ça va ?

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.