这个Python单行代码是什么意思?

7 投票
3 回答
1015 浏览
提问于 2025-04-16 09:01
s=p=1;exec"if s%p*s%~-~p:print`p`+','+`p+2`\ns*=p*p;p+=2\n"*999

来源。

3 个回答

3

这段代码是一个循环的过程。

  1. s=p=1,这是初始化的步骤。
  2. exec"f(...)"*999for i in range(999):f(...)是一样的意思,都是重复执行函数999次。
  3. s%p表示取余运算,也就是求余数。
  4. p*s表示乘法运算,(x,y)是二元操作。
  5. ~-~的解释可以在这里找到。
  6. \n表示换行。
  7. \ns表示换行,然后s是声明的一部分,像是s*=p*p;
  8. p+=2的意思是把p的值加2,也可以写成p=p+2

希望其他人能补充更多信息。想进一步了解的话,这个代码的递归方程是什么呢?

7

它计算并打印出一对对的双生素数。

3,5
5,7
11,13
17,19
29,31
41,43
59,61
71,73
101,103
107,109
137,139
.....

真不错 :)

12

这里是基本想法的简单解释。

# p = 1; s = p
s=p=1
#exec"if s%p*s%~-~p:print`p`+','+`p+2`\ns*=p*p;p+=2\n"*999
for i in range(999):
    # s%p = remainder of s/p
    # ~p = 1s complement of p
    if s%p*s%~-~p:
        # `p` = repr(p)
        print`p`+','+`p+2`
    # s = s*p*p
    s*=p*p
    # p = p+2
    p+=2

撰写回答