【发布时间】:2017-03-11 19:05:13
【问题描述】:
Python:如何使用 8 位密钥加密长度为 n 的字符串。
到目前为止,我的代码如下 - 但是它只会加密字符串的长度,直到密钥(或密钥长度)中的第 8 位。我需要在密钥结束时重置密钥并继续其余的字符串。真的卡在这个了。任何指导或帮助将不胜感激。
def code_char(c,key):
c = ord(c)
if c >= 65 and c <= 90:
c = c + key
if c <= 90:
return chr(c)
while c > 90:
c = c - 26
return chr(c)
elif c >= 97 and c <= 122:
c = c + key
if c <= 122:
return chr(c)
while c > 122:
c = c - 26
return chr(c)
def code_block(word, key):
newWord = ""
for char, num in zip(word, key):
newWord = newWord + code_char(char, int(num))
return newWord
print(code_block('abcdefghijklmn','111111111'))
感谢您的帮助 - 应该说明我不允许为此使用任何内置函数。
【问题讨论】:
-
使用
while而不是else是一个奇怪的选择。此外,即使在此处使用if而不是使用模运算也会使代码不必要地冗长。 -
感谢您的提醒。这会是以后的问题还是只是不必要的?
-
当你真正的意思是 else 时使用一段时间是复杂的,迟早是复杂的代码是一个问题。另外,您 正在 在这里使用模运算,因此您不妨使用 % 来明确说明。
标签: python