SageMathCloud: ошибка: неожиданный EOF при разборе

На листе Sage (файл .sagews) в SageMathCloud этот код:

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

Как это можно исправить?


person Tive Surrender    schedule 01.06.2015    source источник
comment
Ваш код соответствует редактированию?   -  person doctorlove    schedule 01.06.2015
comment
Что за странный интервал? Не то чтобы Python это заботило, но ваш код очень трудно читать.   -  person kindall    schedule 01.06.2015
comment
Хотя я бросил интервал, у меня та же ошибка   -  person Tive Surrender    schedule 01.06.2015
comment
@Tive Surrender: 1. Дайте контекст. Вы писали: ‹‹ Я не понимаю, где ошибка. Мой код: [...] Ошибка: [...] ›› Вы могли бы написать: ‹‹ На листе Sage (файл .sagews) в SageMathCloud этот код [...] выдает эту ошибку: [. ..] ›› 2. В SageMathCloud сделайте документ, в котором произошла ошибка, общедоступным и дайте ссылку. Затем люди увидят код и ошибку, смогут скопировать документ в свою учетную запись SageMathCloud и исследовать ошибку в тех же условиях. Смотрите мой комментарий к ответу Дагрумса.   -  person Samuel Lelièvre    schedule 02.06.2015
comment
@SamuelLelièvre Очень хорошее предложение по редактированию. В следующий раз предложите отредактировать вопрос! (На данный момент я объединил ваш комментарий в вопрос для вас.)   -  person Two-Bit Alchemist    schedule 02.06.2015


Ответы (1)


Отступ строки 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 ) )

Обратите внимание, что конкретная причина, по которой это произошло с вами, заключается в том, что вы находитесь в SageMathCloud — см. -02-stackoverflow-30579552.sagews" rel="nofollow noreferrer">эта страница для получения подробной информации об ошибке и исправлении. (Спасибо @Samuel Lelièvre в комментариях.)

person Dagrooms    schedule 01.06.2015
comment
Хотя я согласен, эта ошибка приведет к появлению IndentationError, а не EOFError. - person Two-Bit Alchemist; 02.06.2015
comment
@Two-Bit Alchemist: сообщение об ошибке показывает, что код запускается в SageMathCloud. Ответ Дагрумса правильный. См. этот общедоступный рабочий лист в SageMathCloud для получения подробной информации: rel="nofollow noreferrer">cloud.sagemath.com/projects/ - person Samuel Lelièvre; 02.06.2015
comment
Я исправляюсь. Я не знаком с SageMathCloud и этой конкретной особенностью. К сожалению, я не могу отменить свой DV без редактирования ответа. Редактировать: Там. Я поместил вашу ссылку в ответ, где она, вероятно, и должна быть. - person Two-Bit Alchemist; 02.06.2015