Comment intégrer une fonction if dans while

le_codeur_nul Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un petit script Python qui affiche l'heure en temps réel
le voici :
ps : je vous montre que le code pas les modules importés

infinite = 1
while infinite == 1 :
    print("[TIME] :")
    print(time.ctime())
    time.sleep(1)


je voudrais intégrer une fonction if pour que ce script réagisse à une heure précise,
je vous explique :

if now.strftime("%H") == 14 : 

   {
     print("[EVENT]:")
   }
   {
       print("--demarage de la sequence--")
   }
   {
       print("---------------------")
   }
   {
       print("")
   }

 else :

   {
     print("[EVENT]:")
   }

   {
       print("--pas d'actions--")
   }
   {
       print("---------------------")
   }
   {
       print("")
   }


donc , si il est 14h il affiche démarage de la séquence mais je voudrais les fusionner pour que
ce script puisse m'afficher --demarage de la sequence-- ou --pas d'actions-- à chaque fois que l'heure s'affiche pour que vous puissiez comprendre un peut plus voici le code complet :

print("[DATE DE DEBUT] :")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
print("---------------------")

infinite = 1
while infinite == 1 :
    print("[TIME] :")
    print(time.ctime())
    time.sleep(1)

 if now.strftime("%H") == 14 : 

   {
     print("[EVENT]:")
   }
   {
       print("--demarage de la sequence--")
   }
   {
       print("---------------------")
   }
   {
       print("")
   }

 else :

   {
     print("[EVENT]:")
   }

   {
       print("--pas d'actions--")
   }
   {
       print("---------------------")
   }
   {
       print("")
   }


merci d'avance !
A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

La base en python, c'est de respecter les indentations de code, or là il me semble que tu as copié collé ton code (issu d'ailleurs d'un autre langage, non ? C'est quoi ces accolades ?) sans y prêter attention.
Il suffit donc de nettoyer un peu tout ça :
print("[DATE DE DEBUT] :")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
print("---------------------")

infinite = 1
while infinite == 1 :
    print("[TIME] :")
    print(time.ctime())

    if now.strftime("%H") == 14 : 
        print("[EVENT]:")
        print("--demarage de la sequence--")
        print("---------------------")
        print("")
    else :
        print("[EVENT]:")
        print("--pas d'actions--")
        print("---------------------")
        print("")

    time.sleep(1)

Par contre, écrit tel quel, cela va générer le démarrage de la séquence toutes les secondes pendant une heure.
Tu devrais trouver un moyen de ne le faire qu'une fois par jour, par exemple en gardant en mémoire le jour de dernier déclenchement et en vérifiant qu'il a changé (c'est un exemple de solution, tu peux aussi utiliser un booléen qui bascule à VRAI quand on lance la séquence et revient à FALSE dès que l'heure ne vaut plus 14...)

Xavier
0
le_codeur_nul Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ton aide je ferai attention la prochaine fois !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
bonjour,
tu peux également faire varier le temps d'attente, tu peux attendre plus d'une seconde si la prochaine action est dans plusieurs heures.
0