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 :

Je cherche à comprendre


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2017
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2017
    Messages : 99
    Points : 26
    Points
    26
    Par défaut Je cherche à comprendre
    Bonjour à tous,

    Je ne comprends pas le comportement de ce bout de 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
    import RPi.GPIO as GPIO
    import time
     
    GPIO.setmode(GPIO.BOARD) #on utilise la numérotation pin physique
     
    button=12 
     
    GPIO.setup(button,GPIO.IN,pull_up_down=GPIO.PUD_UP)
     
     
    t = 0
     
    while(True):
            if GPIO.input(button)==0: #si on appuie 
                t=time.time() - t
                print ("temps:  ", t)
                time.sleep(0.1) #Attente en seconde


    Resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> %Run test2.py
    temps:   1574328404.313985
    temps:   0.8491220474243164
    temps:   1574328405.0518234
    temps:   1.5933406352996826
    temps:   1574328405.7775989
    temps:   8.716043710708618
    temps:   1574328406.5227504
    temps:   9.382421493530273
    temps:   1574328407.3323874
    temps:   10.104634046554565
    temps:   1574328408.1163146
    temps:   10.827035665512085 ...

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    C'est logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    >>> time.time()
    1574329049.3425488
     
    donc au départ t = 0:
    1574329049.3425488 - 0 = 1574329049.3425488 (nouvelle valeur de t)
    une seconde plus tard t = time.time() - t 
    1574329050.3425488 - 1574329049.3425488 = 1 (nouvelle valeur de t)
    une seconde plus tard:
    1574329051.3425488 - 1 = 1574329050.3425488 (nouvelle valeur de t)
    une seconde plus tard:
    1574329052.3425488 - 1574329050.3425488 = 2 (nouvelle valeur de t)
    etc ...
    Dans ton résultat, tu n'as pas une action précisément à une seconde d'intervalle donc les chiffres diffèrent mais ça ne change rien au raisonnement.

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

    Citation Envoyé par tm68780 Voir le message
    Je ne comprends pas le comportement de ce bout de code:

    time.time() retourne une "date".
    t = time.time() - t fabrique une durée à partir d'une date et de la durée précédente.
    C'est juste incohérent.

    Il faut faire çà en plusieurs étapes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    last_time = time.time()
    while ...:
         z =  time.time()
         dt = z - last_time
         last_time = z
         ...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Il existe un module adéquat : https://pypi.org/project/chronometer/

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2017
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2017
    Messages : 99
    Points : 26
    Points
    26
    Par défaut
    Merci pour la réponse

    Où puis-je trouver une description du package time ?

    Le but est de créer, vous l'aviez compris, une fonction chronomètre :-)

Discussions similaires

  1. Je cherche à comprendre urllib
    Par eyquem dans le forum Général Python
    Réponses: 4
    Dernier message: 09/06/2008, 18h39
  2. Cherche à comprendre : os.spawnl
    Par Chris33 dans le forum Général Python
    Réponses: 3
    Dernier message: 25/03/2008, 10h38
  3. Cherche à comprendre le but d'une certaine ligne d'un script shell
    Par publicStaticVoidMain dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 18/03/2008, 18h55
  4. je cherche à comprendre <ahref=action
    Par rougedragon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/09/2006, 23h32
  5. Nouveau sur XML cherche à comprendre un truck...
    Par shadowbob dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 11/02/2006, 16h10

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