因此,我正在制作一个简化的Enigma风格的代码,其中每个字符都被更改为另一个字符,但是编码在每个字符之后都会更改。到目前为止,我有:
message = input("Message?")
message = message.lower()
state1 = int(input("State 1?"))
code1 = []
code2 = []
for character in message:
number = ord(character) + state1
if number >= 123:
number = number -26
code1.append(number)
print (code1)
for character in code1:
word = chr(character)
code2.append(word)
print (code2)
因此,如果state1 = 1,“ abc”将变为“ bcd”,但是我希望state1为每个字符加一,以便“ abc”将变为“ bdf”(a + 1 = b,b + 2 = d,c + 3 = f)。我知道到目前为止,还有其他(也许更好)的方法可以实现我的目标,但这是我最好的理解。是否可以通过这种方式实现我的目标,还是需要其他方法?
答案 0 :(得分:2)
所有要做的就是增加用于编码消息的计数器。在您的情况下,计数器为state1
,因此类似的事情应该起作用。
for character in message:
number = ord(character) + state1
if number >= 123:
number = number -26
code1.append(number)
state1 += 1