为字符串中的每个项目提供可变的可变值吗?

时间:2018-08-09 14:29:33

标签: python

因此,我正在制作一个简化的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)。我知道到目前为止,还有其他(也许更好)的方法可以实现我的目标,但这是我最好的理解。是否可以通过这种方式实现我的目标,还是需要其他方法?

1 个答案:

答案 0 :(得分:2)

所有要做的就是增加用于编码消息的计数器。在您的情况下,计数器为state1,因此类似的事情应该起作用。

for character in message:
    number = ord(character) + state1
    if number >= 123:
        number = number -26
    code1.append(number)
    state1 += 1