Bonsoir
Le programme ci-dessous affiche que la variable "dictionnaire" n'est pas défini.

def lecture():
dictionnaire = {}
fichier=open('qcm.txt')
for line in fichier:
key, value= line.split(';;')
dictionnaire[key]=value
fichier.close

Je n'arrive pas a comprendre pourquoi. Pouvez-vous m'aider s'il vous plait?

Sagot :

Bonsoir,

Ton dictionnaire n'existe qu'au sein de la fonction lecture().

On parle de variables locales (opposées à globales); c'est la portée des variables.

Tu as deux possibilités pour utiliser ton dictionnaire en dehors de la fonction.

La première c'est de faire ton dictionnaire = {} en dehors de la fonction, donc en globale.

La deuxième (mieux) c'est de retourner le dictionnaire à la fin de la fonction:

def lecture():

   dictionnaire = {}

   fichier=open('qcm.txt')

   for line in fichier:

       key, value= line.split(';;')

       dictionnaire[key] = value

   fichier.close

   return dictionnaire

dico = lecture()

Bonnes fêtes.