我坚持做换人

时间:2014-04-02 18:36:23

标签: python encryption

我制作的程序涉及3个文件,加密文本文件(words.txt),包含3条线索的文件(clues.txt)和解决的文本文件(我们不需要)担心它)。 这是我到目前为止所处的位置:

print('This is the encrypted code:')
CodedFile = open('words.txt' , 'r+')
print(CodedFile.read())
CodedFile.close()
time.sleep(3)
print()
print('These are a few hints to get you started:')
HintFile = open('clues.txt' , 'r+')
print(HintFile.read())
HintFile.close()
time.sleep(2)

现在我必须从提示文件中取3个提示并将它们替换为加密代码,三个提示是A =#M = * N =%。其中一个词是ALMANAC,它将是#3 *#%#+加密。如何从#3 *#%#+到A3MANA +,只需使用提示部分,非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

你在寻找类似的东西:

codedFile = open("words.txt")
encryptedText = codedFile.read()
codedFile.close()

cluesFile = open("clues.txt")
cluesLines = cluesFile.readlines()
cluesFile.close()

clues = {}
for line in cluesLines:
    clues[line[2]] = line[0]

print(''.join(clues.get(c, c) for c in encryptedText))

cluesFile.readlines()读取所有文件并返回行列表:['A=#\n', 'M=*\n', 'N=%\n']

clues是替换字典。在{'%': 'N', '#': 'A', '*': 'M'}周期后,它将等于for

如果有替换,最后一行将c中的每个字符encryptedText替换为clues中的字符。如果没有这样的密钥,则字典的方法get(key, default)会返回分配给密钥keydefault的值。