这个Python 3 quine如何工作?

时间:2015-10-12 00:12:42

标签: python quine

找到这个quine的例子:

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

我得到%s%r执行strrepr函数,如指向here,但究竟是什么意思s%s部分和如何工作?

2 个答案:

答案 0 :(得分:15)

s设置为:

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

因此,%rs%s中的保留单引号'替换为%%,而%只有s='s=%r;print(s%%s)';print(s%s) 给予:

                            return DataCache.get('events/active').then(function(data) {

                                return data;
                            });
                        }
                    }
                }
            }
        });
});

因而是quine。

答案 1 :(得分:3)

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