Comment intégrer une fonction if dans while

Fermé
le_codeur_nul Messages postés 2 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 21 octobre 2020 - Modifié le 21 oct. 2020 à 10:00
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 - 21 oct. 2020 à 15:14
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 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 21 oct. 2020 à 10:38
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 mercredi 21 octobre 2020 Statut Membre Dernière intervention 21 octobre 2020
21 oct. 2020 à 14:47
merci pour ton aide je ferai attention la prochaine fois !
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 476
21 oct. 2020 à 15:14
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