Python str()和repr()函数的区别

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即str() 或者 repr() 

str()和repr()区别:

  1. 函数str( )将其转化成为适合人阅读的前端样式文本
  2. 函数repr(object)将对象转化为供解释器读取的形式。返回一个对象的 string 格式。repr(representation的缩写)是Python中的一个内置函数,用于生成对象的“官方”字符串表示形式

字符串格式比较
示例代码1:

s = 'python'
a = str(s)
b = repr(s)
 
print(a)
print(b)
print(type(a))
print(type(b))
print(eval(b))
 
print("-" * 100)
 
print(a == b)

运行结果:

注意:对于字符串类型,repr转换后外层会多一对引号,这一特性有时候在eval操作时有用。 

经过 repr() 函数的处理后,为让 print 后的结果,接近字符串本身的样子,它实际上做了两件事

  1. 将 \ 变为了 \\

  2. 在字符串的首尾添加 ' 或者 ",具体加或者不加引号取决于对象原来的样式。(str()刚好做了相反的两件事,转义+去掉首尾的引号。而repr()只是把对象原来的样子原模原样呈现出来,仅仅不加任何装饰的转换对象类型为string,这也就解释了为什么下面数值型的对象在repr()之后,print的时候首尾没有加引号)

  3. 举例:

    repr() 方法可以将读取到的格式字符,比如换行符、制表符,转化为其相应的转义字符。

    # coding=UTF-8

    s="物品\t单价\t数量\n包子\t1\t2"

    print(s)

    print(repr(s))

    运行结果:

    物品 单价 数量 包子 1 2

    '物品\t单价\t数量\n包子\t1\t2'

数值型类型比较
示例代码2:

n = 123456
 
a = str(n)
b = repr(n)
print(a)
print(b)
print(type(a))
print(type(b))
 
print('-' * 100)
print(len(a))
print(len(b))

运行结果:


 
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值