Python 3:
La réponse de user225312 est correcte:
A. Pour compter le nombre de caractères dans l' strobjet, 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 strobjet, 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 strobjet.
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 strpeut utiliser l' encodage de longueur variable en interne. Donc, pour compter les caractères, strvous devez savoir quel encodage votre strobjet utilise. Ensuite, vous pouvez le convertir en unicodeobjet 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