Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caesar密码Python在单独的行上打印_Python_Encryption_Caesar Cipher - Fatal编程技术网

Caesar密码Python在单独的行上打印

Caesar密码Python在单独的行上打印,python,encryption,caesar-cipher,Python,Encryption,Caesar Cipher,下面的代码工作正常,但是消息一旦被加密,就会打印到单独的行上。例如,如果我键入: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

下面的代码工作正常,但是消息一旦被加密,就会打印到单独的行上。例如,如果我键入: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)


您正在打印for循环中的每个字符。那么我将如何修复它?通过在for循环之外添加打印?这很有效,谢谢!你能解释一下你使用的命令吗?因为我不熟悉。(大学生)这里使用的唯一命令是
append
。它的作用是将元素附加到列表中。阅读文档中的更多内容:NewMessageList=[]如何?它只是将变量赋值为nothing吗?不是nothing。[]是空列表,()是空元组,{}是空指令集,set()是空集,list()是空列表等等…我仍然不知道append实际做什么。NewMessage=[]和.append做什么?它首先用
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))