I';我正在尝试用Python实现简单的列表加密

I';我正在尝试用Python实现简单的列表加密,python,Python,所以,我必须模拟某种加密协议。例如,我有一份清单 嘿=['Z','A'] 然后使用ord()命令将该列表转换为ascii列表。没什么大不了的。问题就在这里。为了加密,我输入一些移位值,移动ascii值,然后将其改回字母。它应该是从A到Z的大写字母,所以ascii码的范围是从65到90。我修改了移位值,所以即使它大于26,仍然可以正常工作。然而,我如何修改ascii列表本身,以便如果列表中的一个元素大于90,它会向后移动? 我试过这个: num=[ord(i)+shift for i in hey

所以,我必须模拟某种加密协议。例如,我有一份清单 嘿=['Z','A'] 然后使用ord()命令将该列表转换为ascii列表。没什么大不了的。问题就在这里。为了加密,我输入一些移位值,移动ascii值,然后将其改回字母。它应该是从A到Z的大写字母,所以ascii码的范围是从65到90。我修改了移位值,所以即使它大于26,仍然可以正常工作。然而,我如何修改ascii列表本身,以便如果列表中的一个元素大于90,它会向后移动? 我试过这个:

num=[ord(i)+shift for i in hey]
if num[i]>90:
   num[i]=num[i]-26

然而,只有当列表的两个(或所有)元素都大于90时,才会发生移位。有没有办法使该条件分别影响每个元素?因此,如果一个元素的ascii值大于90,则会发生移位,但另一个值在大于90之前不会受到影响。

num=[(ord(i)+shift)if ord(i)+shift
num=[(ord(i)+shift
num=[(ord(i)+shift
num=[(ord(i)+shift)if ord(i)+shift)+shift我认为在这里使用模运算符
%
会更好。这会得到除法的剩余部分

num=[(ord(i)+shift) if ord(i) + shift <= 90 else (ord(i)+shift - 26) for i in hey]
示例:

>>> 10 % 5
0
>>> 10 % 2
0
>>> 10 % 3
1
>>> 10 % 6
4
使用此选项,您可以将代码替换为:

num = [(ord(i) + shift - 65) % 26 + 65 for i in hey]

这也适用于较大的移位值。减去26意味着当
shift>=27

时,仍然可以超出范围。我认为在这里使用模运算符
%
会更好。这会得到除法的剩余部分

示例:

>>> 10 % 5
0
>>> 10 % 2
0
>>> 10 % 3
1
>>> 10 % 6
4
使用此选项,您可以将代码替换为:

num = [(ord(i) + shift - 65) % 26 + 65 for i in hey]

这也适用于较大的移位值。减去26意味着当
shift>=27

时,仍然可以超出范围。我认为在这里使用模运算符
%
会更好。这会得到除法的剩余部分

示例:

>>> 10 % 5
0
>>> 10 % 2
0
>>> 10 % 3
1
>>> 10 % 6
4
使用此选项,您可以将代码替换为:

num = [(ord(i) + shift - 65) % 26 + 65 for i in hey]

这也适用于较大的移位值。减去26意味着当
shift>=27

时,仍然可以超出范围。我认为在这里使用模运算符
%
会更好。这会得到除法的剩余部分

示例:

>>> 10 % 5
0
>>> 10 % 2
0
>>> 10 % 3
1
>>> 10 % 6
4
使用此选项,您可以将代码替换为:

num = [(ord(i) + shift - 65) % 26 + 65 for i in hey]

这也适用于较大的移位值。减去26意味着当
shift>=27

时,你仍然可以超出范围。这基本上就是我得到的…最后是我的附录:p(+1)这基本上就是我得到的…最后是我的附录:p(+1)这基本上就是我得到的…我的附录在结尾:P(+1)这基本上就是我得到的…我的附录在结尾:P(+1)@user2961792如果这个答案对你有帮助,它会对你有好处。@user2961792如果这个答案对你有帮助,它会对你有好处。@user2961792如果这个答案对你有帮助,它会对你有好处。@user2961792如果这个答案对你有帮助,它会对你有好处。