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 :

Gestion des attributs d'un str.format


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2016
    Messages : 74
    Points : 64
    Points
    64
    Par défaut Gestion des attributs d'un str.format
    Bonjour,
    Pouvez vous m'aidez a comprendre le fonctionnement de str.format?
    La doc est un peu obscure pour moi et je ne trouve pas d'exemple. En vous remerciant d'avance.

    Voici un petit code exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    lib={"l1":"tl1",
         "l2":"tl2",
         "l3":"tl3"}
    txt1='text1:{lib[l1]}{lib[l2]}{lib[l3]}'
    txt2='text2:{autre}{lib[l1]}{lib[l2]}{lib[l3]}'
     
    print(txt1.format(lib=lib))
    #print(txt2.format(lib=lib)) #Cet ligne lève une erreur
    Mes questions avec str.format:
    Est il possible de géré un attribut absent autrement qu'en levant une erreur?
    Est il possible d'obtenir l'ensemble des attributs disponible dans un texte?

  2. #2
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 828
    Points
    828
    Par défaut
    Est il possible de géré un attribut absent autrement qu'en levant une erreur?

    un exemple ici :
    https://docs.python.org/3/library/st...str.format_map

    Est il possible d'obtenir l'ensemble des attributs disponible dans un texte ?
    Pas à ma connaissance sauf en passant par l'utilisation d'une regexp qui cherche les noms situés entre {}

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2016
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    En vous remerciant.
    voici le code en reponse.
    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
     
    class Default(dict):
     
        def __missing__(self, key):
     
            return ""
     
    lib={"l1":"tl1",
         "l2":"tl2",
         "l3":"tl3"}
    txt1='text1:{lib[l1]}{lib[l2]}{lib[l3]}'
    txt2='text2:{autre}{lib[l1]}{lib[l2]}{lib[l3]}'
     
    print(txt1.format(lib=lib))
    print(txt2.format_map(Default(lib=lib)))

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2016
    Messages : 74
    Points : 64
    Points
    64
    Par défaut
    Bonjour,
    je revient sur mon problème de gestion des attribut. de str.format pour un cas que je n'arrive pas a résoudre:
    Comment passer un attribut au format liste?
    Voici mon code d'essais: Le print text4 génère une erreur que je ne sais pas géré.
    En vous remerciant.
    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
     
    class DelDic(dict):
     
        def __missing__(self, key):
     
            return ""
    class PassDic(dict):
    	# suppression des defauts clee absente dans les str.format
        def __missing__(self, key):
     
            return "{"+key+"}"
     
     
    lib={"l1":"tl1",
         "l2":"tl2",
         "l3":"tl3"}
    lib2={"html":{"l1":"t2l1t",
                "l2":"t2l2",
                "l3":"e"},
        "l2":"tl2",
        "l3":"g"}
    txt1='text1:{lib[l1]}{lib[l2]}{lib[l3]}'
    txt2='text2:{autre}{lib[l1]}{lib[l2]}{lib[l3]}'
    txt3='''dTetePage:  <h1>{titre}</h1>{autre}
    '''
    txt4='''dTetePage:  <h1>{titre}</h1>{autre}
    {lib[l1]}'''
     
    print('txt1: ',txt1.format(lib=lib))
    print('txt2: ',txt2.format_map(DelDic(lib=lib)))
    print('txt1: ',txt1.format_map(DelDic(lib=lib2["html"])))
    print('txt2: ',txt2.format_map(PassDic(lib=lib)))
    print('txt3: ',txt3.format_map(PassDic(titre='texte')))
    print('txt4: ',txt4.format_map(PassDic(titre='texte')))

Discussions similaires

  1. [SimpleXML] Parser XML gestion des attributs
    Par Petitpont dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/10/2009, 23h24
  2. gestion des attributs visuels items
    Par hichcasa dans le forum Forms
    Réponses: 1
    Dernier message: 16/09/2009, 15h59
  3. probleme de gestion des attributs en session
    Par riadhhwajdii dans le forum JSF
    Réponses: 0
    Dernier message: 21/08/2009, 12h54
  4. Réponses: 2
    Dernier message: 01/07/2009, 12h05
  5. Gestion des attributs hidden et visible
    Par Jibees dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 13h58

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