python中的str函数要如何使用?我们一起了解一下吧!
str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。
str函数的语法是:str(object)。其中object表示待被转换成字符串的参数,是一个可以省略的参数。
它的返回值是:返回object的字符串形式。
使用示例:
1、无参调形式
当str()函数的参数都省略时,函数返回空字符串。这种情况常用来创建空字符串或者初始化字符串变量。
>>> str()
''
2、不省略参数
str函数将整数、浮点数、列表、元组、字典和集合转换为字符串类型
>>> str(-23) #整数转换为字符串
'-23'
>>> str(1.3e2) #浮点数转换为字符串
'130.0'
>>> a_list = [12, '-23.1', 'Python']
>>> str(a_list) #列表转换为字符串
"[12, '-23.1', 'Python']"
>>> str(a_list)[0]
'['
>>> a_tuple = (23, '9we', -8.5)
>>> str(a_tuple) #元组转换为字符串
"(23, '9we', -8.5)"
>>> a_dictionary = {'Huawei':'China', 'Apple':'USA'}
>>> str(a_dictionary) #字典转换为字符串
"{'Huawei': 'China', 'Apple': 'USA'}"
>>> str(a_dictionary)[10]
' '
>>> a_set = {'China', 'Japan', 'UK'}
>>> str(a_set) #集合转换为字符串
"{'Japan', 'UK', 'China'}"
使用过程中需要注意的是,str()函数可以将字符串类型转换为字符串,这一过程不会有任何报错,但是会产生额外的时空消耗。例如:
>>> str('asdf')
'asdf'
关于str()函数的使用,我们就了解到这啦!
Python中repr()函数和str()的区别
repr()和str,一个最简单的区别:repr是函数,str跟int一样是一种对象类型。
repr(object)
返回对象的可打印形式字符串。对于很多类型而言,本函数试图返回的字符串,会与将对象传给 eval() 所生成的结果相同;不然,结果就是一个尖括号包裹的字符串,包含了对象类型名称及其附加信息,附加信息通常包括对象的名称和内存地址。通过定义 __repr__() 方法,类可以控制本函数将为实例返回的内容。
class str(object='')class str(object=b'', encoding='utf-8', errors='strict')
返回 object 的 字符串 版本。 如果未提供 object 则返回空字符串。 在其他情况下 str() 的行为取决于 encoding 或 errors 是否有给出,具体见下。
如果 encoding 或 errors 均未给出,str(object) 返回 object.__str__(),这是 object 的“非正式”或格式良好的字符串表示。 对于字符串对象,这是该字符串本身。 如果 object 没有 __str__() 方法,则 str() 将回退为返回 repr(object)。
如果 encoding 或 errors 至少给出其中之一,则 object 应该是一个 bytes-like object (例如 bytes 或 bytearray)。 在此情况下,如果 object 是一个 bytes (或 bytearray) 对象,则 str(bytes, encoding, errors) 等价于 bytes.decode(encoding, errors)。 否则的话,会在调用 bytes.decode() 之前获取缓冲区对象下层的 bytes 对象。 请参阅 二进制序列类型 --- bytes, bytearray, memoryview 与 缓冲协议 了解有关缓冲区对象的信息。
将一个 bytes 对象传入 str() 而不给出 encoding 或 errors 参数的操作属于第一种情况, 将返回非正式的字符串表示(另请参阅 Python 的 -b 命令行选项)。 例如:
>>> str(b'Zoot!')"b'Zoot!'"
什么时候应该使用str(),什么时候应该使用repr()?
在为最终用户创建输出时,几乎总是使用str。repr()主要用于调试和探索。例如,如果您怀疑字符串中有非打印字符,或者浮点数有一个小的舍入错误,则repr()将显示给您;str可能不会。repr()在生成要粘贴到源代码中的文字时也很有用。
>>> s = 'Hello, world.'>>> str(s)'Hello, world.'>>> repr(s)"'Hello, world.'" # repr is giving an extra double quotes>>> str(1.0/7.0)'0.142857142857'>>> repr(1.0/7.0)'0.14285714285714285' # repr is giving value with more precision