如何在Python中获取字符串的长度?

189 投票
7 回答
687602 浏览
提问于 2025-04-16 11:38

比如,我有一个字符串:

str = "please answer my question"

我想把它写入一个文件。

但是在把这个字符串写入文件之前,我需要知道这个字符串的大小。我可以用什么函数来计算字符串的大小呢?

7 个回答

8

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当某个变量的值达到一定的标准时,我们就希望程序能做出反应。这种情况通常会用到“条件语句”。

条件语句就像是一个判断的开关,只有当条件满足时,程序才会执行特定的代码。比如,如果你想让程序在温度超过30度时发出警报,你就可以设置一个条件语句来检查温度的值。

简单来说,条件语句帮助程序根据不同的情况做出不同的决定,就像我们在生活中根据天气穿衣服一样。如果外面很冷,我们就穿厚衣服;如果天气不错,我们就穿轻便的衣服。

希望这个解释能帮助你理解条件语句的基本概念!

>>> s = 'abcd'
>>> len(s)
4
45

Python 3:

user225312的回答是正确的:

A. 如果你想知道一个 str 对象里面有多少个字符,可以用 len() 这个函数:

>>> print(len('please anwser my question'))
25

B. 如果你想知道存储这个 str 对象所占用的内存大小(以字节为单位),可以用 sys.getsizeof() 这个函数:

>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50

Python 2:

在 Python 2 中就复杂了。

A. 在 Python 2 中,len() 函数返回的是存储 编码字符 所占用的字节数,而不是字符的数量。

有时候这个字节数和字符数是一样的:

>>> print(len('abc'))
3

但有时候就不一样了:

>>> print(len('йцы'))  # String contains Cyrillic symbols
6

这是因为 str 在内部可能使用了 可变长度编码。所以,要想知道 str 里面有多少个字符,你需要知道这个 str 对象使用的是什么编码。然后你可以把它转换成 unicode 对象,这样就能得到字符的数量:

>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols 
3

B. sys.getsizeof() 函数在 Python 2 中的作用和在 Python 3 中一样——它返回的是存储 整个字符串对象 所占用的字节数:

>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
317

如果你想知道字符串的长度,可以使用 len() 这个函数:

>>> s = 'please answer my question'
>>> len(s)  # number of characters in s
25

如果你需要知道字符串占用的字节大小,就要用 sys.getsizeof() 这个函数:

>>> import sys
>>> sys.getsizeof(s)
58

另外,不要把你的字符串变量命名为 str。这样会覆盖掉内置的 str() 函数。

撰写回答