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 :

Premier Programme python et pb de variables


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 19
    Par défaut Premier Programme python et pb de variables
    Bonjour,

    J'ai sucombé aux charmes du raspberry et je m'essaye au python.
    J'ai quelques soucis avec les variables... le compilateur me dit " NameError: name 'variable' is not defined"

    Mon code est minimaliste.... je ne doute pas que l'erreur vous sautera aux yeux...
    Si une bonne ame passe pas la, je suis preneur !

    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
     
    import RPi.GPIO as GPIO
    import time
     
     
     
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(17,GPIO.OUT)
    GPIO.setup(22,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
     
    #----------------------------------------------------------------------
    def interruption(void):
        variable = 1
     
     
    def led_blinky():
        GPIO.output(17,GPIO.HIGH)
        time.sleep(1.0/20)
        GPIO.output(17,GPIO.LOW)
     
    #--------------------------------------------------------------------
     
    GPIO.add_event_detect(22,GPIO.RISING,callback=interruption,bouncetime=100)
    GPIO.output(17,GPIO.LOW)
     
     
    while(1):
     
         if variable == 1:
             led_blinky
             variable = 0
     
         time.sleep(1.0/1000)
    #-----------------------------------------------------------------------

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par joseph20480 Voir le message
    J'ai sucombé aux charmes du raspberry et je m'essaye au python.
    J'ai quelques soucis avec les variables... le compilateur me dit " NameError: name 'variable' is not defined"
    Je vous recommanderais d'ouvrir un tuto. et de (re)voir le chapitre qui parle de portée des variables.... Et d'essayer de faire quelques exercices pour s'habituer aux différents messages d'erreurs que Python remonte lorsqu'on apprend à écrire dans ce langage.
    note: vous êtes supposé avoir ouvert un tuto. et fait quelques recherches avant de poster.

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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 19
    Par défaut
    Merci pour cette réponse rapide.
    Alors oui,venant du c sur microcontrôleur, je connais un peu les différences, notemment la gestion différente des variables.
    Je me suis mal expliquer.
    J'ai comme habitude de rester le moins longtemps dans les interruptions. La déclaration d'une variable global.ne semble pas résoudre mon problème.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par joseph20480 Voir le message
    J'ai comme habitude de rester le moins longtemps dans les interruptions. La déclaration d'une variable global.ne semble pas résoudre mon problème.
    Si çà ne résout pas votre problème, c'est que vous ne savez toujours pas comment fonctionnent les variables globales et que vous devriez passer un peu plus de temps à comprendre ce que raconte le tuto.
    En tous cas, si vous ne postez pas le dernier code que vous avez essayé d'écrire, difficile de vous dire autre chose.

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

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 43
    Par défaut
    Bonjour,
    je débute aussi mais je pense savoir d'où vient le problème.
    Dans votre boucle, "variable" n'est pas déclarée, le if ne pourra pas savoir si c'est égal à 1 car variable n'existe pas.
    Variable n'existe que localement dans la fonction définie plus haut. Pour pouvoir l'appeler en dehors il faut passer cette variable en "global" dans la définition de la fonction.
    Bonne journée.

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 43
    Par défaut
    Citation Envoyé par esope60 Voir le message
    Bonjour,
    je débute aussi mais je pense savoir d'où vient le problème.
    Dans votre boucle, "variable" n'est pas déclarée, le if ne pourra pas savoir si c'est égal à 1 car variable n'existe pas.
    Variable n'existe que localement dans la fonction définie plus haut. Pour pouvoir l'appeler en dehors il faut passer cette variable en "global" dans la définition de la fonction.
    De plus cette variable est déclarée dans une fonction qui n'est jamais appelée
    Bonne journée.

Discussions similaires

  1. Premier programme python petit, simple mais buggé
    Par Leeloo.at dans le forum Général Python
    Réponses: 5
    Dernier message: 28/01/2016, 19h41
  2. problème premier programme avec python
    Par adolphemartins dans le forum Général Python
    Réponses: 3
    Dernier message: 04/12/2011, 12h45
  3. Premier programme en python
    Par zerros dans le forum Général Python
    Réponses: 15
    Dernier message: 12/07/2011, 16h52
  4. Premier programme en Python
    Par VinsS dans le forum Contribuez
    Réponses: 2
    Dernier message: 17/11/2008, 14h36
  5. Premier programme sous Python
    Par Helios07 dans le forum Général Python
    Réponses: 6
    Dernier message: 06/06/2008, 10h33

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