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 :

Error : Variable local , globales [Python 3.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Error : Variable local , globales
    Bonjour,

    en tournant mon programme j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "testultrason.py", line 44, in <module>
        etat_entre = ultrason(20,24)	
      File "testultrason.py", line 38, in ultrason
        distance = round((finImpulsion - debutImpulsion ) * 340 * 100 / 2, 1)  ## Vitesse du son = 340 m/s
    UnboundLocalError: local variable 'debutImpulsion' referenced before assignment
    Voici mon code :

    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
    import time
    import subprocess
    from picamera import PiCamera
    import serial 
     
    import RPi.GPIO as GPIO
    from adafruit_servokit import ServoKit
    from time import sleep
    import time
     
    GPIO.cleanup()
     
    kit = ServoKit(channels=16)
     
    GPIO.setmode(GPIO.BCM)
    def ultrason(trig,echo):
     
          GPIO.setmode(GPIO.BCM)
          Trig = trig          # Entree Trig du HC-SR04 branchee au GPIO 23
          Echo = echo          # Sortie Echo du HC-SR04 branchee au GPIO 24
          GPIO.setup(Trig,GPIO.OUT)
          GPIO.setup(Echo,GPIO.IN)
          GPIO.output(Trig, False)
          time.sleep(0.00001)
          GPIO.output(Trig, True)
          time.sleep(0.00001)
          GPIO.output(Trig, False)
     
     
          while GPIO.input(Echo)==0:  ## Emission de l'ultrason
     
    	      debutImpulsion = time.time()
     
          while GPIO.input(Echo)==1:   ## Retour de l'Echo
     
                finImpulsion = time.time()
     
          distance = round((finImpulsion - debutImpulsion ) * 340 * 100 / 2, 1)  ## Vitesse du son = 340 m/s
     
     
          return distance
     
     
    etat_entre = ultrason(20,24)
    l'erreur semble provenir de la variable debutImpulsion , pourtant elle n'est définit nulle part ailleurs donc je comprends pas bien l'erreur j'execute le programme avec python3.5

    Merci bien

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par woshou Voir le message
    l'erreur semble provenir de la variable debutImpulsion , pourtant elle n'est définit nulle part ailleurs donc je comprends pas bien l'erreur j'execute le programme avec python3.5
    C'est bien ce que dit l'erreur: debutImpulsion n'est pas définie.
    Et si vous relisez votre code, elle n'est définie que par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          while GPIO.input(Echo)==0:  ## Emission de l'ultrason
    	      debutImpulsion = time.time()
    ce qui peut être jamais si la condition GPIO.input(Echo)==0 n'est pas vraie.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Bien reçu
    Oui effectivement la condition n'était jamais vrai , le problème se trouvait au niveau d'une des connexions du capteurs , merci bien

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

Discussions similaires

  1. Gérer des variables locales/globales
    Par Sweeny94 dans le forum Simulink
    Réponses: 20
    Dernier message: 07/11/2013, 11h34
  2. Bash et les variables locales/globales
    Par Yokav dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 31/05/2012, 18h10
  3. Variables locale/globale
    Par pydev dans le forum Général Python
    Réponses: 12
    Dernier message: 16/04/2009, 22h19
  4. variables locales ou globales?
    Par molesqualeux dans le forum C
    Réponses: 20
    Dernier message: 09/11/2005, 23h03
  5. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22

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