蛮力凯撒密码
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
但我真的会在字符串变量中为当前键构建整个字符串,然后立即打印它。
如何让我的程序在不同的行上打印答案 + 该行对应的键是什么?
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
但我真的会在字符串变量中为当前键构建整个字符串,然后立即打印它。