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 :

Erreur positional arguments


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Erreur positional arguments
    Bonjour,

    je me suis mis à la programmation il y a quelques temps et développe actuellement quelques programmes. J'ai tout appris et résoud mes problèmes avec internet (notamment avec ce merveilleux site) mais pour la première fois je ne comprend pas une erreur:

    j'ai définie une fonction qui va chercher une valeur dans un fichier et renvoie si c'est du type float ou non

    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
     
    def file_is_float(path_to_file, file): #regarde si un fichier existe et si son contenu (1ère ligne) est un entier
            if fonctions.file_exists(path_to_file, file):
                linecache.clearcache()
                var = linecache.getline(path_to_file + '/' + file, 1)
                print(var[0])
                try:
                    var = float(var)
                    print("float")
                except:
                    print("var isn't a float")
                    pass
            else:
                var = 0
            print("Int ?", file,  var)
            return var
     
    def file_is_almost_float(path_to_file, file, line):  #regarde si un fichier existe et si son contenu à la ligne line est un entier: renvoi 1 si vrai et 0 si faux
            var = 0
            if fonctions.file_is_float(path_to_file, file, line):
                var = 1
            else:
                linecache.clearcache()
                var = linecache.getline(path_to_file + '/' + file, line)
                print(var)
                if len(var) > 0:
                    try:
                        float(var[0:len(var)-1])
                    except:
                        return 0
     
            print("Float ?", file, var)
            return var
    mais lorsque j'exécute la fonction avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     coef_saison = fonctions.get_line_float(path_to_session_vars, 'coef_saison_sfrtt', ligne_coef, 1)
    voici le message d'erreur:

    TypeError: file_is_float() takes 2 positional arguments but 3 were given

    Pouvez-vous m'adier ?
    Merci,
    daufinsyd

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par daufinsyd Voir le message
    Bonjour,

    je me suis mis à la programmation il y a quelques temps et développe actuellement quelques programmes. J'ai tout appris et résoud mes problèmes avec internet (notamment avec ce merveilleux site) mais pour la première fois je ne comprend pas une erreur:

    j'ai définie une fonction qui va chercher une valeur dans un fichier et renvoie si c'est du type float ou non

    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
     
    def file_is_float(path_to_file, file): #regarde si un fichier existe et si son contenu (1ère ligne) est un entier
            if fonctions.file_exists(path_to_file, file):
                linecache.clearcache()
                var = linecache.getline(path_to_file + '/' + file, 1)
                print(var[0])
                try:
                    var = float(var)
                    print("float")
                except:
                    print("var isn't a float")
                    pass
            else:
                var = 0
            print("Int ?", file,  var)
            return var
     
    def file_is_almost_float(path_to_file, file, line):  #regarde si un fichier existe et si son contenu à la ligne line est un entier: renvoi 1 si vrai et 0 si faux
            var = 0
            if fonctions.file_is_float(path_to_file, file, line):
                var = 1
            else:
                linecache.clearcache()
                var = linecache.getline(path_to_file + '/' + file, line)
                print(var)
                if len(var) > 0:
                    try:
                        float(var[0:len(var)-1])
                    except:
                        return 0
     
            print("Float ?", file, var)
            return var
    mais lorsque j'exécute la fonction avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     coef_saison = fonctions.get_line_float(path_to_session_vars, 'coef_saison_sfrtt', ligne_coef, 1)
    voici le message d'erreur:




    Pouvez-vous m'adier ?
    Merci,
    daufinsyd
    Bonjour,

    Il manque le code de get_line_float() + traceback message d'erreur complet pour pouvoir se prononcer.

    Merci.

    @+.

  3. #3
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Comptons ensemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if fonctions.file_is_float(path_to_file, file, line)
    path_to_file + file + line = 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    def file_is_float(path_to_file, file):
    path_to_file + file = 2

    Ha ben oui, Python a encore raison !


    Au fait c'est quoi fonctions. dans ton code ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    oups oui pardon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    def get_line_float(path, fichier, line, exceptNumber): 
            os.chdir(path)
            if fonctions.file_is_int(path, fichier, line) == 1:
                linecache.clearcache()
                var = float(linecache.getline(fichier, line))
            elif fonctions.file_is_almost_float(path, fichier, line):
                linecache.clearcache()
                var = linecache.getline(fichier, line)
                var = float(var[0:len(var)-1])
            else:
                var = exceptNumber
            return var
    Et je viens de me rendre compte (car oui maintenant ça marche) qu'il manquait == 1 à la boucle if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if fonctions.file_is_int(path, fichier, line) == 1 :
    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
     
    Traceback (most recent call last):
    File ? coef_saison_sfrtt False
      File "/home/sydney/Documents/Informatique/GEMS/pyqt/gems_qt2.py", line 523, in <lambda>
    Int ? coef_saison_sfrtt 0
        self.actionLancer_la_simulation.triggered.connect(lambda m = str(m) : Simulation.start(mois, b))
      File "/home/sydney/Documents/Informatique/GEMS/pyqt/gems_qt2.py", line 1088, in start
        Simulation.calcul_ventes_frtt(m, b)
      File "/home/sydney/Documents/Informatique/GEMS/pyqt/gems_qt2.py", line 1843, in calcul_ventes_frtt
        coef_saison = fonctions.get_line_float(path_to_session_vars, 'coef_saison_sfrtt', ligne_coef, 1)
      File "/home/sydney/Documents/Informatique/GEMS/pyqt/gems_qt2.py", line 1022, in get_line_float
        elif fonctions.file_is_almost_float(path, fichier, line):
      File "/home/sydney/Documents/Informatique/GEMS/pyqt/gems_qt2.py", line 980, in file_is_almost_float
        if fonctions.file_is_float(path_to_file, file, line):
    TypeError: file_is_float() takes 2 positional arguments but 3 were given
    EDIT:

    pardon je n'ai pas vu le message précédent j'ai du m'absenter un peu

    Ouiii !! ça marche !
    merci beaucoup, ça faisait plusieurs jours que je cherchais l'erreur pour une erreur aussi bête.
    Merci beaucoup ! (faut vraiment que je fasse beaucoup plus attention !)
    merci pour vos réponses, en espérant que la prochaine fois que je poste ce sera pour aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur d'argument dans une fonction
    Par rouliane dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/12/2006, 11h52
  2. Erreur supplied argument is not a valid MySQL resource
    Par abidi_niz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/09/2006, 13h26
  3. mysqli_num_rows() --> erreur d'argument
    Par Invité dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 26/08/2006, 17h38
  4. Erreur d'argument avec runqq
    Par janviech dans le forum Fortran
    Réponses: 3
    Dernier message: 11/08/2006, 09h19
  5. Erreur "Runaway argument"
    Par Doom dans le forum Erreurs - Avertissements
    Réponses: 2
    Dernier message: 02/06/2006, 15h29

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