Синтаксические ошибки Vigenere Cipher
Я должен сделать программу, которая ведет себя так:
$Python
vigenere.py
Type a message:
The crow flies at midnight!
Encryption key:
boom
Uvs fsck rmwse bh auebwsih!
Использование Vigenere Cipher
Я должен использовать вспомогательную функцию и импортировать ее в эту функцию, которая, как я знаю, работает
import string
alphabet_pos = "abcdefghijklmnopqrstuvwxyz"
def alphabet_position(letter):
pos = alphabet_pos.index(letter.lower())
return pos
def rotate(letter, rot):
pos = alphabet_position(letter)
new_pos = (pos + rot) % 26
new_char = alphabet_pos[new_pos]
return new_char
После этого я начал шифровать часть Vigenere
from helpers import alphabet_position, rotate
from caesar import encrypt
def encrypt(text,key):
#Declare variable
cipher = ''
#Compute length
l = len(key)
#Assign value
idx = 0
#Loop
for i in text:
#if condition satisfies
if i.isalpha():
#Call method
cipher += rotate_character(i,alphabet_position(key[idx]))
#Update to next
idx = (idx+1)%1
#Otherwise
else:
#Increment
cipher += i
#Return
return cipher
#Define main
def main():
Когда я запускаю это, он запрашивает у меня сообщение, но возвращает сообщение о том, что в строке 51 есть синтаксические ошибки в <module> main(
) и строка 38, в
main text = input("Type a message: /n"))
File "<string>", line 1
1 ответ
Не уверен, почему ты использовал main text = ...
ВМЕСТО просто text = ...
или же main_text = ...
а также похоже, что у вас есть лишние скобки в конце....
так,
если вы хотите получить строку от пользователя и сохранить ее в переменной text
Вы должны переписать свое утверждение так:
Если вы используете Python3:
text = input("Type a message: ")
Если вы используете Python2:
text = raw_input("Type a message: ")
Пожалуйста, укажите, какую версию Python вы используете в следующий раз, когда вы спросите, чтобы нам было легче ответить:)
(Вы можете проверить версию, с которой вы работаете import sys; print(sys.version)
)