为什么python字符串中的”%”使传输字符无效

why “%” in python string invalidates the transfer character

1
2
3
t = ("rotation: %d%%\t [note]"% 123)
in jupyter notebook when you type t and run cell
output: rotation: 123%\t [note]

我想得到的结果如下:

输出:旋转:123%【注】


这是Jupyter笔记本的一个表现。当使用str时,print默认使用,我们得到

1
rotation: 123%   [note]

但是,当您在交互python中键入t时,则使用repr()。使用任何交互式python都可以很容易地复制它:

1
2
3
4
5
>>> t = ("rotation: %d%%\t [note]"% 123)
>>> t
'rotation: 123%\t [note]'
>>> print(t)
rotation: 123%   [note]

不同的是,repr()给出了对象的表示,这样它就可以被代码重新创建,并且对调试最有用。str()print给出了人类(最终用户)可读的形式。

另请参见python 2.7.5中的str()和repr()函数,该函数也适用于python 3。


1
2
import sys
sys.stdout.write("rotation: %d%%\t [note]"% 123)

这应该管用