这个Python单行是什么意思?

时间:2010-12-25 05:57:33

标签: python syntax

s=p=1;exec"if s%p*s%~-~p:print`p`+','+`p+2`\ns*=p*p;p+=2\n"*999

Source.

3 个答案:

答案 0 :(得分:11)

这是对基本理念的解读。

# 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

答案 1 :(得分:7)

计算并打印孪生素数集。

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

非常酷:))

答案 2 :(得分:3)

代码是迭代的。

  1. s=p=1,初始化
  2. exec"f(...)"*999for i in range(999):f(...)":
  3. 相同
  4. s%p是模数
  5. p*s是乘法(x,y),二进制运算
  6. ~-~解释here
  7. \n表示换行,
  8. \ns表示换行符,s是声明s*=p*p;
  9. 的一部分
  10. p+=2表示作业p=p+2
  11. 希望其他人可以填补空白。对于进一步的调查,它的递归方程是什么?