print '中国' #输出:中国

print ['中国'] #输出:['\xd6\xd0\xb9\xfa']

print {'中国':'中国'} #输出: {'\xd6\xd0\xb9\xfa': '\xd6\xd0\xb9\xfa'}

请问一下为什么在list和dict打印出来是转义字符?

可以认为一个是用的是str方法,目的是向终端显示;一个用的repr方法,目的是把数据结构和类型表达出来

这是 Python 2 特别讨厌的一点,以至于我实在忍受不了写了个 repl_py27 来绕过该问题。不过最终还是迁移到 Python 3 啦 =w=

Python 2 的世界是个 ASCII 的世界,unicode 是后来加的,所以使用 repr 显示的时候是把所有非 ASCII 的字符转义显示的。你要直接把字符串写出来的话,Python 2 就不会进行任何转义了,于是在支持的终端上,中文就能正常显示了。

注意 @socrates 说的是错的。print 遇到非字符串时,会调用 str() 函数将对象转成字符串再输出:>>> class T(object):

... def __repr__(self):

... return ''

... def __str__(self):

... return ''

...

>>> print T()

而很多对象的 __str__ 方法是没有定义的,于是 str() 函数改调用它的 __repr__ 方法。

又:Python 2 的字符串和 unicode 的 str() 输出都是经过转义的。这也是我讨厌 Python 2 的另一个重要原因:>>> u'中文'

u'\u4e2d\u6587'

>>> '中文'

'\xe4\xb8\xad\xe6\x96\x87'

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19803.html

相关文章 Recommend

python转义是什么意思_Python什么情况下会输出转义符相关推荐

  1. python安装包_在python官网打不开的情况下获取获取官方最新安装包

    不知道有没有朋友在下载python最新安装包的时候,打不开python官网,我是遇见过,就像我们找东西时一样,需要的时候网站打不开,不需要了秒开,后来小编查阅各种资料,咨询了好几个大佬,终于得知了一个 ...

  2. 如何在python官网打不开的情况下获取获取官方最新安装包

    不知道有没有朋友在下载python最新安装包的时候,打不开python官网,小编我是遇见过,就像我们找东西时一样,需要的时候网站打不开,不需要了秒开,后来小编查阅各种资料,咨询了好几个大佬,终于得知了 ...

  3. python不转义字符是什么_python反斜杠怎么不转义

    python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候 为了防止和字符串本身的引号冲突,使用 \ 来转义,一般情况下这个也不会引起什么问题,但是当你要使用 \ 来转义 \ 的时候, ...

  4. python在材料模拟中的应用_材料模拟python_模拟-python模拟-在不妨碍实现的情况下修补方法...

    此答案解决了Quuxplusone用户提供的赏金中提到的其他要求: 对于我的用例而言,重要的是它可以与MagicMock一起使用,即,它不需要我在构造Potato(在此示例中为spud)实例与调用sp ...

  5. 没网可以用python吗_在没有网络的情况下能自学python吗?

    说下个人看法哈,我觉得达到入门基础+一定水平还是没问题的. 1.没网络的情况下自己会受到较少的外界干扰.可以花更多的时间在学习上,毕竟面对网络的诱惑定力弱的人都会忍不住沉浸进去,反正我是会,所以高中不 ...

  6. 远程桌面mstsc情况下通过\\tsclient\盘符实现内容的拷贝

    在我们远程桌面的情况下一般需要拷贝内容: 拷贝内容的方式当然不是只有这一种.包括选项的一些勾选.但是个人觉得这个是最保险,而且可以行得通的: 现在将步骤一一列出: 1.客户端 开始-运行-mstsc  ...

  7. python运行pyc文件_Python什么情况下会生成pyc文件?

    作为Python爱好者,需要了解.py脚本的基本运行机制及特性: 在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从源码运 ...

  8. python正则匹配任意字符_Python 匹配任意字符(包括换行符)的正则表达式写法...

    Python 匹配任意字符(包括换行符)的正则表达式写法 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现 ...

  9. python中升序降序问题_飘逸的python - 有的升序有的降序的情况下怎么多条件排序...

    之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...

最新文章

  1. 神经网络变成小怪兽,还能互相 battle!这款游戏用最简单的方式训练神经网络...
  2. oracle导入时提示IMP-00010:不是有效的导出文件,头部验证失败
  3. mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql
  4. 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法
  5. oracle字符集dll,VS2010+Oracle驱动程序:ORA-12154:TSN:无法解析指定的连接标识符
  6. 【135天】尚学堂高淇Java300集视频精华笔记(74-76)
  7. Java配置信息工具jinfo
  8. java描边_shape描边设置是否显示四周描边
  9. 需求分析中对系统的要求
  10. java 四舍五入_Java常用类
  11. 再谈PHP、Python与Ruby
  12. PAT甲题题解-1124. Raffle for Weibo Followers-模拟,水题
  13. Wireshark 2.6 发布:最流行的网络协议分析器
  14. JavaScript网页打印国际象棋棋盘
  15. PostGIS的安装与初步使用
  16. RFC868--时间协议客户机与服务器的实现
  17. sdkman 安装使用教程
  18. Electron-开发第一个桌面应用
  19. Java 泛型类、泛型方法和泛型接口
  20. 单边指数信号的傅立叶matlab,实验四连续信号的傅立叶变换

热门文章

  1. python json模块rodas方法_json模块使用总结——Python
  2. python断言失败_python异常处理、自定义异常、断言原理与用法分析
  3. wxWidgets:使用自定义对话框和 sizer
  4. boost::type_erasure::deduced相关的测试程序
  5. boost::promise相关的测试程序
  6. boost::spirit模块实现自定义用作容器数据的测试程序
  7. boost::compose_property_map相关的测试程序
  8. boost::process::start_dir相关的测试程序
  9. boost::mpi模块指针序列化测试
  10. boost::hana::always用法的测试程序