我正在尝试用alpha中的字母替换键中的字母(反之亦然):
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
我正在尝试将字符串更改为已编码(反之亦然),因此请说“Hello”将变为“LTZZE”。知道怎么做吗?这是我目前的代码:
usrInput = 0
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
def menu():
print "SECRET DECODER MENU"
print ""
print "1) Quit"
print "2) Encode"
print "3) Decode"
usrInput = raw_input("What would you like to do?")
return usrInput
def encodeWord():
plain = plain.upper()
length = len(plain)
encode = plain.encode(alpha, key)
return encode
def decodeWord():
coded = coded.upper()
length = len(coded)
decode = coded.decode(key, alpha)
return decode
def main():
keepGoing = True
while keepGoing:
usrInput = menu()
if usrInput == "2":
plain = raw_input("Text you want to be encoded: ")
encodeWord()
print encode(plain)
elif usrInput == "3":
coded = raw_input("Code you need to be decyphered: ")
decodeWord()
print decode(coded)
elif usrInput == "1":
print "Thanks for doing super secret spy stuff with me. No one seems to want to anymore. Goodbye. ):"
keepGoing = False
else:
print "I don't know what to do! Ahhh!"
main()
答案 0 :(得分:2)
请注意,这是计算机科学课程的家庭作业。我创建了作业,我意识到它有关于堆栈溢出的问题。如果你把它作为自己的作品,我会知道。你将获得零作业,我们将开始学术不端行为。
(如果你在家里玩,这确实是一个字符串操作任务,并且明确地不被认为是一个很好的加密实践。我们也不允许maketrans()用于这个任务,因为它&#39 ;为初级程序员提供字符串操作和函数练习。)
如果您真的急需帮助,请来看我或我们为您提供帮助的背诵领导人之一。
答案 1 :(得分:1)
使用str.maketrans和str.translate。如果您使用Python 2,则此功能位于string
(here (maketrans)和here (translate))。
示例(python 3):
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
enc = str.maketrans(alpha, key)
usrInput = 'HELLO'
print(usrInput.translate(enc))
示例(python 2)
import string
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
enc = string.maketrans(alpha, key)
inp = 'HELLO'
print string.translate(inp, enc)
输出:
LTZZE