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 :

Variable et file=open


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Variable et file=open
    Bonjour,

    J'ai une fonction avec des variables en entrée. J'arrive a utiliser ces variables avant l'ouverture d'un fichier par
    file=open(path,"r")
    test=csv.reader(file,quoting=csv.QUOTE_NONNUMERIC)


    Par contre, après le passage du file=open, les variables en entrées (q, w,Dm,Db,np) de la fonction ne sont plus reconnues.

    Ci après la fonction :

    def Coef_EJMA(q,w,t,Dm,Db,np):
    # Calcul des ratios EJMA pour
    #
    vx=1.82*(q/4)/(Dm*t*(Db/Dm)**0.5)
    vy=2*(q/4)/w
    print("Valeur vx: \n", vx)
    print("Valeur vy: \n", vy)
    #
    # chargement du CSV
    #
    path="cp_ejma.csv"
    file=open(path,"r")
    test=csv.reader(file,quoting=csv.QUOTE_NONNUMERIC)
    file.close()
    #
    #Conversion du CSV en tableau
    data2 = [data for data in test]
    data_array = np.asarray(data2, dtype = float)


    Je vous remercie de votre aide, déjà quelques jours passés dessus et je n'ai toujours pas compris d'où vient le problème.

    Cordialement

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Faut voir ton indentation, mais tant que tu n'utilises pas la balise code du forum (le bouton # quand tu rédige ton message) on ne pourra rien te dire à ce niveau là.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Portée des variables après file=open(path,"r")
    Bonjour,

    Merci pour ce conseil.

    Le code est présenté ci-dessous comme souhaité.
    Effectivement c'est peut-être un problème d'indentation. Avez-vous un document ou un site expliquant l'indentation en Python, cette notion n'est pas très clair pour moi ?

    Je rappelle le problème, les variables en entrée de la fonction ne sont plus disponibles après avoir passé la fonction file=open(path,"r").

    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
    31
    32
    33
    34
    #
    # Calcul des ratios EJMA pour
    #
     vx=1.82*(q/4)/(Dm*t*(Db/Dm)**0.5)
     vy=2*(q/4)/w
     print("Valeur vx: \n", vx)
     print("Valeur vy: \n", vy)
    #
    #
    # chargement du CSV
    #
     path="cp_ejma.csv"
     file=open(path,"r")
     test=csv.reader(file,quoting=csv.QUOTE_NONNUMERIC)
     file.close()
        #
        #Conversion du CSV en tableau
     data2 = [data for data in test]
     data_array = np.asarray(data2, dtype = float)
        #
        # attribution d'une colonne du tableau à une variable (x,y et z)
     x=data_array[:,0]
     y=data_array[:,1]
     z=data_array[:,2]
     
    ################################################
    # Définition du maillage pour l'interpolation
    xi = np.linspace(0.2,4.1,200)
    yi = np.linspace(0.00,1.1,200)
    # grid the data.
    #En fonction des entrées utilisateurs, la fonction renvoi les coeficients
    # Cp, Cf ou Cd
        C = griddata((x,y),z,(vx,vy), method='cubic')
    print ("Valeur C: \n", C)
    Je vous remercie de votre aide.

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Effectivement votre indentation c'est du grand n'importe quoi. C'est un concept fondamental en Python et vous ne pouvez absolument pas passez outre pour développer quoi que ce soit en Python, puisque l'indentation sert à définir les blocs d'instructions

    https://python.developpez.com/cours/...n/?page=page_5

    Ensuite là on ne peut pas exécuter votre code (point d enouveau bloquant pour pouvoir vous aider plus). Il manque des valeurs de paramètre et des imports.

    Précisez nous aussi à quelle variable vous voudriez avoir accès, et à quelle endroit dans le code vous voudriez y accéder (quitte à commenter la ligne que vous aviez taper et qui vous renvoie une erreur)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour je ne comprend peut être pas trop ton problème mais si j'ai compris juste un peu
    les variables de tes fonctions tu peux les déclarer en global cela va palier ton problème à mon avis
    maintenant peut être que je ne comprend toujours pas ton problème je te demanderai de le reformuler encore afin que je puisse mieux t'aider

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Citation Envoyé par force_tranquille Voir le message
    Bonjour je ne comprend peut être pas trop ton problème mais si j'ai compris juste un peu
    les variables de tes fonctions tu peux les déclarer en global cela va palier ton problème à mon avis
    maintenant peut être que je ne comprend toujours pas ton problème je te demanderai de le reformuler encore afin que je puisse mieux t'aider
    Il ne faut JAMAIS utiliser global. Surtout quand on débute en plus ! Et en plus là il n'a pas construit de fonction, donc ca lui serait inutile.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    je sais très bien que global n'est pas à conseiller mais du fait que je pensais qu'il avais réellement rédiger une fonction je savais que cela pouvais l'aider
    mais si il n'a pas creé réellement de fonction global ne lui servira à rien il lui faudra donc obligatoirement revoir l'indentation

Discussions similaires

  1. VC6 - Plantage Visual Studio lors du "File / Open ..."
    Par lhpp dans le forum Visual C++
    Réponses: 8
    Dernier message: 27/01/2011, 00h17
  2. Envoyer plusieurs variables dans le open
    Par Eva01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2009, 12h18
  3. File open - une subtilité ?
    Par coberle dans le forum C++
    Réponses: 4
    Dernier message: 18/03/2009, 19h00
  4. [PHP to ASP.NET] Je ne trouve pas la commande File>Open>Convert ?
    Par welwel86 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 08/08/2008, 17h09
  5. problème de variables / . MAT files
    Par jocqfd dans le forum MATLAB
    Réponses: 8
    Dernier message: 05/02/2008, 11h20

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