Python 3:
La respuesta del usuario225312 es correcta:
A. Para contar el número de caracteres en el strobjeto, puede usar la len()función:
>>> print(len('please anwser my question'))
25
B. Para obtener el tamaño de la memoria en bytes asignados al strobjeto de almacenamiento , puede usar la sys.getsizeof()función
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2:
Se complica para Python 2.
A. La len()función en Python 2 devuelve el recuento de bytes asignados para almacenar caracteres codificados en un strobjeto.
A veces será igual al recuento de caracteres:
>>> print(len('abc'))
3
Pero a veces, no lo hará:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
Eso es porque strpuede usar codificación de longitud variable internamente. Por lo tanto, para contar caracteres str, debe saber qué codificación strestá utilizando su objeto. Luego puedes convertirlo en unicodeobjeto y obtener el recuento de caracteres:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. La sys.getsizeof()función hace lo mismo que en Python 3: devuelve el recuento de bytes asignados para almacenar el objeto de cadena completo
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32