python中eval和str的区别_Python repr, str, eval 使用小记 及 str 和 repr的区别

>>> s = '1+2'

>>> x = eval(s) #把引号剥离一次,就变成了运算1+2

>>> x

3

>>> ss = str(s) #把字符串 s 再次使用 str 函数, 不产生变化

>>> ss

'1+2'

>>> rr = repr(s) #把 s 使用 repr,会在外面再套上一个引号

>>> rr

"'1+2'"

>>> eval(ss) #经过 str 过的 s 还是可以通过 eval 剥离,并进行运算

3

>>> eval(rr) #经过 repr 的 s 由于套着两层引号,所以一次只能去掉一层引号, 仍然还是字符串

'1+2'

>>> rrr = repr(rr)#把带两层的引号的 rr继续套引号,变成3层

>>> rrr

'"\'1+2\'"'

>>> rrrr = repr(rrr) #变成4层

>>> rrrr

'\'"\\\'1+2\\\'"\''

>>> ss = str(s)

>>> ss

'1+2'

>>> sss =str(ss) #s使用多少层 str 仍然无动于衷, 只会加一层

>>> sss

'1+2'

>>> x = eval(rrrr) #现在用 eval 对 repr 套加的引号一层层剥离

>>> x

'"\'1+2\'"'

>>> xx = eval(x)

>>> xx

"'1+2'"

>>> xxx = eval(xx)

>>> xxx

'1+2'

>>> xxxx = eval(xxx) #剥完最后一层引号,就可以运算了

>>> xxxx

3

>>>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值