IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème de UnboundLocalError [Python 3.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2020
    Messages : 14
    Points : 18
    Points
    18
    Par défaut Problème de UnboundLocalError
    Bonjour Tous le monde,

    Je suis novice en python, pour mon stage il a été demander utiliser python pour traiter plusieurs fichier.Pour cela , j'ai développé un code qui a marché.Mais depuis hier, il ne marche pas.Alors que au niveau de collections des données,il n'y a aucune changement a été effectué.Peut être que mon erreur peut paraître un peu bête.Mais pouvez vous me dire les modifications à effectué pour réguler le problème.Cela me permettre d'avance.J'ai vu qu'il faut utiliser les variables globales, mais il m'ont interdit utiliser cela.

    Je vous remercie d'avances

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    import os
    import numpy as np
    import matplotlib.pyplot as plt
    import glob
    import os.path
    import csv
     
     
     
    def tri_1(lines):                    # creation de list 
    	tab=[]
    	for chn in lines:
    		tab.append(chn.split('\t'))
    	return(tab)
     
    def change(nl,nc,tab):               # changement en float 
    	A = A=np.arange(2,nc-1)   
    	for lst11 in tab[1:nl]:
    		for i in A:
    			lst11[i]=float(lst11[i])
    	#print(lst)
    	return(lst11)
     
     
     
     
     
    def creation_dossier(chemin1):                            # creation d'un autre répertoire 
    	os.mkdir(chemin1)	
     
    def enregistrment_fichier(nom_de_fichier,matrice):
    	fichier_ouvre1 = open(nom_de_fichier,'a')
    	np.savetxt(fichier_ouvre1,matrice,delimiter =",")
    	fichier_ouvre1.close()
     
    def affec(nl,tab):
     
    	b1X=np.zeros(nl-1)                               # intilisation de matrice 
    	b1Y=np.zeros(nl-1)
    	b1Z=np.zeros(nl-1)
    	b1Xtot = []
    	b1Ytot = []
    	b1Ztot = []
    	AA=np.arange(1,nl)
    	for k in AA:
    		 b1X[k-1]=tab[k][3]                          # creation de matrice 
    		 b1Y[k-1]=tab[k][5]
    		 b1Z[k-1]=tab[k][9]
    		 tran_form_b1X = np.array(b1X)
    		 tran_form_b1Y = np.array(b1Y)
    		 tran_form_b1Z = np.array(b1Z)
    		 b1Xtot=np.concatenate((b1Xtot, tran_form_b1X))
    		 b1Ytot=np.concatenate((b1Ytot,tran_form_b1Y ))
    		 b1Ztot=np.concatenate((b1Ztot, tran_form_b1Z))
    		 b1XYZtot=np.column_stack((b1Xtot[0],b1Ytot[0],b1Ztot[0]))
     
     
    	enregistrment_fichier("/media/Tonny/TOSHIBA EXT/test_pour_stage/valeurs_cuve_tension/pluse_temps_azote/pluse_tension_azote/tension1/enregistre_valeur_csv/test_temps.csv",b1XYZtot)  # appel de la fonction
     
     
    def tri(rep):	                                        # fonction d'excution des taches 
    	print("saisir emplacement de fichier de enregistrement")
    	#emplacement = input()
    	#print(emplacement)
    	#creation1_csv = creation_dossier(emplacement)
    	os.chdir(rep)
    	for file in glob.glob("*.txt"):
    		 lecture_ligne =open(file,"r")
    		 lignes = lecture_ligne.readlines()
    		 triage = tri_1(lignes)
    		 modification = change(3,32,tes1)
    		 trifinale = affec(3,tes1)
    		 lecture_ligne.close()
     
    	return(triage)
     
    ter = tri("/home/Tonny/Téléchargements/test_tension_1/18_06_2020/tension1")
    Résultat affiché:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "extraction_des_données.py", line 85, in <module>
        ter = tri("/home/Tonny/Téléchargements/test_tension_1/18_06_2020/tension1")
      File "extraction_des_données.py", line 83, in tri
        return(triage)
    UnboundLocalError: local variable 'triage' referenced before assignment

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    18 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 18 681
    Points : 32 253
    Points
    32 253
    Par défaut
    Salut,

    Il faudrait revoir la logique de votre programme.
    Pour l'erreur, réfléchissez à ce que fait ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def f(n):
    ...     if n % 2:
    ...        b = 1
    ...     return b
    ...
    >>> f(1)
    1
    >>>
    Par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> f(0)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 4, in f
    UnboundLocalError: local variable 'b' referenced before assignment
    Vous voyez pas besoin de 80 lignes pour reproduire le problème et comprendre que même les variables globales ne sont pas une solution.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2020
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Merci monsieur vous m'avez sauvé.Je suis vraiment reconnaissant.

    tomme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] problème UnboundLocalError dans une classe
    Par ofortuna dans le forum Général Python
    Réponses: 4
    Dernier message: 31/07/2014, 11h02
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 15h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 12h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo