在我的程序中,用户输入一些加密文本,对于我的示例,加密文本为:,@AK ,=PL /ADD x= {F;JQHL=< ghi p_
在任何人说出低级加密之前,这是一个非常基本的程序..我知道!
反正 它将加密的文本转换为ascii代码,因此它看起来像这样:
print(convert)
[111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
我需要一些帮助,我需要从27中减去该列表中的每个数字然后如果结果小于33则添加94然后打印数字,因为它们只是用这个数字完成我怎么做?< / p>
答案 0 :(得分:1)
使用列表理解,它更简单,更整洁。你可以这样做,但我建议你阅读一些有关它的内容,以了解发生了什么。
convert = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
convert = [x - 27 if x - 27 >= 33 else x - 27 + 94 for x in convert]
print(convert)
<强>结果:强> [84,104,105,115,99,84,101,120,116,99,87,105,108,108,99,66,101,99,69,110,99,114,121,112,116 ,101,100,99,49,50,51,99,58,41]
离开了x - 27 + 94,让你明白我做了什么。
在这里查看列表理解: list comprehension
答案 1 :(得分:0)
list = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
for n in range(len(list)):
list[n] -= 27
if(list[n] < 33):
list[n] += 94
print(list)
这应该做的工作
答案 2 :(得分:0)
只需map
一个对列表执行所需操作的函数:
94 -27 = 67 - &gt;如果条件成立,你必须总结一下......
>>> lst = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
>>>>print map(lambda x: x + 67 if x-27 < 33 else x, lst)
[205, 131, 132, 142, 126, 205, 128, 147, 143, 126, 208, 132, 135, 135, 126, 187, 128, 126, 190, 137, 220, 141, 148, 139, 143, 128, 127, 126, 170, 171, 172, 126, 179, 162]
答案 3 :(得分:0)
IIUC你可以试试,你在哪里列出:
l = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
l1 = [i + 67 if (i - 27) < 33 else i - 27 for i in l]
In [8]: l1
Out[8]:
[84, 104, 105, 115, 99, 84, 101, 120, 116, 99, 87, 105, 108, 108, 99, 66, 101, 99, 69, 110, 99, 114, 121, 112, 116, 101, 100, 99, 49, 50, 51, 99, 58, 41]