Python Vigenere代码重复错误

Python Vigenere代码重复错误,python,vigenere,Python,Vigenere,我们必须为一个项目使用vigenere密码,而我的代码只是不断地重复。就像它不会运行加密或解密。 这是我的密码。 例如,它就是这样做的 “嘿,用户 你的留言是什么?嗨 这封信里有多少封信 您要解密还是加密?解密 让我们解密你的信息 您要解密还是加密?” 打印“你好,用户!” def vig(): dore=原始输入(“您想解密还是加密?”) 如果在dore中“解密”: 打印“让我们解密您的邮件!!” 其他: 打印“让我们加密您的邮件!!” def dore(信息): 加密=“” 解密=“” 如果

我们必须为一个项目使用vigenere密码,而我的代码只是不断地重复。就像它不会运行加密或解密。 这是我的密码。 例如,它就是这样做的

“嘿,用户

你的留言是什么?嗨

这封信里有多少封信

您要解密还是加密?解密

让我们解密你的信息

您要解密还是加密?”

打印“你好,用户!”
def vig():
dore=原始输入(“您想解密还是加密?”)
如果在dore中“解密”:
打印“让我们解密您的邮件!!”
其他:
打印“让我们加密您的邮件!!”
def dore(信息):
加密=“”
解密=“”
如果在vig()中“加密”:
对于范围(0,len(消息))中的i:
e=ord(信息[i])+ord(键[i%len(键)])-65
如果e>90:
e-=26
加密+=chr(e)
打印加密
如果在vig()中“解密”:
e=ord(信息[i])-ord(键[i%len(键)])+65
如果e<65:
e+=26
解密+=chr(e)
打印解密
####################################
###########################################:)#####
消息=原始输入(“你的消息是什么?”)
key=原始输入(“消息中有多少个字母?”)
vig()
多尔(留言)
消息=消息
加密=“”
解密=“”

您在
dore
中首先要做的事情之一是再次调用
vig

if "encrypt" in vig():
尝试将加密和解密分为两个函数,并相应地调用它们:

def vig(message):
    ui = raw_input("Encrypt or decrypt? ").lower()
    if "decrypt" in ui:
        return decrypt(message)
    else:
        return encrypt(message)
此外,用户无需输入消息的长度,只需执行以下操作:

key = len(message)

你能看一下你的缩进吗?是的,我的不好,但它就在我的常规代码上。抱歉。现在它说的是回溯(最近一次调用最后一次):文件“C:/Python27/fehio.py”,第31行,在vig(消息)文件“C:/Python27/fehio.py”,第25行,在vig返回加密(消息)名称错误:全局名称“encrypt”没有定义好,是的;您需要根据当前函数的两个部分
dore
实际定义这两个函数
encrypt
decrypt
key = len(message)