Python 更改单词编码器和解码器以提供可识别的空格和标点符号
第二个函数编码一个单词阶段,第三个函数解码相同的单词功能,但它不会跳过空格和标点符号Python 更改单词编码器和解码器以提供可识别的空格和标点符号,python,Python,第二个函数编码一个单词阶段,第三个函数解码相同的单词功能,但它不会跳过空格和标点符号 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)
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字符也不是您的密钥字母-如果您不希望对空格进行加密,请将其添加到这两个字符的相同位置
请注意,您的代码当前忽略了一个事实,即要编码的字符串中有空格,但键字母中没有空格。最好在代码中明确说明这一点-检查字母是否存在,而不是简单地忽略错误。此时空格字符既不在alpha中也不在keyletters中-如果不希望对空格进行加密,则将其添加到这两个字母的相同位置
请注意,您的代码当前忽略了一个事实,即要编码的字符串中有空格,但键字母中没有空格。最好在代码中明确说明这一点-检查字母是否存在,而不是简单地忽略错误。如果字母不是字母,会发生什么?确切地说,它没有被添加,因为它在
alpha
中找不到它的索引。您需要有一个if/else
语句:
def encode(string,keyletters):
alpha="abcdefghijklmnopqrstuvwxyz"
secret = ""
for letter in string:
if letter in alpha:
index = alpha.find(letter)
secret = secret+keyletters[index]
else:
secret = secret + letter
print secret
如果
字母不按字母顺序排列,会发生什么情况?确切地说,它没有被添加,因为它在alpha
中找不到它的索引。您需要有一个if/else
语句:
def encode(string,keyletters):
alpha="abcdefghijklmnopqrstuvwxyz"
secret = ""
for letter in string:
if letter in alpha:
index = alpha.find(letter)
secret = secret+keyletters[index]
else:
secret = secret + letter
print secret