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 :

regles d'indentation python


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 16
    Points
    16
    Par défaut regles d'indentation python
    Bonjour a tous

    Je debute en Python...donc, forcement questions primaires pour les spécialistes...

    Je croyais avoir pigé les règles d'indentation...et je tombe sur qqch qui me semble bizarre ;
    Dans un petit bout de soft, j'ai implementé une fonction toto() a l'interieur de laquelle sont imbriquées deux boucles for
    ( par exemple, pour dessiner un damier d'echec, on fait 8 case horizontales puis on repete ca 8 fois verticalement...i gerant l'horizontalité, j la verticalité...
    ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def toto(x,y)
         for i in range (0,7)
             for j in range(0,7)
                 xxxx
                 xxxx
    je me fais jeter par l'interpreteur qui me dit que l'indentation de la deuxieme boucle est
    illégale et me force a faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def toto(x,y)
         for i in range(0,7)
             for j in range (0,7)
                 xxxx
                 xxxx
    Et ca, ca me choque !!!

  2. #2
    Membre extrêmement actif
    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
    Points : 1 658
    Points
    1 658
    Par défaut
    Bienvenue sur le forum.

    forcement questions primaires...
    Personnellement, les questions primaires ne me dérangent pas.
    C’est en réalité la qualité d’exposition des questions qui prime, pas leur niveau.



    Pour ton problème, je pense qu’il faut commencer par mettre les deux points ’:’ à la fin des lignes qui le réclament, et on verra.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def toto(x,y):
        for i in xrange(0,8):
            for j in xrange (0,8):
            xxxx
            xxxx

    Pour poster un code, utilise la fonction # , juste au dessus de la fenêtre d’écriture de post.


    range(0,7) c’est la liste [0,1,2,3,4,5,6]
    Cela peut s’écrire aussi range(7)


    xrange(8) n’est pas une liste, c’est un itérateur qui débite à la demande les élements de range(8). Pour une petite séquence comme cell-ci, ç n’a pas d’importance, mais pour des listes de 100000 éléments, ça devient indispensable car xrange(100000) ne crée pas un objet (c’est à dire une zone mémoire allouée à cette structure de données) dans la RAM, il crée simplement un objet iérateur. Tandis que range(100000) va créer l’objet liste range(100000) effectivement dans la RAM avant de commencer toute itération.
    Je bavarde, je bavarde, mais c’est super important. Ça te fera gagner du temps de savoir ça

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    merci pour ta reponse et tes suggestions...
    j'avais écrit le code exactement comme tu le spécifies ( et qui est rejeté...)

    Entre temps, je pense avoir identifié ce qui ne va pas...
    j'ai l'impression que nedit me fait des tours et a un comportement bizarre ( certaines fonctions ne semblent pas marcher dont le copier/coller et ll'indentation qui est de temps en temps farfelue.

    Je fouille plus avant et reviens sur toi si je coince
    ( pour info, je viens du monde du hard mais j'ai une petite experience de C...)

    Merci encore

  4. #4
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Citation Envoyé par eyquem Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def toto(x,y):
        for i in xrange(0,8):
            for j in xrange (0,8):
            xxxx
            xxxx
    Equyem voulait sans aucun doute, plutôt dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def toto(x,y):
        for i in xrange(0,8):
            for j in xrange (0,8):
                xxxx
                xxxx
    Si ça foire toujours, envoies-nous ton code et le message d'erreur

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Peut-être une incohérence entre l'utilisation des espaces et des tabulations pour l'indentation ?....

  6. #6
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    nedit est d'expérience pas un éditeur très fiable pour python du fait même de sa gestion des tabulations. Sous unix j'utilise Xemacs.

    Je te conseille de chercher un autre éditeur, peut-être dédié à des langages de programmation. Eclipse est peut-être trop lourd pour ton environnement mais je me régale avec le plugin pydev.

    A+
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    761
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 761
    Points : 2 101
    Points
    2 101
    Par défaut
    J'utilise PyPE, est ce qu'il est bien?

    Personnellement, je n'arrive pas a me dépêtrer des problème d'espace et indentation. C'est un vrai cauchemar.

  8. #8
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Citation Envoyé par pierre-y Voir le message
    Personnellement, je n'arrive pas a me dépêtrer des problème d'espace et indentation. C'est un vrai cauchemar.
    Le problème est que ce que l'on voit ne reflète pas forcément la réalité... Si tu as un éditeur dont la tabulation est réglée sur une largeur de 8 espaces, et que tu travailles sur un fichier qu'on t'a donnée ou la tabulation a été remplacée par 4 vrais espaces (par exemple) il faut t'attendre à de gros problèmes d'indentation. C'est aussi pour ça qu'on conseille de toujours indenter avec des espaces et non pas des tabulations.

    Avec la majorité des éditeurs actuels, la tabulation se configure. On peut affecter à la touche TAB une tabulation large de 8 espaces, une tabulation de 8 vrais espaces, etc... Il y a aussi souvent une fonctions qui permet d'afficher les espaces, les tabulations et les fins de lignes. Une fois que tu l'aura activée, tu comprendra la raison fort simple de tes cauchemars et tu tabuleras avec des espaces.

    A+

    Pfeuh

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pierre-y Voir le message
    J'utilise PyPE, est ce qu'il est bien?
    Pour beaucoup, l'éditeur employé est surtout une question de goût autant que d'efficacité.
    Le choix peut être dicté tant par des impératifs de production (le logiciel utilisé par ton patron, par exemple) que par des besoins spécifiques (énormité du code, ...).

    Personnellement, et pour un usage purement perso (et d'amateur), j'utilise Spyder. Il a tout ce qu'il faut pour rire et s'amuser avec Python.
    Je travaille avec Python 2.5, 2.7 et maintenant 3.2 sans problème.

    A+

Discussions similaires

  1. Probleme indentation python
    Par olibradore dans le forum Général Python
    Réponses: 4
    Dernier message: 20/04/2015, 15h03
  2. Eclipse: guide d'indentation pour Python [pour info]
    Par tyrtamos dans le forum EDI/RAD
    Réponses: 2
    Dernier message: 02/12/2014, 10h30
  3. indentation sous python shell
    Par aikiman dans le forum Général Python
    Réponses: 2
    Dernier message: 24/07/2010, 14h59
  4. conversion d'indentation dans un code python
    Par KINENVEU dans le forum Général Python
    Réponses: 2
    Dernier message: 26/02/2009, 05h04
  5. Merci de respecter les regles du forum
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 2
    Dernier message: 17/11/2005, 13h48

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