python使用str & repr转换字符串

可能比较 low 还是记录一下:

str 和 repr的使用过程

str 是一个类型 (int, long 类似), 同样她也可以作为一个工厂方法 实例一个 string repr 是python 内置的函数, 用于保留一个 打印值在python 代码片段里的真实状态

好,以上全是废话

>>> a = 1>>> a + ""---------------------------------------------------------------------------TypeErrorTraceback (most recent call last) in ()----> 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里交互:

立即学习“Python免费学习笔记(深入)”;

  >>> str('hello')  'hello'  >>> repr('hello')  "'hello'"  >>> str('你好')  '���'  >>> repr('你好')  "'\xc4\xe3\xba\xc3'"

登录后复制

先看前两句:英文的’hello’在str()后仍是’hello’,可是在repr()后就变成了”‘hello'”。这就说明,str()返回的就是字符串本身,而repr()虽然返回的也是字符串,但它是一个标准字符串,官方解释比较绕,我来解释下吧。repr是representation及描述的意思,不是对人的描述,而是对python机器的描述,也就是它会将某物返回一个它在python中的描述。说人话:repr(obj)告诉我们obj这个变量在背地里是什么样子,在背地里是怎么被python处理被python”玩弄”的。

在python里,我们总会被眼睛欺骗。编辑器里显示的东西,并不总是它原本的面貌。python为了方便,总是表面上一套,背地里又一套。

再来理解后两句:中文的’你好’在str()后变成了编码’���’,在repr()后变成了”‘���'”。`都加上了转移符变成,相当于把字符串中的内容都“标准化”了。至于’变成”`只是为了说明repr()返回的是一个经过处理的新字符串。

print后的str()和repr()

来看代码:

  >>> print str('你好')  你好  >>> print repr('你好')  '���'

登录后复制

之前str(‘你好’)显示的是’���’,而一经过print,就变成了正确的’你好’。上面说过了,命令行里直接输入一个变量,显示的是它在python后台存储的数据;而用print出来的东西,会显出出尽量友好、让人能看懂的东西。
理解了这个,对print这两个结果的不同,也就全然理解了。然后也就放弃print作为考据的心了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2282175.html

(0)
上一篇 2025年2月27日 19:16:04
下一篇 2025年2月27日 19:16:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python 写入csv乱码问题解决方法

    需求背景 最近为公司开发了一套邮件日报程序,邮件一般就是表格,图片,然后就是附件。附件一般都是默认写到txt文件里,但是PM希望邮件里的附件能直接用Excel这种软件打开,最开始想保存为Excel,但是一想Excel的文件体积会多出好多倍,…

    编程技术 2025年2月27日
    200
  • PYTHON 中使用 GLOBAL引发的一系列问题

    哪里出问题了   python 中,使用 global 会将全局变量设为本函数可用。同时,在函数内部访问变量会先本地再全局。   在嵌套函数中,使用 global 会产生不合常理的行为。   上代码: In [96]: def x():b …

    编程技术 2025年2月27日
    200
  • Python 序列的方法总结

          最近在做python 的项目,特地整理了下 python 序列的方法。序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序列都能通用的操作方法。 任何序列都可以引用其中的元素(…

    编程技术 2025年2月27日
    200
  • python 异常处理总结

           最近,做个小项目经常会遇到python 的异常,让人非常头疼,故对异常进行整理,避免下次遇到异常不知所措,以下就是对python 异常进行的整理。 1.Python异常类    异常 描述 NameError 尝试访问一个没有…

    编程技术 2025年2月27日
    200
  • 解决Python中字符串和数字拼接报错的方法

    前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错。 如以下的代码: # coding=utf8str = ‘你的分数是:’num = 82text = str+n…

    2025年2月27日
    200
  • shelve 用来持久化任意的Python对象实例代码

    shelve — 用来持久化任意的python对象 这几天接触了Python中的shelve这个module,感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具。当我们写程序的时候如果不想用关系数…

    编程技术 2025年2月27日
    200
  • python 队列详解及实例代码

    队列特性:先进先出(fifo)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进先出的数据结构,即队列。 该模块源码…

    2025年2月27日
    200
  • python 读写txt文件 json文件的实现方法

    首先第一步,打开文件,有两个函数可供选择:open() 和  file() ①. f = open(‘file.txt’,‘w’)   … file.close()    ②. f = fil…

    编程技术 2025年2月27日
    200
  • Pyhton中单行和多行注释的使用方法及规范

    前言 注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。 Python  注释符 一、python单行注释符号(#) 井号(#)常被用作单行注释符号,在代码中…

    2025年2月27日
    200
  • Python类属性的延迟计算

    所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。 优点 构造一个延迟计算属性的主要目的是为了提升性能 实现 立即学习“Python免费学习笔记(深入…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论