Echanges autour d'EduPython.
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour, j'ai terminé un script en python mais à la fin de mon script j'ai utilisé le .format() mais cela me ressort quelque chose de bizarre.
voici mon script :
def total_point (reponse): point=list(reponse.values()) nb_point=len(point)*3 return nb_point def total_QCM(reponses_eleve,reponses): note=0 for cle, valeur in reponses.items(): for cle1, valeur1 in reponses_eleve.items(): if cle==cle1: if valeur==valeur1: note+=3 else: note+=2 return note print(total_QCM({"Q1":"b","Q2":"a","Q3":"d","Q5":"a"},{"Q1":"c","Q2":"a","Q3":"d","Q4":"c","Q5":"b"})) print(total_point({"Q1":"c","Q2":"a","Q3":"d","Q4":"c","Q5":"b"})) print("La note de l'élève est de {} sur {}".format(total_QCM,total_point))
et voici le console :
La note de l'élève est de <function total_QCM at 0x0000011D1358B0A0> sur <function total_point at 0x0000011D1358B010>
Enfaite j'ai envie que avec le dernier print() que les {} prennent les valeurs des fonctions def. Est-ce possible ?
Merci.
Hors ligne
Bonsoir,
Ce n'est pas à cause du format le problème, mais parce que vous voulez afficher une fonction (vous confondez l'objet fonction avec ce qu'elle renvoie). On peut faire ainsi :
def total_point (reponse): point=list(reponse.values()) nb_point=len(point)*3 return nb_point def total_QCM(reponses_eleve,reponses): note=0 for cle, valeur in reponses.items(): for cle1, valeur1 in reponses_eleve.items(): if cle==cle1: if valeur==valeur1: note+=3 else: note+=2 return note t1 = total_QCM({"Q1":"b","Q2":"a","Q3":"d","Q5":"a"},{"Q1":"c","Q2":"a","Q3":"d","Q4":"c","Q5":"b"}) t2 = total_point({"Q1":"c","Q2":"a","Q3":"d","Q4":"c","Q5":"b"}) print("La note de l'élève est de {} sur {}".format(t1, t2))
Ou encore, en utilisant les F-Strings :
print(f"La note de l'élève est de {t1} sur {t2}")
Bonne soirée,
Vincent
Hors ligne
Pages : 1