2016-03-28 5 views
1

Я пытаюсь создать веб-страницу, которая использует интерактивную ячейку 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, но я не могу найти ничего, связанного с этой проблемой. Спасибо

ответ

2

Я не вижу этого AttributeError, но вместо этого возникает другая ошибка. Может быть, это симптом того же самого. В любом случае проблема заключается в том, что message=input_box(...) ожидает выражения Python в поле. Вы должны добавить type ключевое слово: (. В качестве альтернативы, вы можете ввести все ваши строки в поле ввода с явными цитатами)

message=input_box('Beware the Jabberwock, my son!', label ="Plain text", type=str) 

 Смежные вопросы

  • Нет связанных вопросов^_^