SageMathCloud:错误:解析时意外的EOF

时间:2015-06-01 17:26:21

标签: python eof sage

在SageMathCloud的Sage工作表(.sagews文件)中,此代码:

def elgamal_encrypt ( pub_key ,g ,p , message ):
k = floor ( 1+( p -2)* random ())
return ( Mod (g , p )^ k , message * Mod ( pub_key ^k , p ) )

产生错误:

Error in lines 1-1

Traceback (most recent call last):
  File "/projects/7870d70a-93d1-44f4-bce4-990a540707b7/.sagemathcloud/sage_server.py", line 879, in execute
    exec compile(block+'\n', '', 'single') in namespace, locals

  File "<string>", line 1

    def elgamal_encrypt ( pub_key ,g ,p , message ):
                                                   ^
SyntaxError: unexpected EOF while parsing

如何纠正?

1 个答案:

答案 0 :(得分:2)

缩进k=...行。另外,请考虑使用不言自明的变量名来获得更清晰的代码。

def elgamal_encrypt ( pub_key ,g ,p , message ):
    k = floor ( 1+( p -2)* random ())
    return ( Mod (g , p )^ k , message * Mod ( pub_key ^k , p ) )

强制性阅读:https://www.python.org/dev/peps/pep-0008/

请注意,发生这种情况的特殊原因是因为您使用的是SageMathCloud - 有关错误和修复的详细信息,请参阅this page。 (感谢@SamuelLelièvre的评论。)