码迷,mamicode.com
首页 > 编程语言 > 详细

Python中字符串表示str与repr

时间:2018-01-26 01:40:03      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:方法   stdin   代码   not   兴趣   字符串   阅读   back   print语句   

所有通过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出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号。






Python中字符串表示str与repr

标签:方法   stdin   代码   not   兴趣   字符串   阅读   back   print语句   

原文地址:http://blog.51cto.com/wangergui/2065268

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!