【发布时间】:2017-08-02 01:48:09
【问题描述】:
我正在尝试在 python 中编写一个 Ascii 加密函数,其中输入和加密消息,只考虑字母(不是数字或符号)。
以下功能正在运行并正在使用中:
def code_char(c, key):
return chr(ord(c)+int(key))
def isletter(c):
if 65 <= ord(c) <= 90:
return True
elif 97 <= ord(c) <= 122:
return True
else:
return False
def code_block(word,key):
letters = list(word)
keys = list(key)
coded = []
for letter, digit in zip(letters, keys):
coded.append(code_char(letter, digit))
return "".join(coded)
这是我目前所拥有的:
def encrypt(string, key):
for character in string:
if isletter(character):
return code_block(string, key)
else:
print("Invalid Message or Key")
期待
Ujlw ny h afeuiy slaticji!!
但是得到了输出
Ujlw%oz(
不知道这是怎么回事???
只是一个愚蠢的学生,所以不要去火腿。
有人有什么想法吗?
【问题讨论】:
-
我建议添加打印语句或使用调试器来查看您的代码在每一步都在做什么。
-
您正在编写 return "".join(encryption) 而加密已初始化为空列表。因此,您会变得空白。
-
在@Code-Apprentice 上方编辑
-
那么我怎样才能在空列表中添加一些东西呢?我正在尝试将加密的消息添加到空列表中,以便返回。这是最好的方法吗? @KaushalKumarSingh
-
您的意思是将
code_block(string, key)附加到encryption吗?
标签: python python-3.x encryption ascii