晚上/早上
过去两天我一直在尝试制作一个执行希尔密码的程序。到目前为止我唯一的问题是我找不到将空格替换为 0 的方法。我尝试过执行可能(或在我的情况下不起作用)工作的不同条件,我要么在屏幕上没有显示任何内容,要么从空间 -96 中得到 ascii 值。这是我到目前为止得到的:
import math
import sys
import string
import numpy as np
from numpy import matrix
msg = sys.argv[1]
key1 = sys.argv[2]
key2 = sys.argv[3]
key3 = sus.argv[4]
key4 = sys.argv[5]
base = sys.argv[6]
key_matrix = np.matrix([[int(key1), int(key3)], [int(key2), int(key4)]])
lettconv = [ord(lett) - 96 for lett in msg]
代码可能有点令人讨厌,对此感到抱歉,我仍然是Python和一般编程的菜鸟。 任何事情都会很棒,我宁愿有一个关于如何做到这一点的解释,因为这是为我的大学做的事情,我很迷失,可以使用一些指导。
干杯!
最佳答案
所以,如果我理解正确的话,在列表理解中,如果字母是空格,则需要使用值 0
,否则您需要使用 ord(lett) - 96
。您可以使用 conditional expression将这个逻辑表达如下:
0 if lett == ' ' else ord(lett) - 96
将其放入理解中:
lettconv = [0 if lett == ' ' else ord(lett) - 96 for lett in msg]
关于python - 将数组中的空格替换为 0 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20200007/