print ad
# {'Descriptif': 'Abcde', 'Code': 'AAA', 'Montant': 1234.5599999999999}
car je trouve cela très lisible, notamment par l'absence de caractères
parasites (guillemets, apostrophes, accolades, etc.)
Malheureusement, ça ne passe, dès qu'il y a des caractères non "Ascii de
base" ; par exemple, des accents. Ainsi, utiliser un "E" accent aigu pour
l'année, donne :
J'ai cherché en utilisant l'encodage HTML (et en modifiant la fonction),
mais ça ne passe pas (et la lisibilité, et surtout la facilité d'écriture),
en prend un coup :
Idem en utilisant un encodage "à la LaTex" (\'e), ou l'unicode-HTML
(é)
Avant de me lancer dans un pseudo-encodage maison, j'aimerais savoir si
quelqu'un connaîtrait-il un moyen tout-prêt, aussi lisible/facile, de
construire des dictionnaires, mais qui accepte les accents (et,
éventuellement, d'autres caractères particuliers, tel l'espace).
Je n'arrive pas à trouver dans la doc les explications concernant le **
que je ne connaissais pas.
A l'appel d'une fonction : - ** explose un dictionnaire en autant de paramètres nommés et affectés qu'il y a d'entrées dans le dictionnaire d={"valeur1":10, "valeur2":22) fonction(d)
est équivalent à : fonction (valeur1, valeur2")
- * explose une liste en autant de valeurs qu'il y a d'entrées dans la liste l=[10, 22] fonction(l)
est équivalent à : fonction (10, 22)
Lors de la déclaration d'une fonction : - ** permet de récupérer des arguments nommés (la quantité dépend de l'appel) - * permet de récupérer une liste d'argument non nommés (la quantité dépend de l'appel)
Il y a des règles à respecter lors de la définition d'une fonction avec cette syntaxe. Les arguments nommés doivent être les premiers, ensuite, *, ensuite **.
Par exemple : class MyClass(BaseClass): def __init__(self, param1, param2, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) . . .
Nicolas
def setdi(**data):
return data
Je n'arrive pas à trouver dans la doc les explications concernant le **
que je ne connaissais pas.
A l'appel d'une fonction :
- ** explose un dictionnaire en autant de paramètres nommés et affectés qu'il y a d'entrées dans le dictionnaire
d={"valeur1":10, "valeur2":22)
fonction(d)
est équivalent à :
fonction (valeur1, valeur2")
- * explose une liste en autant de valeurs qu'il y a d'entrées dans la liste
l=[10, 22]
fonction(l)
est équivalent à :
fonction (10, 22)
Lors de la déclaration d'une fonction :
- ** permet de récupérer des arguments nommés (la quantité dépend de l'appel)
- * permet de récupérer une liste d'argument non nommés (la quantité dépend de l'appel)
Il y a des règles à respecter lors de la définition d'une fonction avec cette syntaxe.
Les arguments nommés doivent être les premiers, ensuite, *, ensuite **.
Par exemple :
class MyClass(BaseClass):
def __init__(self, param1, param2, *args, **kwargs):
BaseClass.__init__(self, *args, **kwargs)
.
.
.
Je n'arrive pas à trouver dans la doc les explications concernant le **
que je ne connaissais pas.
A l'appel d'une fonction : - ** explose un dictionnaire en autant de paramètres nommés et affectés qu'il y a d'entrées dans le dictionnaire d={"valeur1":10, "valeur2":22) fonction(d)
est équivalent à : fonction (valeur1, valeur2")
- * explose une liste en autant de valeurs qu'il y a d'entrées dans la liste l=[10, 22] fonction(l)
est équivalent à : fonction (10, 22)
Lors de la déclaration d'une fonction : - ** permet de récupérer des arguments nommés (la quantité dépend de l'appel) - * permet de récupérer une liste d'argument non nommés (la quantité dépend de l'appel)
Il y a des règles à respecter lors de la définition d'une fonction avec cette syntaxe. Les arguments nommés doivent être les premiers, ensuite, *, ensuite **.
Par exemple : class MyClass(BaseClass): def __init__(self, param1, param2, *args, **kwargs): BaseClass.__init__(self, *args, **kwargs) . . .
Nicolas
Méta-MCI
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa, tantôt ? )
Michel Claveau
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet
terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa, tantôt
? )
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa, tantôt ? )
Michel Claveau
NicolasP
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa, tantôt ? ) Désolé. Je surveillerai mon langage à l'avenir... Pour ne pas me coincer ;)
Nicolas
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet
terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa,
tantôt ? )
Désolé. Je surveillerai mon langage à l'avenir... Pour ne pas me coincer ;)
Pas mieux (sauf pour le mot "explose", qui me semble un tantinet terroriste. Rassure-moi : tu n'as pas été dans un cyber-café de Casa, tantôt ? ) Désolé. Je surveillerai mon langage à l'avenir... Pour ne pas me coincer ;)