蛮力凯撒密码

时间:2015-05-09 13:26:12

标签: python-2.7 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),

2 个答案:

答案 0 :(得分:1)

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

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

将在不同的行中写a和b

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

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

还有其他“更高级”的方式,如

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

答案 1 :(得分:-2)

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

        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

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

相关问题