如何将数字列表与while循环给出的多个输出组合在一起

时间:2017-01-19 09:02:05

标签: python python-3.x

只是一个快速说明:标题可能不是100%准确,因为我真的不知道如何解释我的问题。

我创建了一个Caesar密码,它将重复所有26种不同的变体,这里的问题是,除了输出的文本,我想对每个变体进行编号,但它不起作用。

message = """SAHH"""  # Add Code
message = message.upper()
keyShift = 1
encryptedMsg = ""
Waste = '  '



#running the program
while keyShift <= 26:
    for character in message:
        if character.isalpha() == True:
            x = ord(character) - 65
            x += keyShift
            x = x % 26
            encryptedMsg += chr(x + 65)
        else:
            encryptedMsg += character

    for a in enumerate(encryptedMsg, 1):
        print('{}'.format(a),encryptedMsg,"\n")
        encryptedMsg = Waste

        keyShift +=1 

如果你运行它,输出将是第一个变体的每个字母都有它自己的号码。

for a in enumerate(encryptedMsg, 1):
     print('{}'.format(a),encryptedMsg,"\n")

目标如上所述,凯撒密码的每个变体都应该有一个数字,这段代码给第一个变体的每个字母一个数字。

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要创建结果字典而不是枚举您的消息。不过,我不太明白你想用后来的for循环来实现什么。

您是否只想创建具有不同键移位的凯撒的所有变体并打印它们?如果是这样,假设你的代码是正确的,这将(可能)这样做:

message = """SAHH"""  # Add Code
message = message.upper()
keyShift = 1
encryptedMsg = ""
Waste = '  '
results = {}


#running the program
while keyShift <= 26:
    encryptedMsg = ""
    for character in message:
        if character.isalpha() is True:
            x = ord(character) - 65
            x += keyShift
            x %= 26
            encryptedMsg += chr(x + 65)
        else:
            encryptedMsg += character

    results[keyShift] = encryptedMsg
    keyShift =+ 1


for r in results.keys():
    print r, results[r]

或者你的意思是其他什么?

哈努哈利