str和repr的区别


Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态。而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态。
例如:

>>> "Hello, world!"
'Hello, world!'   # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号
>>> 1000L         # python理解为Long型的数字,所以它打印出来的时候也带着后缀L
1000L
>>> print "Hello, world!"    # 打印一个字符串,给用户看的,所以不带引号
Hello, world!
>>> print 1000L              # 用户看到的当然是一个数字1000,而不是字符串1000L
1000

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

  • str

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

    >>> print str("Hello,  world!")
    Hello,  world!            
    >>> print str(1000L)
    1000                         
    >>> str("Hello, world!")
    'Hello, world!'               # 字符串转换之后仍然是字符串
    >>> str(1000L)
    '1000'
    
  • repr()

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

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

总而言之,str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值