第二个函数编码一个字的阶段,第三个解码相同的字功能,但它不跳过空格和标点符号。你知道吗
def buildCipher(key):
alpha="abcdefghijklmnopqrstuvwxyz"
rest = ""
for letter in alpha:
if not(letter in key):
rest = rest + letter
print key+rest
def encode(string,keyletters):
alpha="abcdefghijklmnopqrstuvwxyz"
secret = ""
for letter in string:
index = alpha.find(letter)
secret = secret+keyletters[index]
print secret
def decode(secret,keyletters):
alpha="abcdefghijklmnopqrstuvwxyz"
clear = ""
for letter in secret:
index = keyletters.find(letter)
clear = clear+alpha[index]
encode("this is zest!!!" , "earthbcdfgijklmnopqsuvwxyz")
#gives me sdfqfqzhqs
#need it to give me sdfq fq zhqs!!!
decode("tdfq fq zhqs!!!" , "earthbcdfgijklmnopqsuvwxyz")
此时,空格字符既不是alpha字符,也不是keyletters字符——如果您不希望对空格进行加密,请将其添加到两者的相同位置。你知道吗
请注意,您的代码当前忽略了这样一个事实:要编码的字符串中有空格,而键字母中没有空格。在代码中明确这一点是个好主意——检查字母是否存在,而不是简单地忽略错误。你知道吗
如果
letter
不是字母顺序会发生什么?确切地说,它没有被添加,因为它在alpha
中找不到它的索引。您需要有一个if/else
语句:相关问题 更多 >
编程相关推荐