Bonjour hbouia,
C'est bien un problème de version, mon camarade avec python 2.7 à réussi à faire tourner le programme tandis que moi avec ma version 3.7.1 non.
J'ai rajouté les parenthèses mais toujours rien. J'envoie le programme parce je ne sais pas si les "print" (soulignés) doivent avoir des parenthèses. Je joints aussi le message erreurs.
Programme Python :
# Fonction donnant une permutation aléatoire d'une séquence donnée
from random import shuffle
# Mise en données sous forme d'un dictionnaire
# Clé : Q (question )
# Attributs : Liste de réponses dont seulement une est correcte (RJ)
# Exemples :
quiz = {
"Qui est la première femme à avoir traversé les Etats-Unis à moto?":["Bessie Stringfield","Bessie Stringfield","Amelia Earhart","Anne-France Dautheville"]
,"Quel acteur a joué dans le film La Grande Evasion?":["Steve Mcqueen","Peter Fonda","Denis Hopper","Steve Mcqueen"]
,"Je suis une japonaise, je suis la première à avoir été importée aux Etats-Unis. Qui suis-je?":["Honda","Yamaha","Honda","Kawasaki"]
,"Sur quelle moto le Che a-t-il traversé l'Amérique de Sud?":["Norton","Une Triumph","Norton","Une Harley-Davidson"]
,"Qui est la première femme française à avoir fait le tour du monde à moto?":["Anne-France Dautheville","Livia Lancelot","Camille du Gast","Anne-France Dautheville"]
,"En quelle année a eu lieu la première course de Moto GP?":["1949","1946","1954","1949"]
}
# Nombre de questions du quiz
nQ = len(quiz)
# Liste d'une permutation aléatoire des questions
questions=quiz.keys() # Liste des questions du quiz
shuffle(questions) # Liste d'une permutation aléatoire des questions
# Nombre de questions proposées pour le test (inférieur ou égal à nQ)
nb_questions = 4
nb_questions = min(nb_questions,nQ) # limite le nombre de questions à nQ
# Score (s'incrémente de 1 à chaque bonne réponse)
score=0 # Initialisation du score à zéro avant le début du quiz
# Début du quiz
for q in range(nb_questions):
question = questions[q]
reponses = quiz[question][:] # Copie de laiste des réponses potentielles
shuffle(reponses) # mélange des réponses potentielles
print
print(u'Choisissez une et une seule réponse à la question : ',question)
for i,reponse in enumerate(reponses):
print(i,' : ',reponse)
print
choix = int(raw_input('Saisir votre réponse : '))
print
if reponses[choix] == quiz[question][0]:
score+=1
print('Bravo ! Votre score est de ',score,' / ',nb_questions)
else:
print(u'Mauvaise réponse ! Votre score est de ',score,' / ',nb_questions)
print
print('Vous avez eu un score de ',score,' / ',nb_questions)
Message erreur :
Traceback (most recent call last):
File "C:\Users\frederic.coulpied\Desktop\quiz_exemple_v0.py", line 23, in <module>
shuffle(questions) # Liste d'une permutation aléatoire des questions
File "C:\Users\frederic.coulpied\AppData\Local\Programs\Python\Python37-32\lib\random.py", line 278, in shuffle
x[i], x[j] = x[j], x[i]
TypeError: 'dict_keys' object does not support indexing
Merci beaucoup de votre aide ;)