Я пытаюсь создать веб-страницу, которая использует интерактивную ячейку Sage для реализации шифрования Vigenere в строках, введенных пользователем. Код работает отлично, когда я запускаю его вне интерактивной ячейки. См. Ниже:Синтаксические ошибки с интерактивной ячейкой Sage
message = 'Beware the Jabberwock, my son!'
key = 'VIGENERECIPHER'
from itertools import starmap, cycle
def encrypt(message, key):
message = filter(lambda _: _.isalpha(), message.upper())
def enc(c,k): return chr(((ord(k) + ord(c)) % 26) + ord('A'))
return "".join(starmap(enc, zip(message, cycle(key))))
encr = encrypt(message, key)
print encr
Но когда я пытаюсь реализовать его в интерактивной ячейке, я получаю синтаксические ошибки.
@interact
def f(message = input_box('Beware the Jabberwock, my son!', label ="Plain text"), key = input_box('VIGENERECIPHER', label = "Key word")):
from itertools import starmap, cycle
def encrypt(message, key):
message = filter(lambda _: _.isalpha(), message.upper())
def enc(c,k): return chr(((ord(k) + ord(c)) % 26) + ord('A'))
return "".join(starmap(enc, zip(message, cycle(key))))
encr = encrypt(message, key)
print encr
напечатана следующая ошибка:
AttributeError: 'exceptions.SyntaxError' object has no attribute 'upper'
Я новичок в Python/мудреца ... Я предполагаю, что это какая-то ошибка с классом/типа? Я пробовал поиск по Google, но я не могу найти ничего, связанного с этой проблемой. Спасибо