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 :

débutant : appel de fonction dans une fonction


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut débutant : appel de fonction dans une fonction
    bonjour,
    Je cherche à appeler une fonction depuis une autre fonction, mais le programme n'en tient pas compte... quelqu'un saurait-il me dire pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    from tkinter import *
    root = Tk()
    f= open("Monfichier.txt",'w')
     
    def affichage(var1,var2):
    	print("var3 = %d" %(var3))
     
    def definiVariable():
    	var3 = var1 + var2
    	affichage(2,3)  #cette instruction n'est pas reconnue
     
    definiVariable
     
    f.close()

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    C'est juste parce que votre premiere fonction n'est pas appellée :

    definiVariable
    Meme s'il n'y a pas d'argument dans votre fonction "definiVariable", il faut dire a python que c'est une fonction, sinon il va prendre sa comme une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from tkinter import *
    root = Tk()
    f= open("Monfichier.txt",'w')
     
    def affichage(var1,var2):
    	print "var3 = %d" % (var3) # var3 n'est pas définit
     
    def definiVariable():
    	var3 = var1 + var2 # que vaut var1 et var2 ?
    	affichage(2,3) 
     
    definiVariable()
     
    f.close()
    Autre probleme... Que vous n'avez pas définie la var1 et var2 et var3.
    Le print est pas top non plus.

    Bon courage...

    Mickael

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci, et désolé mais j'ai posté n'importe quoi, mais là c'est mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def affichage(var1,var2):
        var3 = var1 + var2
        print("var3 = %d" %(var3))
     
    def definiVariable():
        var2 = 2
        var1 = 1    
        affichage(var1,var2)
     
    definiVariable()
    C'est un poil tordu quand même.
    Ici il faut les parenthèses : definiVariable()
    Là il n'en faut pas : bout1=Button(root,text=" valider ",command=valider)

    Comment devrais-je présenter le print ?

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    Comme je l'ai mis dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "var3 = %d" % (var3)
    Et ne vous inquietez, aucune question n'est idiote, c'est le début après vous re-regarderez ce poste et vous vous direz : "comment j'ai pu ecrire sa "

    Bon courage pour la suite...

    Mickael

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Bon courage pour la suite... c'est pas gagné d'avance

    Ça ne fonctionne pas chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >pythonw -u "ri.py"
      File "ri.py", line 4
        print"var3 = %d" %(var3)
                       ^
    SyntaxError: invalid syntax
    >Exit code: 1
    Je travaille sous Python 3.1.2 qui impose certainement ces parenthèses, sauf erreur...

  6. #6
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2010
    Messages : 83
    Points : 46
    Points
    46
    Par défaut
    En effet, les parenthèses sont requises avec la fonction print en Python >=3.
    Et en Python <3, on ferais bien de les mettre pour adapter plus facilement le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def affichage(var1,var2):
        var3 = var1 + var2
        return ("var3 = %d" %(var3))
     
    def definiVariable():
        var2 = 2
        var1 = 1    
        print (affichage(var1,var2))
     
    definiVariable()
    Et j'ai utilisé return() pour retourner le résultat, et print pour l'afficher depuis definiVariables, ce qui te permettra de l'adapter plus simplement à une GUI ou à utiliser cette même fonction en console qu'en fenêtre.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    merci à vous.

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Réponses: 4
    Dernier message: 04/06/2010, 14h48
  3. Appel de variables d'une fonction dans une autre fonction
    Par black cat747 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 11/05/2010, 15h34
  4. Appel d'une fonction dans une fonction (sql server 2005)
    Par catchouse dans le forum Développement
    Réponses: 10
    Dernier message: 06/05/2009, 12h03
  5. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39

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