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 :

utilisation de sleep


Sujet :

Python

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Par défaut utilisation de sleep
    bonjour
    je suis nouveau dans ce forum et nouveau dans l'apprentissage du python
    J'ai déjà programmé en QBasic et je voudrais reprendre mes programmes dans le langage python.
    En mettant à profit quelques scripts j'ai voulu obtenir une représentation graphique de fonction (y=2x par ex) de sorte que les points s'affichent successivement et lentement ( 0.5 s d'intervalle par ex.)
    A cette fin j'ai fait appel à la fonction sleep comme proposé dans le script joint, mais je ne vois qu'un seul point apparaître et de plus l'IDLE me signifie que la variable(?) sleep n'est pas définie.
    Que dois-je faire (simplement)?
    La question révèle sans doute mon extrême faiblesse. Suis-je sur le bon forum? Son titre semble le réserver à des professionnels.
    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par défaut
    Bonjour,

    D'après votre message d'erreur, sleep n'a pas été définie, en effet à aucun endroit nous indiquons au programme a quoi correspond sleep. Par contre nous savons que sleep provient de la bibliothèque time, il vous suffit donc de lui dire ou chercher, pour cela, trois méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import time
    time.sleep(0.5)
    Lui charge toutes les fonctions associées a time mais il faut continuer a lui indiquer time devant pour qu'il sache ou aller chercher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from time import sleep
    sleep(0.5)
    Cella la ne va charger que le fonction sleep du module time

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from time import *
    sleep(0.5)
    Comme pour la premiere methode cette dernier charge toutes les fonctions de time mais en gardant en memoire leur nom, pas une tres bonne méthode car si deux modules ont une chacun une fonction qui ont le meme nom, sa va pas le faire ^^

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    while étant bloquant le Canvas n'est pas mis à jour.

    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
    # -*- coding:Utf8 -*-
     
    # Exercice utilisant la bibliothèque graphique Tkinter
     
    from tkinter import *
    import time
     
    def cercle(x, y, r, coul='black'):
        "tracé d'un cercle de centre (x,y) et de rayon r"
        can.create_oval(x-r, y-r, x+r, y+r, outline=coul)
     
    def figure_1():
        "dessiner une cible"
        x = 50
        # Effacer d'abord tout dessin préexistant :
        can.delete(ALL)
        # tracer les deux lignes (vert. et horiz.) :
        can.create_line(300, 0, 300, 600, fill='blue')
        can.create_line(0, 300, 600, 300, fill='blue')
        # tracer plusieurs cercles concentriques :
        rayon = 15
        while x < 600:
              y = 2*x
              cercle(x, y, rayon)
              can.update()
              time.sleep(0.5) 
              x += 20 
     
    ##### Programme principal : ############
    fen = Tk()
    can = Canvas(fen, width=600, height=600, bg='ivory')
    can.pack(side=TOP, padx=5, pady=5)
    Button(fen, text ='dessin 1', command =figure_1).pack(side=LEFT, padx=3, pady=3)
    #b2 = Button(fen, text ='dessin 2', command =figure_2)
    #b2.pack(side =RIGHT, padx =3, pady =3)
    fen.mainloop()
    @+

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    while étant bloquant
    time.sleep aussi.

    Une version moins bloquante
    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
    # -*- coding:Utf8 -*-
     
    # Exercice utilisant la bibliothèque graphique Tkinter
     
    from tkinter import *
     
    def cercle(x, y, r, coul='black'):
        "tracé d'un cercle de centre (x,y) et de rayon r"
        can.create_oval(x-r, y-r, x+r, y+r, outline=coul)
        if x < 600:
            y = 2*x
            x += 20
            fen.after(500, lambda x=x, y=y, r=r: cercle(x, y, r))
     
    def figure_1():
        "dessiner une cible"
        # Effacer d'abord tout dessin préexistant :
        can.delete(ALL)
        # tracer les deux lignes (vert. et horiz.) :
        can.create_line(300, 0, 300, 600, fill='blue')
        can.create_line(0, 300, 600, 300, fill='blue')
        # tracer plusieurs cercles concentriques :
        rayon = 15
        x = 50
        y = 2*x
        cercle(x, y, rayon)
     
    ##### Programme principal : ############
    fen = Tk()
    can = Canvas(fen, width=600, height=600, bg='ivory')
    can.pack(side=TOP, padx=5, pady=5)
    Button(fen, text ='dessin 1', command =figure_1).pack(side=LEFT, padx=3, pady=3)
    #b2 = Button(fen, text ='dessin 2', command =figure_2)
    #b2.pack(side =RIGHT, padx =3, pady =3)
    fen.mainloop()
    @++

Discussions similaires

  1. Utilisation de sleep ou de timer ?
    Par victorienv dans le forum Débuter
    Réponses: 7
    Dernier message: 16/04/2015, 09h30
  2. Problême utilisation du Thread.sleep.
    Par Alba.1337 dans le forum Général Java
    Réponses: 5
    Dernier message: 22/03/2012, 14h22
  3. Réponses: 2
    Dernier message: 10/04/2008, 21h36
  4. Pause dans une application sans utiliser Sleep()
    Par CriPpLe dans le forum MFC
    Réponses: 9
    Dernier message: 25/03/2006, 11h00
  5. [Tomcat][sleep]De la bonne utilisation du sleep??
    Par Titom dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 11/01/2005, 10h25

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