我应该制作一个行为类似于这样的程序:
$Python
vigenere.py
Type a message:
The crow flies at midnight!
Encryption key:
boom
Uvs fsck rmwse bh auebwsih!
使用Vigenere密码
我要使用一个辅助函数,并将其导入该函数,该函数我知道是可行的
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():
运行此命令时,它将要求我键入一条消息,但返回说<module> main(
的第51行中有语法错误,并且
main text = input("Type a message: /n"))
File "<string>", line 1
答案 0 :(得分:0)
不确定为什么您只使用main text = ...
或text = ...
的{{1}} INSTEAD,而且看起来最后还有一个括号。...
所以
如果您想从用户那里获取一个字符串并将其存储在变量main_text = ...
中,则应该这样重写语句:
如果您使用的是 Python3 :
text
如果您使用的是 Python2 :
text = input("Type a message: ")
请在下次询问时指定您正在使用的python版本,以便我们轻松回答:)
(您可以检查使用text = raw_input("Type a message: ")
运行的版本)