1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import random
def fichier(capitales):
with open('F:/capitales.csv', 'r') as f:
lines = list(map(str.strip, f))
return lines
def question(n, lines):
random.shuffle(lines) # Mélange aléatoirement les éléments d'une liste.
couples = lines[:n]
couple1 = couples[0] #On prend le premier couple de la liste qui sera celui pour la question.
pays, capitale = couple1.split(';') #On donne un nom aux deux variables du couple (pays ; capitale) et on sépare le pays et la capitale par ";" qui sera le délimitateur.
mauvaise_capitale = []
for i in couples[1:]: # On exclut le premier couple (pris avant par la question).
pay, cap = i.split(';')
mauvaise_capitale.append(cap) # On prend uniquement les capitales des autres couples et on les mets dans le tableau mauvaise capitale.
print("Quelle est la capitale de {} ?".format(pays)) # Création de la question, en demandant de ne faire apparaitre que le pays d'un couple choisit au hasard. Format() permet d'insérer une variable dans une chaine.
capitales = [capitale] + mauvaise_capitale
random.shuffle(capitales) # On vient remélanger la liste.
for i, cap in enumerate(capitales): # La fonction enumerate permet de récupérer une liste de tuples: ici (pays, capitale)
print('{}: {}'.format(i+1, cap)) # On ne veut faire apparaître que la capitales.
reponse = int(input('Entrez votre réponse: '))
if capitale == capitales[reponse-1]: #Si la capitale choisie est celle de la variable 0 du tableau, alors c'est la bonne réponse.
print('Vous avez gagné !')
else:
print("Non! C'était {}...".format(capitale))
LINES = fichier('F:/capitales.csv')
for n in range(10): # La boucle permet de répéter la question 10 fois.
question(3, LINES) # On ne veut que 3 propositions de réponses (soit la bonne capitale + 2 autres) |
Partager