projet
unknown
plain_text
2 years ago
4.4 kB
6
Indexable
import qcm import random # ------------------------------------------------------------------ # FONCTIONS UTILITAIRES # ------------------------------------------------------------------ def maj(c1, c2): # Vérifie si deux mots sont les mêmes en ignorant les majuscules return c1.upper() == c2.upper() def point_calculator(good_ans, bad_ans): # Calcule le nombre de points qu'il faut rétirer en cas de cotation juste point = good_ans/bad_ans return point # ----------------------------------------------------------------- # INTRODUCTION DU QCM # ----------------------------------------------------------------- print("Bienvenue dans notre cher QCM !") filename = input("Veuillez choisir votre QCM \n") # demande à l'utilisateur de choisir son QCM mode = input("Veuillez choisir un mode (comparatif ou évaluatif) \n") if maj(mode, "évaluatif"): difficulty = input("Veuillez choisir un niveau de cotation (sympa, sévère et juste) \n") while not maj(difficulty, "sympa") and not maj(difficulty, "sévère") and not maj(difficulty, "juste"): #teste si l'utilisateur a bien introduit une des trois options print("Veuillez entrer une difficulté correcte !") difficulty = input("Veuillez choisir un niveau de cotation (sympa, sévère et juste) \n") # -------------------------------------------------------------- # FONCTION PRINCIPALE # -------------------------------------------------------------- def launch_qcm(filename, mode): # Fonction qui permet de lancer le qcm avec le nom du fichier et la difficultée en entrée questions = qcm.build_questionnaire(filename) ptsev = 0 ptjuste = 0 ptsymp = 0 print("Voici le questionnaire...") print("Veuillez entrer le numéro de la réponse que vous pensez correct.") for q in range(len(questions)): print("\tQuestion " + str(q+1) + ": \"" + questions[q][0] + "\"") res = random.sample(range(0,len(questions[q][1])), len(questions[q][1])) correct = [] ans_true = 0 for r in range (len(questions[q][1])): print("\t\tReponses " + str(r+1) + ":") print("\t\t\tMessage: \"" + questions[q][1][res[r]][0] + "\"") if questions[q][1][res[r]][1] is True: correct.append(str(r+1)) ans_true += 1 continuer = True while continuer is True: try: rep = input("Veuillez choisir une des réponses si dessus \n").split(" ") c = 0 for j in rep: bon = False for i in correct: if j == i: print(j + " est une réponse correcte.") print(str(questions[q][1][res[int(j)-1]][2])) bon = True c += 1 if not bon: print(str(questions[q][1][res[int(j)-1]][2])) print(j + " est une mauvaise réponse.") ptsev -= 1 ptjuste -= point_calculator(ans_true,len(questions[q][1])-ans_true) if c > 0: ptsymp += 1 ptsev += 1 ptjuste += 1 continuer = False except: print("Veuillez rentrer un des numéros des réponses ci-dessus.") if maj(mode, "évaluatif"): if maj(difficulty, "sympa"): print("Votre score est de " + str(ptsymp) + "/" + str(len(questions))) elif maj(difficulty, "juste"): print("Votre score est de " + str(ptjuste) + "/" + str(len(questions))) else: print("Votre score est de " + str(ptsev) + "/" + str(len(questions))) else: print("Votre score sympa est de " + str(ptsymp) + "/" + str(len(questions))) print("Votre score sévère est de " + str(ptsev) + "/" + str(len(questions))) print("Votre score juste est de " + str(ptjuste) + "/" + str(len(questions))) # Gestion d'erreur si l'utilisateur choisi un fichier non correct try: launch_qcm(filename, mode) continuer = False except: print("Veuillez choisir un nom de QCM correct")
Editor is loading...