Python中字符串表示str与repr

所有通过Python打印的字符串还是被引号括起来的。这是因为Python打印值的时候会保持该值在Python代码中的状态,而不是你希望用户看到的状态,如果使用print 语句,结果就不一样了。

>>> "Hello,world"
'Hello,world'        # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号

>>> print "Hello,world"
Hello,world
>>> 

****************************************************************************************************************

>>> 10000L
10000L                        # python理解为Long型的数字,所以它打印出来的时候也带着后缀L

>>> print 10000L       # 用户看到的当然是一个数字1000,而不是字符串1000L

10000
>>> 

str和repr实际就分别对应上述两种显示方式。

把值转换为合理形式的字符串,给用户看的。str实际上类似于int,long,是一种类型。

repr()

创建一个字符串,以合法python表达式的形式来表示值。repr()是一个函数。

这里可以看到,长整型数10000L被转换成了数字10000,而且在显示给用户的时候也是如此,当你想知道一个变量的值是多少时,可能会对它是整型还是长整型感兴趣。

      值被转换为字符串的两种机制。可以通过以下两个函数来使用这两种机制:一种是通过str函数,它会把值转换为合理形式的字符串,以便用户可以理解;另一个是通过repr函数,它会创建一个字符串,以合法的Python表达式的形式来表示值。

       请看如下示例:

>>> print repr("Hello,world")
'Hello,world'
>>> print repr(1000L)
1000L
>>> print str("Hello,world")
Hello,world
>>> print str(1000L)
1000


repr(x) 也可以写作`x`实现(注意,`是反引号,而不是单引号)。如果希望打印一个包含数字的句子,那么反引号就很有用了。比如:

>>> temp = 42
>>> print "The temperature is " + temp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print "The temperature is " + `temp`
The temperature is 42
>>> 

>>> print "The temperature is " + str(temp)
The temperature is 42
>>> print "The temperature is " + repr(temp)
The temperature is 42
>>> 

    第一个print语句并不工作,那是因为不可以将字符串和数字进行相加。而第二个则可以正常工作,以为已经通过反引号将temp的值转换成字符串“42”了。(当然也可以使用repr,得到相同的结果)

    简而言之,str,repr和反引号是将Python值转换为字符串的3种方法。函数str让字符串更容易阅读,而repr(和反引号)则把结果字符串转换为合法的Python表达式。str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号。




本文转自 wangergui 51CTO博客,原文链接:http://blog.51cto.com/wangergui/2065268,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值