在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
如何纠正?
答案 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的评论。)