凯撒密码 Python 分行打印

Caesar Cipher Code Python printing on separate lines

下面的代码工作正常,但是消息在加密后打印到不同的行。例如,如果我输入:abc,移位 1,它会对其进行加密,但会打印为:

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))

缩进很重要,您不应该每次都创建 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))

您应该更改以下部分;

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

发生的事情是,对于每个字符,它都是 运行 循环并打印答案,现在我收集了所有加密的字母,最后将它们合并为一个并打印出来。

它首先使用 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))