Python 3.x Python密码和嵌套循环

Python 3.x Python密码和嵌套循环,python-3.x,nested-loops,Python 3.x,Nested Loops,我对python非常陌生,我遇到了密码问题。 我需要显示与两个输入语句相关的3列。 用户输入为“消息”和“键文本”。 第一列只是一次吐出一个字母的“消息”。 第二列显示“keytext”输入的数值。 第三列显示通过将“message”中的字母移动“keytext”指示的相应值而创建的新文本 (抱歉,这有点难以描述) 现在我知道如何做一个简单的密码,但它让所有三列同时显示和合作,我只是不明白,似乎在任何地方都找不到答案。(或许我只是不知道该问什么) 这是我目前的代码,在这个变体中,我似乎无法让中间

我对python非常陌生,我遇到了密码问题。 我需要显示与两个输入语句相关的3列。 用户输入为“消息”和“键文本”。 第一列只是一次吐出一个字母的“消息”。 第二列显示“keytext”输入的数值。 第三列显示通过将“message”中的字母移动“keytext”指示的相应值而创建的新文本 (抱歉,这有点难以描述)

现在我知道如何做一个简单的密码,但它让所有三列同时显示和合作,我只是不明白,似乎在任何地方都找不到答案。(或许我只是不知道该问什么)

这是我目前的代码,在这个变体中,我似乎无法让中间的列正确地迭代

keytext = str(input("Keytext? ").upper())
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for i in message:
    place = alphabet.find(i)
    for j in keytext:
        place2 = alphabet.find(j)
        newplace = (place + place2)% 26
        code = alphabet[newplace]
    print(i,place2,code)
如果message=hello和keytext=abcde,则预期输出为

H 0 H
E 1 F
L 2 N
L 3 O
O 4 S
然而,目前:

H 4 L
E 4 I
L 4 P
L 4 P
O 4 S
因此,它只是想知道如何在循环中正确地匹配第2列。。。 有人对我如何着手解决这个问题有什么建议吗?任何帮助都是值得的


谢谢

除了一个小小的偏差之外,你确实找到了方法。在内部
for
循环中,
j
迭代
keytext
,然后覆盖
code
。因此,与预期输出的偏差。您所要做的就是移除内部
for
循环

message = str(input("Message? ")).upper()
keytext = str(input("Keytext? ")).upper()

# Length of keytext and message should be same.
assert len(message) == len(keytext)

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in range(len(message)):
    place = alphabet.find(message[i])
    place2 = alphabet.find(keytext[i])
    newplace = (place + place2) % len(alphabet)
    code = alphabet[newplace]
    print(message[i], place2, code)
输出:

Message? hello
Keytext? abcde
H 0 H
E 1 F
L 2 N
L 3 O
O 4 S

你能把参考算法也放在问题中吗?这应该不是问题,但我会使用
%len(字母表)
而不是
%26
是的。这不应该是问题所在。天真的怀疑,keyText和message的长度是否相同?如果我接受了答案,请告诉我是否已回答了您的问题。@tpk哦,我的天哪,非常感谢!我花了这么长时间看这个,我开始发疯了。现在有了这样的意义:)
Message? hello
Keytext? abcde
H 0 H
E 1 F
L 2 N
L 3 O
O 4 S