蛮力凯撒密码

Brute force Caesar Cipher

如何让我的程序在不同的行上打印答案 + 该行对应的键是什么?

def break_crypt(message):
    for key in range(1,27):

        for character in message:

            if character in string.uppercase:

                old_ascii=ord(character)
                new_ascii=(old_ascii-key-65)%26+65
                new_char=chr(new_ascii)
                sys.stdout.write(new_char),

            elif character in string.lowercase:

                old_ascii=ord(character)
                new_ascii=(old_ascii-key-97)%26+97
                new_char=chr(new_ascii)
                sys.stdout.write(new_char),

            else:
                sys.stdout.write(character),

跳行只需使用“\n” 例如:

sys.stdout.write("a\nb")

将把 a 和 b 写在不同的行中

使用 + 将字符串添加到另一个字符串

sys.stdout.write("a"+variable+"b")

还有其他"more advanced"方式,例如

sys.stdout.write("a%sb" % variable)

sys.stdout.write("a{0}b".format(variable)

同样在你的代码中,如果没有必要使用 sys.stdout.write 不要使用它

这可能对你有帮助 https://docs.python.org/2/tutorial/introduction.html

如果您只是在外循环的末尾添加以下内容,那么它将打印密钥并转到下一行:

        print '', key

然后输出将如下所示:

Sghr hr z sdrs 1
Rfgq gq y rcqr 2
Qefp fp x qbpq 3
        .
        .
        .
Uijt jt b uftu 25
This is a test 26

但我真的会在字符串变量中为当前键构建整个字符串,然后立即打印它。