Boucle entre fichiers

Fermé
Nathan - 25 oct. 2020 à 23:53
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 26 oct. 2020 à 13:17
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 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
26 oct. 2020 à 13:03
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 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
26 oct. 2020 à 13:17
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
26 oct. 2020 à 09:42
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
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 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > Nathan
26 oct. 2020 à 12:42
ton exemple est bizarre, tu ne veux afficher argent qu'une seule fois? quand?
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
26 oct. 2020 à 10:39
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
26 oct. 2020 à 11:02
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
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
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 26 oct. 2020 à 11:26
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
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 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > Nathan
26 oct. 2020 à 13:01
donne alors un exemple de programme où il se passe quelque chose.
0