Python Vigenere 代码重复错误
Posted
技术标签:
【中文标题】Python Vigenere 代码重复错误【英文标题】:Python Vigenere Code repeating error 【发布时间】:2014-02-24 22:04:36 【问题描述】:我们必须为一个项目做一个 vigenere 密码,而我的代码只是不断重复自己。就像它不会运行加密或解密一样。 这是我的代码。 例如,这就是它的作用..
“你好,用户!
你的消息是什么??嗨
消息中有多少个字母?2
你要解密还是加密?解密
让我们解密你的消息!!
您要解密还是加密?"
print "Hey There user!"
def vig():
dore = raw_input("Do you want to decrypt or encrypt?")
if "decrypt" in dore:
print "Lets decrypt your message!!"
else:
print "lets encrypt your message!!"
def dore(message):
encrypt = ''
decrypt = ''
if "encrypt" in vig():
for i in range(0, len(message)):
e = ord(message[i]) + ord(key[i%len(key)]) - 65
if e > 90:
e -= 26
encrypt += chr(e)
print encrypt
if "decrypt" in vig():
e = ord(message[i]) - ord(key[i%len(key)]) + 65
if e < 65:
e += 26
decrypt += chr(e)
print decrypt
####################################
###########################################:)#####
message = raw_input("whats your message??")
key = raw_input("How many letters are in the message?")
vig()
dore(message)
message = message
encrypt = ''
decrypt = ''
【问题讨论】:
能否请您检查一下您的缩进。 是的,我的错,但它在我的常规代码中是正确的。对不起。 【参考方案1】:您在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)
【讨论】:
现在它说 Traceback(最近一次调用最后):文件“C:/Python27/fehio.py”,第 31 行,在dore
的两个部分实际定义这两个函数encrypt
和decrypt
。以上是关于Python Vigenere 代码重复错误的主要内容,如果未能解决你的问题,请参考以下文章