Python 3:
La réponse de user225312 est correcte:
A. Pour compter le nombre de caractères dans l' str
objet, vous pouvez utiliser la len()
fonction:
>>> print(len('please anwser my question'))
25
B. Pour obtenir la taille de la mémoire en octets alloués pour stocker str
objet, vous pouvez utiliser la sys.getsizeof()
fonction
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2:
Cela se complique pour Python 2.
A. La len()
fonction en Python 2 renvoie le nombre d'octets alloués pour stocker les caractères codés dans un str
objet.
Parfois, il sera égal au nombre de caractères:
>>> print(len('abc'))
3
Mais parfois, ce n'est pas le cas:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
C'est parce que str
peut utiliser l' encodage de longueur variable en interne. Donc, pour compter les caractères, str
vous devez savoir quel encodage votre str
objet utilise. Ensuite, vous pouvez le convertir en unicode
objet et obtenir le nombre de caractères:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. La sys.getsizeof()
fonction fait la même chose que dans Python 3 - elle retourne le nombre d'octets alloués pour stocker l'ensemble de l'objet chaîne
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32