如何将数字列表与while循环给出的多个输出结合起来

2024-04-23 22:43:30 发布

您现在位置:Python中文网/ 问答频道 /正文

只是一个简短的提示:标题可能不是100%准确,因为我真的不知道如何解释我的问题。你知道吗

我创建了一个凯撒密码,将重复所有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")

正如我在上面所说的,凯撒密码的每一个变体都应该有一个数字,这个代码给第一个变体的每个字母一个数字。你知道吗


Tags: informat密码标题messagefor字母数字
1条回答
网友
1楼 · 发布于 2024-04-23 22:43:30

如果我正确理解您的问题,您需要创建一个结果字典,而不是枚举您的消息。不过,我不太明白你在后面的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]

或者你是说别的什么?你知道吗

汉努

相关问题 更多 >