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

Calcul scientifique Python Discussion :

Fonction time.clock et sleep


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Fonction time.clock et sleep
    Bonjour,

    Voilà je fais un projet avec des amis (enfin j'essaye). C'est une simulation de route avec des feux piétons et des feux voitures et je dois faire ceci :

    Quand le feu bascule pour donner le passage aux piétons le feu voiture doit passer à l'orange pendant trois secondes puis au rouge, le feu piéton passa au vert après un délai supplémentaire d'une seconde.

    J'en suis là :

    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
    from tkinter import *
     
    def route():
     can.create_rectangle(50,50,250,250,width=1,fill="grey")
     
    def passage_pieton():
        for i in range(8):
            can.create_rectangle(55+25*i,120,70+25*i,180,width=1,fill="yellow")
     
    def feux(x,y,rayon,couleur):
        can.create_oval(x-rayon,y-rayon,x+rayon,y+rayon,fill=couleur)
     
    def xfeux():
        global a
        if a==1:
            feux(30,120,10,"red")
            feux(30,180,10,"green")
            feux(270,180,10,"red")
            feux(270,120,10,"green")
        elif a==0:
            feux(30,120,10,"green")
            feux(30,180,10,"red")
            feux(270,180,10,"green")
            feux(270,120,10,"red")
        if a==0:
            a=1
        else:
            a=0
     
    fen = Tk()
    fen.title("Feux Rouges")
     
     
    can = Canvas(fen, bg ="light grey", width =300, height =300)
    can.grid(row =0, column =0)
    route()
    passage_pieton()
    a=1
    xfeux()
    Button(fen,text='Changer',command=xfeux).grid(row =1, column =0,sticky=W)
    Button(fen,text='Quitter',command=fen.destroy).grid(row =1, column =0,sticky=E)
     
    fen.mainloop()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,
    fen.after(1000) permet d'attendre une seconde avant d'exécuter l'action suivante. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        if a==1:
            feux(30,120,10,"red")
            fen.after(1000)
            feux(30,180,10,"green")
            fen.after(1000)
    Modifiez votre code pour changer la couleur de l'oval plutôt que de les superposer.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui j'ai réussi avec after Merci

    Et oui c'est pas bête de changer la couleur au lieu de les superposer

    Merci beaucoup

    Je suis encore en échec, quand je place after les quatre feux virent au orange --'

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    fen.after(1000)

    Cela ne fais pas ce que vous avez dit, il attend une seconde pour changer les quatre feux.
    Moi je veux attendre une seconde seulement pour les feux piétons et 3 seconde pour les feux voitures

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Mon exemple montre que .after attend une seconde avant d'enclencher l'action suivante: si vous voulez que çà fasse "autre chose", à vous de le coder.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Serait-il possible de le faire avec la fonction time ?
    Merci

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par edwardfils Voir le message
    Serait-il possible de le faire avec la fonction time ?
    Que changerait d'avoir une tempo basée sur time.sleep plutôt qu'.after?
    Il faudra toujours coder les actions à déclencher après, non?
    L'avantage d'.after est que vous pourrez écrire .after(1000, passer_au_rouge) où "passer_au_rouge" sera une fonction/callback qui se déclenchera 1s. plus tard.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. utilisation fonction time
    Par Jeane dans le forum Administration système
    Réponses: 2
    Dernier message: 21/03/2007, 16h31
  2. [MySQL] Utilisation de la fonction time
    Par Iodev dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2006, 17h34
  3. exemple de fonction time.time()
    Par shirya dans le forum Général Python
    Réponses: 2
    Dernier message: 30/10/2006, 23h56
  4. Fonction du genre delay, sleep, wait pour attendre 1000ms
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2005, 18h17
  5. [LG]Utilisation de la fonction time
    Par kmitz dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2005, 14h05

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