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

Python Discussion :

Comment relancer une fonction?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    CPGE PCSI
    Inscrit en
    Décembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : CPGE PCSI

    Informations forums :
    Inscription : Décembre 2018
    Messages : 7
    Par défaut Comment relancer une fonction?
    Bonjour à tous.
    Je suis en filière PCSI et est un projet d'informatique à rendre, il faut créer un démineur en utilisant python.
    Je bloque sur un élément du code.
    Quand le joueur perd la partie j'aimerais qu'il est la possiblité de relancer la partie directement depuis la console avec un input(), y a t'il un moyen de relancer la fonction grace à une ligne de code ou est-ce plus compliqué?
    merci de vos réponses.
    Bonne soirée à tous.


    P.S je met le code en pièce jointe
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,
    Citation Envoyé par Xiderni Voir le message
    y a t'il un moyen de relancer la fonction grace à une ligne de code ou est-ce plus compliqué?
    Soit une fonction f, si on écrit:
    elle sera lancéeappelée successivement (et inconditionnellement) 3 fois.
    Et si vous voulez qu'elle soit appelée à la condition d'une entrée utilisateur, il va falloir ajouter la saisie, tester la condition, arranger le tout dans une boucle...
    Donc c'est (un peu) plus compliqué qu'une simple ligne de code.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    CPGE PCSI
    Inscrit en
    Décembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : CPGE PCSI

    Informations forums :
    Inscription : Décembre 2018
    Messages : 7
    Par défaut
    Ok merci beaucoup!

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 69
    Par défaut
    ou sinon tu peux réaliser une boucle infinie qui terminera une fois ton action réalisée:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while(1):    #boucle infinie
          f()
     
     
    f():
          #ton code
          break #termine la boucle while

  5. #5
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par BoorBox Voir le message
    (...)
    c'est très faux ça, tu ne dois même pas pouvoir déclarer f en écrivant le code tel quel, Python vomit un "break outside loop"

    et même si Python l'autorisait (par laxisme), l'appel d'une fonction implique qu'on empile son adresse sur la stack et qu'on crée un nouveau contexte pour la fonction appelée, il hors de question d'agir sur le flot d’exécution de la fonction appelante (__main__ ?)

    au mieux tu peux mettre ton appel de fonction dans une boucle for() ou dans un while mais dans ce cas la condition d'arrêt est elle aussi dans le while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i = 0
    while True:
       f()
       i += 1
       if i == 5:
          break

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 69
    Par défaut
    Effectivement. J'ai vraiment écrit n'importe quoi, je m'en excuse.
    Il y a cette solution mais elle force la fonction a retourner un bouléen

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(1)
       if(f()):
           break
     
     
    def f():
        #ton code
        return 1

Discussions similaires

  1. [JQuery + JSP]Comment relancer une fonction sur un load ?
    Par GrooveRage dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/02/2009, 18h21
  2. Réponses: 8
    Dernier message: 20/12/2004, 15h14
  3. Comment lancer une fonction
    Par Elois dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/04/2004, 19h10
  4. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13
  5. Comment chronométrer une fonction
    Par 323 dans le forum Pascal
    Réponses: 3
    Dernier message: 19/03/2003, 20h24

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