我正在研究一个简单的加密程序,并且我希望它能够正常工作,以便每个特定的符号始终会变成另一个特定的符号。那可能不是最好的描述,但是我不知道该怎么写...例如:
“ a”将是“ h”
“ A”将是“ k”
“ h”将是“ W”
text_1 = "aAh"
text_2 = text_1.replace('a', 'h')
text_3 = text_2.replace('A', 'K')
text_4 = text_3.replace('h', 'W')
print text_4
#the output is "WKW"
#I need the output to be "hKW"
问题是,我对每个符号替换都使用了replace-command,因此,如果我们假设代码以与示例相同的顺序键入,并且我想加密的消息是“ aAh “,那么我希望加密后的输出为“ hKW”,但实际上我们得到的是“ WKW”。
我知道为什么会这样,所以我的问题是:
我如何获得程序以预期的方式对消息进行加密?
答案 0 :(得分:0)
您遇到的问题是您将更改应用于中间字符串(因此先前的更改将影响结果)
考虑尝试计算每个字符在初始字符串上的预期更改,并在此之后构建最终字符串。
答案 1 :(得分:0)
您可以将dict用于字符映射,然后使用生成器表达式来翻译字符:
-Dkotlinx.coroutines.blocking.checker=disable
这将输出:
m = {'a': 'h', 'A': 'K', 'h': 'W'}
print(''.join(m.get(c, c) for c in text_1))