如何在Python中获取字符串的长度?
比如,我有一个字符串:
str = "please answer my question"
我想把它写入一个文件。
但是在把这个字符串写入文件之前,我需要知道这个字符串的大小。我可以用什么函数来计算字符串的大小呢?
7 个回答
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当某个变量的值达到一定的标准时,我们就希望程序能做出反应。这种情况通常会用到“条件语句”。
条件语句就像是一个判断的开关,只有当条件满足时,程序才会执行特定的代码。比如,如果你想让程序在温度超过30度时发出警报,你就可以设置一个条件语句来检查温度的值。
简单来说,条件语句帮助程序根据不同的情况做出不同的决定,就像我们在生活中根据天气穿衣服一样。如果外面很冷,我们就穿厚衣服;如果天气不错,我们就穿轻便的衣服。
希望这个解释能帮助你理解条件语句的基本概念!
>>> s = 'abcd'
>>> len(s)
4
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
如果你想知道字符串的长度,可以使用 len()
这个函数:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
如果你需要知道字符串占用的字节大小,就要用 sys.getsizeof()
这个函数:
>>> import sys
>>> sys.getsizeof(s)
58
另外,不要把你的字符串变量命名为 str
。这样会覆盖掉内置的 str()
函数。