前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈一谈Python中str()和repr()的区别

谈一谈Python中str()和repr()的区别

作者头像
木制robot
发布2018-04-11 15:37:32
6720
发布2018-04-11 15:37:32
举报

前言

在学习BeautifulSoup文档的时候发现了一个以前不常见的Python内建函数repr(),带着好奇对这个内建函数进行了一番搜索和学习。

总结

str()repr()都是Python的内建函数,通过它们可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。大多数情况下他们的效果相同,但是既然是不同的函数肯定有不同的地方,概括起来可以这样说str()会将对象转化为可读性较好的字符串,而repr()会将对象转化为供解释器读取形式的字符串。一个对象没有适于人阅读的解释形式的话,str()会返回与repr()相同的值。 其中,数值或list、tuple、字典等这样的结构,针对各种函数都有着统一的解读方式。而字符串不同函数可能有着不同的解读方式。

举例

  1. 在下列情况下两者效果相同: 123456789101112131415161718192021222324>>> str(123)'123'>>> repr(123)'123'>>> str((1, 2, 3, 4, 5))'(1, 2, 3, 4, 5)'>>> repr((1, 2, 3, 4, 5))'(1, 2, 3, 4, 5)'>>> str([1, 2, 3, 4, 5])'[1, 2, 3, 4, 5]'>>> repr([1, 2, 3, 4, 5])'[1, 2, 3, 4, 5]'>>> str({1: 2, 3: 4})'{1: 2, 3: 4}'>>> repr({1: 2, 3: 4})'{1: 2, 3: 4}'>>> str(4.53-2j)'(4.53-2j)'>>> repr(4.53-2j)'(4.53-2j)'>>> str(2e10)'20000000000.0'>>> repr(2e10)'20000000000.0'
  2. 下列情况两者效果出现差异: 12345678>>>hi = 'hello world\n Python'>>> hi'hello world\n Python'>>> print(str(hi))hello world Python>>> print(repr(hi))'hello world\n Python'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 总结
    • 举例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档