时间:2021-05-22
可能比较 low 还是记录一下:
str 和 repr的使用过程
好,以上全是废话
>>> a = 1>>> a + ""---------------------------------------------------------------------------TypeErrorTraceback (most recent call last)<ipython-input-5-ebf3ab7f3a34> in <module>()----> 1 a + ""TypeError: unsupported operand type(s) for +: 'int' and 'str'>>> a = 1>>> repr(a) + ""可以看到, 我们可以通过使用 str 和 repr 来转换字符串
但是,str 只能提供一个 元string来做转换, 不可以是一个变量(她不具备执行变量的能力)
repr 是一个函数, 所以实际上是传参, 可以是变量和string
好多人都知道str()能把123数字转成字符串,python里的str()甚至还能把列表、字典等对象转成字符串。这都好理解,可是一旦把str()和repr()放在一起,大家就全都不淡定了-_-!
来看一段代码,仍是在IDLE里交互:
>>> str('hello') 'hello' >>> repr('hello') "'hello'" >>> str('你好') '\xc4\xe3\xba\xc3' >>> repr('你好') "'\\xc4\\xe3\\xba\\xc3'"先看前两句:英文的'hello'在str()后仍是'hello',可是在repr()后就变成了"'hello'"。这就说明,str()返回的就是字符串本身,而repr()虽然返回的也是字符串,但它是一个标准字符串,官方解释比较绕,我来解释下吧。repr是representation及描述的意思,不是对人的描述,而是对python机器的描述,也就是它会将某物返回一个它在python中的描述。说人话:repr(obj)告诉我们obj这个变量在背地里是什么样子,在背地里是怎么被python处理被python"玩弄"的。
在python里,我们总会被眼睛欺骗。编辑器里显示的东西,并不总是它原本的面貌。python为了方便,总是表面上一套,背地里又一套。
再来理解后两句:中文的'你好'在str()后变成了编码'\xc4\xe3\xba\xc3',在repr()后变成了"'\xc4\xe3\xba\xc3'"。`都加上了转移符变成\,相当于把字符串中的内容都“标准化”了。至于'变成"`只是为了说明repr()返回的是一个经过处理的新字符串。
print后的str()和repr()
来看代码:
>>> print str('你好') 你好 >>> print repr('你好') '\xc4\xe3\xba\xc3'之前str('你好')显示的是'\xc4\xe3\xba\xc3',而一经过print,就变成了正确的'你好'。上面说过了,命令行里直接输入一个变量,显示的是它在python后台存储的数据;而用print出来的东西,会显出出尽量友好、让人能看懂的东西。
理解了这个,对print这两个结果的不同,也就全然理解了。然后也就放弃print作为考据的心了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
阅读到Strings中关于转换对象为字符串的内容,介绍了repr函数,趁着还没有真正了解Python面向对象的生疏与热度,感性上理解一下repr与str这两个函
Pythonstr和repr的详解str可以将值转化为合理的字符串形式,以便用户可以理解;repr会以合法Python表达式的形式来表达值。举例如下:#str输
一、字符串(str)字符串转换为列表使用list()方法str_1="1235"str_2='zhangsan'str_3='''lisi'''tuple_1=
本文实例讲述了Python实现字符串与数组相互转换功能。分享给大家供大家参考,具体如下:字符串转数组str='1,2,3'arr=str.split(',')p
一、python中字符串转换成数字(方法1)类中进行导入:importstringstr='555'num=string.atoi(str)num即为str转换