Подтвердить что ты не робот

Как работает эта программа Python 3?

Нашел этот пример quine:

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

Я получаю, что %s и %r выполняют функции str и repr, как указано здесь, но что именно означает s%s и как работает quine?

4b9b3361

Ответ 1

s установлено значение:

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

поэтому %r заменяется на то, что (сохраняя одинарные кавычки) в s%s и окончательном %% с одним %, давая:

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

и, следовательно, quine.

Ответ 2

Оператор x % y означает подстановку значения y в строку формата x, так же, как C printf. Также обратите внимание, что спецификатор %% обозначает буквенный знак%, поэтому s%%s в строке формата будет печататься как s% s и не будет записывать строку.