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 :

Paramétres de sorties


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Par défaut Paramétres de sorties
    Bonjour à tous,

    Je m'initie à Python et pour le moment je bloque sur un problème classique :
    Comment faire comprendre (syntaxiquement) au programme principal qui appelle une fonction, que certains paramétres de la fonction sont en sorties et donc n'ont pas à etre définis avant l'appel de la fonction ?

    Pour etre plus précis, voici le petit programme qui résout en boucle une équation du second degré.

    La fonction appellée s'apelle Resol2. Elle comporte les paramétres suivants :

    Entrées : a,b,c sont les trois coefficients (donc paramétres d'entrées).
    Sorties : x1,x2 sont les solutions de l'équations qui selon la valeur de code renvoyée par la fonction sont ou non significatifs.

    Lorsque je lance ce programme, l'interpréteur refuse de rentrer dans Resol2
    car il dit que x1 n'est pas définie.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    a=input("a=")
     
    while (a!=0) :
     
        b=input("b=")
        c=input("c=")
     
        code=Resol2(a,b,c,x1,x2)
     
        print ("")
     
        if (code==2) :
     
            print("Deux solutions distinctes :")
            print "x1= ", x1
            print "x2 = ", x2
     
        elif (code==1) :
     
                print("Une solution unique :")
                print "x = ", x1
        else :
     
            print ("Pas de solution réelle.")
     
        a=input("a=")
     
    print("Fin Algo")
    Bien entendu le corps de Resol2 est défini juste avant ces quelque lignes.
    Comment faut-il 'déclarer' x1 et x2 ?

    Par avance merci

    jcmic

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    L'approche est mauvaise; le passage d'arguments se fait en Python par copie (copie de référence, mais copie tout de même). Il n'y a pas de paramètres "en sortie" comme on peut en trouver en Pascal par exemple.

    C'est inutile, du fait qu'une fonction peut parfaitement retourner plusieurs valeurs, sous forme d'un tuple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def Resol2(a,b,c):
        # calcul de x1 et x2
        return x1,x2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # code appelant:
    x1, x2 = Resol2(a,b,c)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 3
    Par défaut
    Ok, merci pour la réponse. C'est bon à présent.

    En fait Resol2 renvoie 3 valeurs : code,x1 et x2 et l'algo fonctionne bien ainsi.
    En effet le principe de la gestion des paramétres de retours est différentes par rapport au Pascal ou au C.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Bienvenue sur le forum Python,



    J’estime que l’expression “paramètre de sortie“ est incorrecte.
    Un paramètre , c’est un symbole.
    Ce qu’une fonction renvoie, ce ne sont pas des symboles, ce sont des objets bien définis ayant des valeurs précises.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut

    http://fr.wikipedia.org/wiki/Paramètre

    [joke]
    je pourrais dire que "eyquem est un pinailleur" mais il me répondrait certainement que mon expression est incorrecte car eyquem, c'est un symbole
    [/joke]

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Je propose, à usage interne, l'expression "se faire eyquemer" devant signifier "se faire reprendre pour utilisation d'un langage non approprié".
    C'est plutôt un hommage qu'une moquerie car les interventions de notre cher eyquem sont la plupart du temps parfaitement justifiées.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  7. #7
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par eyquem Voir le message
    J’estime que l’expression “paramètre de sortie“ est incorrecte.
    En Prolog, pourtant, c'est la dénomination couramment utilisée pour les... paramètres en sorties.

Discussions similaires

  1. Paramètre de sortie
    Par yAnSoLo82 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 19/01/2006, 14h51
  2. [Débutant]Procédure avec paramètres entrée / sortie
    Par jeromejanson dans le forum Langage
    Réponses: 13
    Dernier message: 10/10/2005, 08h30
  3. Affectation du résultat d'une ps sans paramètre de sortie
    Par PERRIN38 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/08/2005, 15h43
  4. @@identity en paramètre de sortie
    Par navis84 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/04/2005, 20h50
  5. Récupération des paramètres en sortie d'1 procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/12/2004, 11h40

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