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 :

faire un "return" de fonction dans un boucle "for"


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut faire un "return" de fonction dans un boucle "for"
    Bonjour a tous,

    J'ai l'habitude de faire quelque de similaire en Perl mais je n'y arrive pas en Python:

    Je voudrais utiliser un "return" a l'interieur d'une boule for de maniere ce que ma sortie soit differente a chaque iteration:
    j'ai un fichier texte nomme "burnupvalues.txt" qui contient:
    0.000000E+00
    2.000000E-02
    2.000000E-01
    5.000000E-01
    7.500000E-01
    1.000000E+00
    .
    .
    .
    6.400000E+01
    6.600000E+01
    6.800000E+01
    7.000000E+01


    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
    29
    30
     
    def read_hmog_xs(lines):
     
        nbroad = 2
        adf[0]=10
        adf[1]=25
    for broad in range(nbroad):
        for ibroad in range(nbroad) :
            output['xs_diffusion'+str(ibroad+1)] = xs_diffusion[ibroad]/adf[ibroad]
            if ibroad == 1:
                return output 
     
     
    ###starts Here
    ftFile = open('burnupvalues.txt',"r")
        for line in ftFile.readlines():
        vals=line
        vals=float(vals)
        vals="%.1f" % (vals)
        vals=vals+'-nemt'
        ftFile.close()
     
        output={}
        tmpDict['fuelT'] = 850.0
        tmpDict.update(read_hmog_xs(lines))
        output.append(tmpDict)
     
            lib = open(newt+vals,"w")
            lib.write(output)
             libnemtab.close()
    le code est bien plus long et je dois faire des operation intermediaires. Mais est il possible de realiser de telles boucles avec "return" imbriquer a l'interieur?

    Merci beaucoup

    Pascalou

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Un return au milieu d'une boucle interrompt la fonction. Pour ce faire ce que vous entendez, transformez votre fonction en générateur
    au moyen de l'instruction yield Ensuite, utilisez la dans une boucle for.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2011, 15h30
  2. Mettre le return d'une fonction dans une balise input
    Par khaled.mann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2009, 06h55
  3. Changer un paramètre de fonction dans une boucle
    Par DeezerD dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 24/01/2008, 14h23
  4. Réponses: 10
    Dernier message: 07/01/2007, 12h03
  5. Appel d'une fonction dans uns boucle d'un tableau
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/02/2005, 15h37

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