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 d'indentation python


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Points : 49
    Points
    49
    Par défaut erreur d'indentation python
    Bonjour à tous, je n'arrive pas a comprendre mon erreur pour ce code : je ne vois pas comment il vois cette erreur alors que j'ai tout essayé, je ne vois pas ou est l'erreur (unindent does not match any outer indentation level). Merci énormément de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def set_classifier (self) :            # Méthode à surcharger
     
                self.classifier = None
     
                pass

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 093
    Points
    7 093
    Par défaut
    Bonsoir,

    Peut-être mixes-tu l'indentation avec des espaces et des tabulations ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Le message d'erreur vous indique la ligne où çà se passe et un "unindent" sera fonction des lignes précédentes (que vous ne montrez pas).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Désolée, voici les lignes précédente, donc c'est un problème des ligne précédente qui ce répercute à la ligne def set_classifiers ?

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    # -*-coding:Utf-8 -*
     
    import os
    from os import system
    import cv2
     
    #la liste des classifiers d’opens que nous utiliserons
     
    TRAINSET_FACE_FRONTAL = "/usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_frontalface_default.xml"
     
    TRAINSET_FACE_PROFILE = " /usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_profileface.xml"
     
    TRAINSET_BODY_FULL = " /usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_fullbody.xml"
     
    #des paramètres liés à la taille des images
    DOWNSCALE = 1.1   #ratio appliqué à l’image. La valeur doit être >1
    MAX_SIZE = 800       #taille maximale de l’image en pixels
     
    class OpenCVGenericDetection:
     
           def _init_(self, image_path, archive_folder = "/tmp/", debug = False):
               # Construction de la classe
               #
               # init
                       #@image_path : le chemin d’une image sur le disque
                       #@archive_folder : dossier d’archive
                       #@debug : si true, affichage des images dans une fenêtre
                #
     
                logging.info ("Image : {0}".format(image_path))
                self.image_path = image_path
                self.archive_folder = archive_folder
                self.debug = debug
                self.items = []
                self.items_frames = []
     
                #on initialise le classifier
                self.set_classifier()
     
                #Afin de grouper les archives, nous allons utiliser un préfixe unique
                self.images_prefix = "{0}_{1}_" .format(datetime.datetime.now().strftime("%Y%m%d-%H%M%S-%f"), self._class_)
     
                #On charge l’image dans une frame
                self.frame = cv2.imread(image_path)
                logging.info("*Résolution de l’image*: '{0}x{1}' ".format(self.frame.shape[0], self.frame.shape[1]))
     
                #On vérifie si l’image est trop grande et si c’est le cas on calcule un ratio pour la réduire
                ratio = 1
                if self.frame.shape[1] > MAX_SIZE or self.frame.shape[0] > MAX_SIZE :
                    if self.frame.shape[1] / MAX_SIZE > self.frame.shape[0] / MAX_SIZE :
                        ratio = float (self.frame.shape[1]) / MAX_SIZE
                    else :
                        ratio = float(self.frame.shape[0]) / MAX_SIZE
     
                #Si l’image est trop grande on la retaille
                if ratio != 1:
                    newsize = (int(self.frame.shape[1] / ratio), int(self.frame.shape[0]/ ratio))
                    logging.info("Redimensionnement de l’image en : {0}".format(newsize))
                    self.frame = cv2.resize(self.frame, newsize)
     
                #Affichage de l’image originale
                if self.debug:
                    cv2.imshow( "preview", self.frame)
                    cv2.waitKey()
     
     
                pass
     
            def set_classifier (self) :            # Méthode à surcharger
     
                self.classifier = None
     
                pass

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 093
    Points
    7 093
    Par défaut
    Les pass ne sont que très rarement utiles, et dans votre code ça ne fait pas exception.

    Ligne 68 je pense que le pass est mal indenté. Mais vous pouvez par la même occasion les retirer.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  6. #6
    Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Même sans les pass j'ai toujours la même erreur

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par haku972 Voir le message
    Désolée, voici les lignes précédente, donc c'est un problème des ligne précédente qui ce répercute à la ligne def set_classifiers ?
    Le bloc précédent, c'est def _init_(...)
    Vous codez en Python.... donc vous devez savoir à quoi ressemble un code Python et les alignements des blocs que le langage impose. C'est expliqué dans tous les tutos.
    De même si vous voulez utiliser des classes, apprenez à écrire l'init proprement (çà aussi c'est dans les tutos).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Le bloc précédent, c'est def _init_(...)
    Vous codez en Python.... donc vous devez savoir à quoi ressemble un code Python et les alignements des blocs que le langage impose. C'est expliqué dans tous les tutos.
    De même si vous voulez utiliser des classes, apprenez à écrire l'init proprement (çà aussi c'est dans les tutos).
    Je suis encore désolé, mais je ne vois toujours pas ou j'ai fait l'erreur set_classifier me semble bien indenté par rapport a init, donc expliqué moi s'il vous plait

  9. #9
    Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Ah d'accord merci j'ai pu comprendre, je n'avais pas fait attention a vue d'oeil. Je vous remercie énormément, il me reste du parcourt pour m'améliorer

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

Discussions similaires

  1. regles d'indentation python
    Par alcofribas dans le forum Général Python
    Réponses: 8
    Dernier message: 13/11/2012, 16h37
  2. Erreur _strptime_time avec python 2.6
    Par Sinclair dans le forum Django
    Réponses: 0
    Dernier message: 09/09/2010, 14h15
  3. Repérer les types d'erreurs levées par Python
    Par rambc dans le forum Général Python
    Réponses: 14
    Dernier message: 09/10/2009, 00h04
  4. erreur inconnu dans python
    Par ghadroud dans le forum Général Python
    Réponses: 4
    Dernier message: 04/03/2009, 09h58
  5. erreur inconnue sous python
    Par toinoudu85 dans le forum Général Python
    Réponses: 4
    Dernier message: 17/12/2008, 22h07

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