Python 3 quine 是如何工作的?
How does this Python 3 quine work?
找到这个 quine 的例子:
s='s=%r;print(s%%s)';print(s%s)
我知道 %s
和 %r
执行 str
和 repr
函数,正如 here 指出的那样,但是 [=16] 的确切含义=] 部分以及 quine 的工作原理?
s
设置为:
's=%r;print(s%%s)'
所以 %r
被 s%s
中的那个( 保留 单引号)和最后的 %%
替换为单个%
,给予:
s='s=%r;print(s%%s)';print(s%s)
因此是 quine。
运算符x % y
表示用格式字符串x
替换值y
,与C printf相同。另请注意,%%
说明符代表文字 % 符号,因此格式字符串中的 s%%s
将打印为 s%s,并且不会捕获字符串。
找到这个 quine 的例子:
s='s=%r;print(s%%s)';print(s%s)
我知道 %s
和 %r
执行 str
和 repr
函数,正如 here 指出的那样,但是 [=16] 的确切含义=] 部分以及 quine 的工作原理?
s
设置为:
's=%r;print(s%%s)'
所以 %r
被 s%s
中的那个( 保留 单引号)和最后的 %%
替换为单个%
,给予:
s='s=%r;print(s%%s)';print(s%s)
因此是 quine。
运算符x % y
表示用格式字符串x
替换值y
,与C printf相同。另请注意,%%
说明符代表文字 % 符号,因此格式字符串中的 s%%s
将打印为 s%s,并且不会捕获字符串。