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