2015-05-09 85 views
-3

如何让我的程序在单独的行上打印答案+该行对应的密钥?蛮力凯撒密码

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), 
+0

你想输出like句子? – goelakash

回答

-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 

但我真的建全串在一个字符串变量当前的键,然后立刻打印出来。

+0

为什么这样做会让这个人失望呢? –

+0

这就是我所需要的。谢谢! –

+0

@FredrikEngblom不客气。而且让我更想知道为什么有人低估了我的答案。无论如何,你会如此友善地将答案标记为接受吗? (或另一个,如果这更合适) –

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