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 :

Grouper les mots clés du langage Python par catégories


Sujet :

Python

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut Grouper les mots clés du langage Python par catégories
    Bonjour,
    pour améliorer la coloration syntaxique des codes, je me suis dit qu'il fallait regrouper les mots clés par catégories. Pour le langage Python, je suis arrivé à ce qui suit. Le but est de produire assez de catégories mais pas trop non plus...
    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
    Test, boucle & co
        if,elif,else,
        is,not,and,or,
        for,in,while,
        assert,try,except,finally
     
    Action (des choses qui font quelque chose)
        from,import,as,
        global,class,
        def,del,
        exec,lambda,
        print,
        range,
        return,yield,
        with,access,raise,
        continue,pass,break,
     
    Constant
        True,False
    Qu'en pensez-vous ? Y-a-t-il des incohérences ? Des oublis ? Des catégories à ajouter ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Bonjour rambc,

    je crois qu'il n'y aura toujours une part d'arbitraire dans un partitionnement de ce genre, chacun aura des goûts différents. Et puis pour juger il faudrait voir un code coloré...

    Certains mots-clés ont plusieurs utilisations distinctes, et je vois que tu as été prudent en regroupant les catégories auxquels ils appartiennent. Comme in, qui s'utilise avec for ainsi que comme opérateur au même niveau que is, and, or, etc. Si tu les avais mis dans des catégories différents, il faudrait colorer in différemment en fonction du contexte, mais cela serait sans doute trop compliqué vu qu'il faudrait une analyse syntaxique... Idem pour as, qui s'utilise avec import et avec with.

    range n'est pas un mot-clé, mais un built-in; je crois qu'il vaut mieux le retirer de cette liste. Et access, ça existe ? Je ne connais pas ce mot-clé.

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Citation Envoyé par dividee Voir le message
    range n'est pas un mot-clé, mais un built-in; je crois qu'il vaut mieux le retirer de cette liste.
    Hum... Peux-tu préciser un peu ?

    Citation Envoyé par dividee Voir le message
    Et access, ça existe ? Je ne connais pas ce mot-clé.
    J'en sais rien... En fait, il est apparu dans un package LaTeX que je souhaite améliorer un peu. Va falloir mener l'enquête...

  4. #4
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Bonjour dividee et merci (on n'est pas des sauvages...).

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Citation Envoyé par rambc Voir le message
    Hum... Peux-tu préciser un peu ?
    Euh... Ben un mot-clé a un statut particulier dans le langage, il est reconnu par l'analyseur syntaxe comme tel, et ne peut pas être redéfini. Ce n'est pas le cas de range, qui est seulement un built-in, c'est à dire une fonction standard qu'il ne faut pas importer (tout comme list, open, len, ...).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> in = 2
    Traceback (  File "<interactive input>", line 1
        in = 2
         ^
    SyntaxError: invalid syntax
    >>> range = 2
    >>> # pas d'erreur
    En fait si range n'était pas fourni, il pourrait être écrit sans trop de difficultés.

    Et le cas de True et False est un peu particulier également. En Python 2.x, ce ne sont pas des mots-clés mais des built-ins. En Python 3, ils sont devenu des mots-clés. Mais dans ce cas, je dirais: autant prendre les devants et les considérer, pour la coloration syntaxique, comme des mots-clés, même en Python 2.x.

    Il y a aussi None, qui, je pense, doit-être considéré comme un mot-clé.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 357
    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 357
    Points : 36 886
    Points
    36 886
    Par défaut
    Salut,
    La liste des mots clés python est dans documentée dans "The Python Language Reference" et pour la version 3.2, ici
    On y trouve:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    False      class      finally    is         return
    None       continue   for        lambda     try
    True       def        from       nonlocal   while
    and        del        global     not        with
    as         elif       if         or         yield
    assert     else       import     pass
    break      except     in         raise
    Pour les builtins, il y a des fonctions et des constantes.
    Dans les constantes, nous y retrouvons False, True, None.
    Elles ont, de ce fait, un statut assez particulier puisqu'on ne peut pas les redéfinir.
    Mais Emacs colore les builtins comment les mots clés, ce qui n'est pas une mauvaise chose.
    - W

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Bonsoir wiztricks et merci pour les liens.

    L'idéal serait de ne plus colorer range dès que l'on tombe sur quelque chose comme range = 2 par exemple.

    Tout ceci m'amène donc à ajouter deux catégories : l'une pour les fonctions modifiables, et une autre pour les constantes modifiables. Va falloir que j'étudie ce qu'il se passe pour d'autres langages... J'arrive donc à ce qui suit.
    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
    Test, boucle & co
        if,elif,else,
        is,not,and,or,
        for,in,while,
        assert,try,except,finally
     
    Action (des choses qui font quelque chose)
        from,import,as,
        global,nonlocal,
        class,def,
        del,
        lambda,
        return,yield,
        with,access,raise,
        continue,pass,break,
     
    Constante
        True,False,
        None
     
    Action modifiable
        abs,dict,help,min,setattr,
        all,dir,hex,next,slice,
        any,divmod,id,object,sorted,
        ascii,enumerate,input,oct,staticmethod,
        bin,eval,int,open,str,
        bool,exec,isinstance,ord,sum,
        bytearray,filter,issubclass,pow,super,
        bytes,float,iter,print,tuple,
        callable,format,len,property,type,
        chr,frozenset,list,range,vars,
        classmethod,getattr,locals,repr,zip,
        compile,globals,map,reversed,__import__,
        complex,hasattr,max,round,
         delattr,hash,memoryview,set
     
    Constante modifiable
        NotImplemented,Ellipsis,__debug__

  8. #8
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir rambc,

    Citation Envoyé par rambc Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Test, boucle & co
        if,elif,else,
        is,not,and,or,
        for,in,while,
        assert,try,except,finally
    Juste pour dire que j'ai du mal a associer boucle et test.

    @+

  9. #9
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Bonsoir PauseKawa,
    utiliser deux couleurs différentes pour les tests et les boucles n'apporteraient rien de plus que d'augmenter inutilement le nombre de couleurs. Avoir trop de couleurs seraient contre productifs. C'est pour cette raison que j'ai regroupé ces deux types d'actions.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 357
    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 357
    Points : 36 886
    Points
    36 886
    Par défaut
    Salut,

    Citation Envoyé par rambc Voir le message
    L'idéal serait de ne plus colorer range dès que l'on tombe sur quelque chose comme range = 2 par exemple.
    Si c'est ce que vous avez compris j'aurais mieux fait de me taire
    A mon sens le but de la coloration est d'éviter les ennuis i.e. me signaler que je suis peut être en train de faire une bêtise...
    Si on ne me montre plus la chose après que... snif.
    Enfin c'était mon idée, maintenant c'est vous qui tenez le pinceau.
    Cordialement,
    - W

  11. #11
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Très bon argument, je signe tout de suite ! En plus ceci va me faciliter la tâche.

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par rambc Voir le message
    Bonsoir PauseKawa,
    utiliser deux couleurs différentes pour les tests et les boucles n'apporteraient rien de plus que d'augmenter inutilement le nombre de couleurs. Avoir trop de couleurs seraient contre productifs. C'est pour cette raison que j'ai regroupé ces deux types d'actions.
    Bonjour!
    Les test boucles and co ne sont-ils pas ce qu'on appelle parfois des structures de contrôle?

  13. #13
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Peur-être... Je parlerais plutôt de flux.

Discussions similaires

  1. Python introduit les mots clés async et await
    Par Amine Horseman dans le forum Général Python
    Réponses: 6
    Dernier message: 09/05/2015, 21h59
  2. PLY: Intégrer les mots clés Python à mon langage
    Par dimele dans le forum Général Python
    Réponses: 3
    Dernier message: 23/06/2014, 14h25
  3. Comment classer les mots clés des différents langages existants ?
    Par rambc dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 01/02/2010, 18h45
  4. Récupérer les mot-clés Google, est-ce possible ?
    Par kurtalis dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/05/2006, 18h48
  5. Auto-complétion pour les mots clés Begin/End
    Par Alex Laforest dans le forum EDI
    Réponses: 2
    Dernier message: 21/09/2005, 21h26

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