我试图在python3.2中创建一个非常简单的caesar密码,并且已经获得了大部分代码。你知道吗
aEnd = ""
aOffset = int(input("What would you like the offset of your message to be?:\n"))
aMessage = input("What message would you like to encrypt?:\n")
for i in range(len(aMessage)):
eAscii=ord(aMessage[i])
aEnd = aEnd + chr(eAscii + aOffset)
print(aEnd)
然而,当它经过z,而不是直接回到a,它继续通过符号等,所以偏移量为3的“xyz”,而不是“abc”,它变成“{|}”。我该如何改变它,使它只使用字母表?你知道吗
首先,调整
ord()
的返回值,使其表示字母表中的偏移量。为了简化代码,我在这里将所有内容都转换为小写;如果您想保留这种格式,可以为大写和小写创建单独的大小写。你知道吗这将返回字母表中以零为基础的索引。例如,字母
a
返回0
,b
返回1
,等等然后使用此值+偏移量作为字母数组的索引:
通过两次创建包含字母表的数组
letters
,我们可以简单地添加任意偏移量,甚至添加到字母表末尾的字母,并获得正确的替换值。你知道吗这显然只适用于ASCII字符集,不保留大小写,但应该足以让您开始。你知道吗
相关问题 更多 >
编程相关推荐