gpt4 book ai didi

python - 在 python3 中格式化打印的 r(repr)

转载 作者:太空狗 更新时间:2023-10-29 18:24:15 24 4
gpt4 key购买 nike

>>>print('You say:{0:r}'.format("i love you"))
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
print('You say:{0:r}'.format("i love you"))
ValueError: Unknown format code 'r' for object of type 'str'

我只是在 python2 中使用 %r(repr()),它应该在 python3.5 中工作。这是为什么?

此外,我应该使用什么格式?

最佳答案

您正在寻找的是所谓的转换标志。应该这样指定

>>> print('you say:{0!r}'.format("i love you"))
you say:'i love you'

引用 Python 3 的 official documentation ,

Three conversion flags are currently supported: '!s' which calls str() on the value, '!r' which calls repr() and '!a' which calls ascii().

请注意,Python 2 仅支持 !s!r。根据 Python 2 的 official documentation ,

Two conversion flags are currently supported: '!s' which calls str() on the value, and '!r' which calls repr().


在 Python 2 中,你可能会做类似的事情

>>> 'you say: %r' % "i love you"
"you say: 'i love you'"

但即使在 Python 2 中(也在 Python 3 中),你也可以用 !rformat 来写同样的东西,就像这样

>>> 'you say: {!r}'.format("i love you")
"you say: 'i love you'"

引用示例来自 official documentation ,

Replacing %s and %r:

>>> "repr() shows quotes: {!r}; str() doesn't: {!s}".format('test1', 'test2')
"repr() shows quotes: 'test1'; str() doesn't: test2"

关于python - 在 python3 中格式化打印的 r(repr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com