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 :

qpython comment exécuter fonction depuis console


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juillet 2006
    Messages : 233
    Par défaut qpython comment exécuter fonction depuis console
    Bonjour à tous.
    J'ai écrit un script python dans l'editeur qedit et il porte extension .py. ce script consiste en une fonction (def ...), mon souhait est de pouvoir utiliser cette fonction depuis la console. Comment?
    Merci infiniment.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 306
    Par défaut
    Salut,

    Le plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    python3 monscript.py
    Évidemment, cela implique que ce code contient le nécessaire à son exécution. Donc la fonction sera appelée de l'intérieur.

    Sinon, tu peux utiliser l'interpréteur interactif:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    python3
    Python 3.2.3 (default, Jun 18 2015, 21:46:42) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import monscript
    >>> monscript.ma_fonction()
    Je simplifie à défaut de connaître ton code, mais, en gros, c'est aussi simple que cela.

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Par défaut
    Bonjour, désolé pour le déterrage de post, mais j'ai un problème similaire.

    J'utilise QPython pour Android.

    Mon but est assez simple. J'aimerai définir une fonction f(x) qui renvoie 2*x

    Dans la console, si je tape def f(x) : return 2*x, tout se passe bien.

    Mon but maintenant est de l'écrire dans l'éditeur, puis de l'appeler depuis la console (afin de calculer f(2), f(5), ... sans repasser par l'éditeur).

    Je crée donc un nouveau script test.py qui contient le même code ...

    Si j'appuie sur le bouton Run, ça m'ouvre une console mais je ne peux pas écrire f(2) ...

    Si quelqu'un peut m'aider ...

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 306
    Par défaut
    Salut,

    Une fonction ne s'exécute pas si elle n'a pas été appelée.

    Donc un script tel que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def f(x):
        return 2 * x
    ne sert à rien, il n'y a aucune raison pour que la foncion f s'exécute.

    Par contre si tu enregistre ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def f(x):
        return 2 * x
     
    print(f(5))
    tu pourras constater que cela a plus de sens.

    Mais, évidemment, tu aimerais pouvoir choisir toi-même l'argument à passer à la fontion.

    Pour cela il te faudra lancer le code toi-même dans un terminal avec l'argument que tu veux et ajouter à ton code la saisie de cet argument.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import sys
     
    def f(x):
        return 2 * x
     
     
    print(f(int(sys.argv[1])))
    Si tu as une erreur, copie-colle le message complet ici.

  5. #5
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Par défaut
    Bonsoir,

    Déjà merci pour cette réponse si précise et si rapide.

    Donc, bien sûr pas de soucis quand je fais appel à la fonction dans mon fichier.

    En fait je cherchais une solution, qui ressemblerait à ce que propose repl.it : un éditeur d'un côté, on compile et on exécute, et une fenêtre de l'autre côté qui permet d'appeler les fonctions contenues dans le code.

    Mon but est d'utiliser en classe de Seconde (je suis prof de Maths) les téléphones pour coder en Python, de manière aussi simple que les élèves programmaient avec leur calculatrice.

    Le plus simple dans mon cas est peut être d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nombre=int(input("Entrez x:"))
    def f(x):
        return 2 * x
     
    print(f(nombre))
    Le problème c'est que pour essayer le programme avec un autre x, sous qpython, il faut fermer la fenêtre, et recompiler le programme. Alors qu'avec les calculatrices, il suffit d'appuyer une nouvelle fois sur Enter ...

    Mais bon, je pense que c'est la solution la plus simple ... Il reste ensuite la possibilité de taper le code directement dans la Console, mais ils ne gardent pas de trace de leur programme.

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 306
    Par défaut
    Citation Envoyé par bobange Voir le message
    Le problème c'est que pour essayer le programme avec un autre x, sous qpython, il faut fermer la fenêtre, et recompiler le programme. Alors qu'avec les calculatrices, il suffit d'appuyer une nouvelle fois sur Enter ...
    Pas obligé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def f(x):
        return 2 * x
     
    while 1:
        nombre = input("Entrez x:")
        if x in ("q", "Q"):
            sys.exit()
        try:
            n = int(nombre)
        except ValueError:
            print("Entrez une valeur numérique !")
            continue
        print(f(n))
    Donc en tapant "q" on quitte le programme.

Discussions similaires

  1. Comment exécuter une fonction jQuery depuis un flash ?
    Par supaaa_mika dans le forum jQuery
    Réponses: 0
    Dernier message: 07/11/2011, 15h42
  2. exécuter fonction au chargement de opener depuis un popup
    Par RobertVonTagada dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/01/2007, 14h15
  3. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  4. Comment exécuter un fichier .Bat sans ouvrir la console DOS
    Par digital prophecy dans le forum Windows XP
    Réponses: 4
    Dernier message: 20/06/2006, 12h01
  5. [C#][Débutant] Comment appeler la meme fonction depuis plusieurs items d un menu
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 19h39

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