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,如需转载请自行联系原作者

相关文章
|
2月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
325 100
|
2月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
440 99
|
2月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
2月前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
2月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
2月前
|
Python
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
3月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
287 92
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
145 4
|
3月前
|
数据采集 存储 数据库
Python字符串全解析:从基础操作到高级技巧
Python字符串处理详解,涵盖基础操作、格式化、编码、正则表达式及性能优化等内容,结合实际案例帮助开发者系统掌握字符串核心技能,提升文本处理与编程效率。
412 0