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 :

Fonction flag python


Sujet :

Python

  1. #21
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    mais la littérature ...
    Cette page me laisse sceptique
    - l'exemple est très particulier
    - "le flag est un booléan" :
    Pour moi non, c'est la condition sur le flag qui doit être booléenne

    1)
    Si, je lis un fichier ou entete http ou ..., je vais avoir une variable texte. Je ne vais pas la convertir en booléan si je ne l'utilise que immédiatement après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    flag = line.split("=")[1]
    if flag == "On":    # ou if flag == CONST_ON:
    Oui, je peux écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    flag = True if line.split("=")[1] == "On" else False
    if flag:
    Dans le cas 1, j'ai exactement la même notion de flag sans valeur booléenne, mais c'est juste un changement de style de codage. Avec la gestion des erreurs (et autres?), il est même possible que parfois le cas 1 soit meilleur.

    2)
    Même chose si l'on a plusieurs valeurs dans le flag (syntaxe simili python), c'est la condition qui est booléenne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ENUM.write and ENUM.append) in flag:
    en fait on va créer une "constante" à base de x constantes pour la comparer au flag


    Mais comme une condition est toujours booléenne tous les if sur une variable est un flag ????? puisque non,
    le flag est la variable dans une condition (booléenne) entre cette variable et une constante qui conduit à un embranchement
    ps: zut, je ne peux pas écrire "une condition if (ou case) entre variable et constante" vu l'exemple donné avec "while"
    $moi= ( !== ) ? : ;

  2. #22
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par papajoker Voir le message
    le flag est la variable dans une condition (booléenne) entre cette variable et une constante qui conduit à un embranchement
    "flag" est que un machin sorti de la vie quotidienne pour traduire une idée: ce qu'on veut réaliser ou expliquer un bout de code.

    En tant que mot, il renvoie a une culture américaine que nous n'avons pas et sa traduction par "drapeau" est assez réductrice (voir comment se traduit flag en français).

    Si on appelle "flag" toute variable testée à un moment ou a un autre, ça ne va pas aider à clarifier ce qu'on cherche à raconter et il faudra choisir d'autres mots.

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

  3. #23
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Citation Envoyé par wiztricks Voir le message
    sa traduction par "drapeau" est assez réductrice
    Témoin peut-être?
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  4. #24
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Pour revenir à plus terre à terre (puisque pas de réponse du demandeur initial)

    Une réponse avec la class Flag

    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
    from enum import Flag
     
    class IsPair:
        pass
     
    class IsPair(Flag):
        PAIR = "oui"
        IMPAIR = "non"
     
        @classmethod
        def fabrique(cls, i: int) -> IsPair:
            return cls.IMPAIR if i % 2 else cls.PAIR
     
    for i in range(1, 11):
        flag = IsPair.fabrique(i)
        # if flag == IsPair.PAIR print("pair:", i)    # si il faut avoir bifurcation de code
        print(i, flag.value)
        # print(i, IsPair.fabrique(i).value) # ou directement, mais bon plus sympa d'utiliser une variable "flag"
    utilité d'un énum ici ... mais pourquoi pas pour illustrer un cours après la découverte des enums (puisque en fin d'année, cela semble relativement logique)
    Et, pas trouver un intéret(/code) d'utiliser un Flag plutot qu'un Enum ???
    $moi= ( !== ) ? : ;

  5. #25
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par papajoker Voir le message
    Et, pas trouver un intéret(/code) d'utiliser un Flag plutot qu'un Enum ???
    pair/impair, c'est booléen et le changement d'état d'un seul bit.

    Si on prend la classe Flag d'enum en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> f = Flag('parité', 'pair impair')
    on se retrouve avec l'équivalent de 2 bits indépendants dont on va pouvoir faire le OU.

    Ce qui permet d'inventer ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> f.pair | f.impair
    <parité.impair|pair: 3>
    Pas sur que ce soit raisonnable.

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

Discussions similaires

  1. [Python 3.X] executer un exe (tel une fonction) sous python
    Par raph_prog dans le forum Général Python
    Réponses: 10
    Dernier message: 05/10/2017, 14h03
  2. [Python 3.X] L'espace mémoire (nombre de bits) utilisé par un programme (ou fonction) en python
    Par mr.labhalla dans le forum Général Python
    Réponses: 1
    Dernier message: 28/01/2016, 15h05
  3. Exécution séquentielle de fonctions en python
    Par cabaflo dans le forum Général Python
    Réponses: 1
    Dernier message: 03/07/2013, 20h15
  4. Fonction eval() Python
    Par ToXiCitY2211 dans le forum Général Python
    Réponses: 1
    Dernier message: 05/01/2011, 01h07
  5. Appel de fonction/script python via PHP
    Par rastalien dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/02/2008, 18h12

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