2015-05-09 142 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