Boucle entre fichiers

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

J'ai fait un programme qui comporte une variable argent et je voudrais pouvoir l'incrémenter de 1 toute les minutes tout en pouvant continuer le script sans le bloquer avec une boucle infinie.
J'ai essayé en utilisant un 2nd module avec un from ___ import * mais cela créée une boucle infinie entre les 2 modules car pour chaque module, il y a un from ____ import * de l'autre module.

Sauriez vous comment faire ?

Configuration: Windows / Firefox 81.0
A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
deux façons de faire ce que je suggère en #2:
from datetime import *
argent=0
avant=datetime.now()
while True:
    input("prêt?")
    delai=(datetime.now()-avant).seconds
    avant=avant+timedelta(seconds=delai)
    argent=argent+delai
    print(argent)

ou
from datetime import *
class frik:
    def __init__(self,valeur=0):
        self.pot=valeur
        self.debut=datetime.now()
    def combien(self):
        return self.pot+(datetime.now()-self.debut).seconds
argent=frik()
while True:
    input("prêt?")
    print(argent.combien())
1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
ou bien:
from datetime import *
class frik:
    def __init__(self,valeur=0):
        self.__pot=valeur
        self.__debut=datetime.now()
    def combien(self):
        return self.__pot+(datetime.now()-self.__debut).seconds
    def ajoute(self,valeur):
        self.__pot=self.__pot+valeur
argent=frik()
while True:
    k=int(input("combien de plus?"))
    argent.ajoute(k)
    print(argent.combien())
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour Nathan,

On y verrai plus clair si tu affichait ton code ici, avec les balises de code

mode d'emploi:

https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :

def test():
    print('test')

test()
0
Nathan
 
Voici le code:

code1:

argent=0

From code2 import *

print(argent)




code2:

From code1 import *

time import

time.sleep(1)
argent=argent+1


Mais quand le code1 importe la variable argent du code2, le code2 relance le code1 a cause du from code1 import, mais je suis obligé de l importer car si je definie directement la variable argent dans code2, elle reviendra à cette valeur à chaque fois que je lancerai le code2 pour l incrémenter.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Nathan
 
ton exemple est bizarre, tu ne veux afficher argent qu'une seule fois? quand?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, plutôt que de l'incrementer toutes les minutes, n'est-il pas possible de l'augmenter avant de l'utiliser?
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
OK

mais j'ai l'impression qu'il importe chaque module l'un dans l'autre ..

et ça, à mon avis, ça ne doit pas bien aller
0
Nathan
 
Oui voilà, c est ca qui bug. Mais je suis obligé car, je ne sais pas si mon 1er message est compréhensible mais en gros je doit avoir 2 modules qui tournent en même temps, 1 pour le jeu et 1 pour augmenter argent de 1 à chaque seconde. Et le 1er module doit importer la variable argent du 2nd. Sauf que le 2nd importe argent du 1er et cela créée une boucle
0
Nathan
 
On ne peux pas importer une variable d un module sans lancer tout le code de ce module ?
Et on ne peut pas lancer 2 codes en même temps ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Ca ne peut pas marcher

ensuite, ce n'est pas

time import


mais

import time


Si tu veux vraiment incrémenter argent de 1 toutes les minutes, un module suffit

importer time
initialiser argent à 0

faire une boucle
    time.sleep(1)
    argent += 1
    imprimer argent


time.sleep(1), c'est une pause de 1 seconde
0
Nathan
 
Oui mais le problème c est que je veux en même temps pouvoir incrémenter la variable argent et en même temps pouvoir jouer
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Nathan
 
donne alors un exemple de programme où il se passe quelque chose.
0