quelle est la différence entre les fonctions str()
et repr()
dans python 2.7.5?
Explication sur python.org:
La fonction
str()
est destinée à renvoyer des représentations de valeurs qui sont assez lisibles par l'homme, tandis querepr()
est destinée à générer des représentations qui peuvent être lu par l'interpréteur (ou forcera unSyntaxError
s'il n'y a pas de syntaxe équivalente)
Mais ce n'était pas clair pour moi.
quelques exemples:
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'" # repr is giving an extra double quotes
>>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285' # repr is giving value with more precision
donc je veux savoir ce qui suit
str()
et quand dois-je utiliser repr()
?str()
faire que repr()
ne peut pas?repr()
faire que str()
ne peut pas?Quand dois-je utiliser str () et quand dois-je utiliser repr ()?
Utilisez presque toujours str()
lors de la création de sortie pour les utilisateurs finaux.
repr()
est principalement utile pour le débogage et l'exploration. Par exemple, si vous suspectez qu'une chaîne contient des caractères non imprimables ou qu'un flottant a une petite erreur d'arrondi, repr()
vous montrera; str()
peut ne pas.
repr()
peut également être utile pour générer des littéraux à coller dans votre code source. Il peut également être utilisé pour la persistance (avec ast.literal_eval
Ou eval
), mais c'est rarement une bonne idée - si vous voulez des valeurs persistantes modifiables, quelque chose comme JSON ou YAML est beaucoup mieux, et si vous ne prévoyez pas de les modifier, utilisez du cornichon.
2.Dans quels cas puis-je utiliser l'un d'eux?
Eh bien, vous pouvez les utilisez presque partout. Vous ne devriez pas les utilisez généralement sauf comme décrit ci-dessus.
3. Que peut faire
str()
querepr()
ne peut pas?
Donnez-vous une sortie adaptée à la consommation de l'utilisateur final - pas toujours (par exemple, str (["spam", "œufs"]) n'est probablement pas quelque chose que vous souhaitez mettre dans une interface graphique), mais plus souvent que repr()
.
4. Que peut
repr()
faire questr()
ne peut pas
Donnez-vous une sortie utile pour le débogage - encore une fois, pas toujours (la valeur par défaut pour les instances de classes créées par l'utilisateur est rarement utile), mais chaque fois que possible.
Et parfois, vous donnez une sortie qui est une expression Python littérale ou autre) - mais vous voulez rarement vous y fier, sauf pour l'exploration interactive.