0

我试图编写一个 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 行,in

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

谢谢,我也把缺少的括号

现在我明白了

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

文件“/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp9RE23a/ code .py”,第 18 行,在 while s1[y] < s1[len(s1)]: IndexError : 列表索引超出范围

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

非常感谢,现在正在运行

而 s1[y] < s1[len(s1) - 1]:

然而,

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

我得到下一个错误

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

文件“/private/var/folders/6-/6-7wRVdAEhuqw8H28uS60U+++TI/-Tmp-/tmp3tx5on/ code .py”,第 20 行,在 s2 = s2 + s1[k] 文件“element.pyx”中,第 1525 行,在 sage.structure.element.RingElement 中。添加(sage/structure/element.c:13476)文件“coerce.pyx”,第 797 行,在 sage.structure.coerce.CoercionModel_cache_maps.bin_op (sage/structure/coerce.c:7678) TypeError: unsupported operand parent(s ) for '+': '' 和 'Integer Ring'

非常感谢

我发现了最后一个问题

我需要使用,现在它正在工作!

s2 = s2 + [s1[k]]

4

1 回答 1

2

您在以下行中有不平衡的括号:

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

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

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

于 2012-11-28T07:04:53.933 回答