【问题标题】:How does this Python 3 quine work?这个 Python 3 quine 是如何工作的?
【发布时间】:2016-01-09 08:46:05
【问题描述】:

找到了这个quine的例子:

s='s=%r;print(s%%s)';print(s%s)

我知道%s%r 执行strrepr 函数,正如here 指出的那样,但是s%s 部分的确切含义以及quine 是如何工作的?

【问题讨论】:

    标签: python quine


    【解决方案1】:

    s 设置为:

    's=%r;print(s%%s)'
    

    所以%rs%s 中的那个(保留单引号)和最后的%% 替换为一个%,给出:

    s='s=%r;print(s%%s)';print(s%s)
    

    因此是quine。

    【讨论】:

    • 具体来说,%r 表示使用 repr() 函数,而不是 str() 函数 (%s)。见printf-style String Formatting
    • 谢谢!还有here我找到了一个详细的解释,为什么 s%%s 像 s%s 一样打印。
    【解决方案2】:

    运算符x % y 表示将值y 替换为格式字符串x,与C printf 相同。另请注意,%% 说明符代表文字 % 符号,因此格式字符串中的 s%%s 将打印为 s%s,并且不会捕获字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2019-08-21
      相关资源
      最近更新 更多