2016-09-23 26 views
-2

下面的代碼正常工作,但是一旦消息被加密,消息就會打印到不同的行上。例如,如果我輸入:ABC與1移位它加密,但打印回爲:凱撒密碼Python在單獨的行上打印

b 
c 
d 

而且我不明白爲什麼。我希望它打印爲:

bcd 

下面是代碼:

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage = chr(ShiftedMessage) 
    NewMessageList = list(NewMessage) 
    print("".join(NewMessageList)) 
+1

要打印在每個字符信你for循環。 – Alex

+0

那我該如何解決呢?通過在for循環之外添加打印? –

回答

1

縮進問題,你不應該創建NewMessage每次的新名單

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

NewMessageList = [] 
for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage = chr(ShiftedMessage) 
    NewMessageList.append(NewMessage) 
print("".join(NewMessageList)) 
+0

這工作表示感謝!你可以解釋一下你使用的命令,因爲我不熟悉。 (大學生) –

+0

這裏使用的命令是'append'。它做什麼它將元素添加到列表中。閱讀更多的文檔:https://docs.python.org/3/tutorial/datastructures.html#more-on-lists –

+0

NewMessageList = [] 那麼這只是將變量分配給什麼? –

0

你應該改變以下部分;

print("".join(NewMessageList), end="") 
0

是什麼情況是,每個charachter它運行的循環和打印答案,現在我已經收集了所有加密的文字和棍棒將它們作爲一個最終並打印它。

它先是用NewMessage = []初始化一個空列表,然後爲每一個我們得到加密,它增加了使用.append()和高檔印刷品是空列表所有''.join(NewMessage)

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

NewMessage = [] 
for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage.append(chr(ShiftedMessage)) 
print(''.join(NewMessage)) 
+0

什麼是NewMessage = []做和。附加? –

+0

它首先用'NewMessage = []'初始化一個空列表,然後對於每一個我們得到加密的字母,它都會使用'.append()'添加到這個空列表中,並在結尾打印所有的'''.join(NewMessage )' – harshil9968