【问题标题】:Python, generate prime twinsPython,生成素数双胞胎
【发布时间】:2012-11-28 06:57:53
【问题描述】:

我尝试编写一个python程序来生成sage中的素数双胞胎。

但是我似乎无法让它工作。

代码: http://pastebin.com/PRnvJsf3

Sage 给我以下错误信息:

Traceback (most recent call last):    y = 1
  File "", line 1, in <module>

  File "/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp8b0dCT/___code___.py", line 19
    while s1[y] < s1[len(s1)]
                            ^
SyntaxError: invalid syntax

谢谢我把缺少的冒号。

现在我明白了

Traceback(最近一次调用最后一次):y = 1 文件“”,第 1 行,在

文件“/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmpEIEhQs/code.py”,第 19 行 如果 (s1[k] + s1[y]) == ((s1[k] + (s1[k] + _sage_const_2 )): ^ SyntaxError: 无效语法

谢谢,我也把缺少的括号放进去

现在我明白了

Traceback(最近一次调用最后一次):y = 1 文件“”,第 1 行,在

文件“/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp9RE23a/代码.py”,第 18 行, 在 而 s1[y]

嗯,我想我不能在这里使用 len(s1)。

非常感谢,现在可以使用了

当 s1[y]

然而,

s2 = s2 + s1[k] 似乎不是有效代码。

我得到下一个错误

Traceback(最近一次调用最后一次):y = 1 文件“”,第 1 行,在

文件“/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp3tx5on/代码.py”,第 20 行, 在 s2 = s2 + s1[k] 文件“element.pyx”,第 1525 行,在 sage.structure.element.RingElement.add (sage/structure/element.c:13476) 文件“coerce.pyx”,第 797 行,在 sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/structure/coerce.c:7678) TypeError: '+': '' 和 'Integer Ring' 的父操作数不受支持

非常感谢

我发现了最后一个问题

我需要使用,现在可以使用了!

s2 = s2 + [s1[k]]

【问题讨论】:

    标签: python sage


    【解决方案1】:

    以下行的括号不平衡:

    if (s1[k] + s1[y]) == ((s1[k] + (s1[k] + 2)):
    

    我还注意到x.is_prime() 的使用。我不知道这是否是 Sage 的东西,但我的独立 Python 解释器没有 int.is_prime() 方法。

    最后,s1[len(s1)]总是引发IndexError 异常,因为s1 的索引从零运行到len(s1)-1

    【讨论】:

    • x.is_prime() 在 sage 中工作,所以我想它一定是 Sage 的东西。
    • 是的,事实上 Sage 将 int 输入预解析为 Sage 特定的类 Integer,它确实有这个方法。
    猜你喜欢
    • 2022-11-13
    • 2012-10-27
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多