Python 如何打印没有空格的凯撒密码?

Python 如何打印没有空格的凯撒密码?,python,printing,Python,Printing,我试图打印他们的消息,从这个程序没有空格,但它总是给我之间的每一个字母的空间 import string character = [] message = raw_input('What is your message? ').lower() shift = raw_input('What is your shift key? ') type = raw_input('Would you like to cipher(c) or decipher(d)? ') for character in

我试图打印他们的消息,从这个程序没有空格,但它总是给我之间的每一个字母的空间

import string
character = []
message = raw_input('What is your message? ').lower()
shift = raw_input('What is your shift key? ')
type = raw_input('Would you like to cipher(c) or decipher(d)? ')
for character in message:
    if str(type) == 'd':
        number = ord(character) - int(shift)
        if number <= 96:
            number = ord(character) + 26 - int(shift)
    if str(type) == 'c':
        number = ord(character) + int(shift)
        if number >= 122:
            number = ord(character) - 26 + int(shift)
    character = chr(number)
    print(character),
导入字符串
字符=[]
message=原始输入('您的消息是什么?')。lower()
shift=原始输入(“您的shift键是什么?”)
type=raw_input('您想加密(c)还是解密(d)')
对于消息中的字符:
如果str(type)=“d”:
数字=ord(字符)-整数(移位)
如果数字=122:
数字=ord(字符)-26+int(移位)
字符=chr(数字)
打印(字符),

是否有人知道如何在句子中打印,以便我可以复制消息并接收它?

请在打印语句末尾去掉逗号。当然,那么每个字符都将位于单独的行上


可能最好将字符组合成一个字符串,可以一次打印所有字符。

在print语句末尾去掉逗号。当然,那么每个字符都将位于单独的行上

最好将字符组合成一个字符串,可以一次打印所有字符。

添加

from __future__ import print_function
到程序顶部,然后更改

print(character),

这是

如果没有第一行,您实际上正在打印
(character)
,这是一个表达式,其结果是
character
,因此它基本上是
打印character,
。通过导入,
print…
将更改为
print(…)
,并使用额外的参数来提供更多的控制

注意,这在非常旧的python版本上不起作用。您可能需要2.6或更高版本

[你好,斯科特!]

添加

from __future__ import print_function
到程序顶部,然后更改

print(character),

这是

如果没有第一行,您实际上正在打印
(character)
,这是一个表达式,其结果是
character
,因此它基本上是
打印character,
。通过导入,
print…
将更改为
print(…)
,并使用额外的参数来提供更多的控制

注意,这在非常旧的python版本上不起作用。您可能需要2.6或更高版本


[hi scott!]

您可以使用
sys.stdout.write(character)
打印单个字符,不带空格或换行符,就像C的
putchar
一样

例如:

import string
import sys

character = []
message = raw_input('What is your message? ').lower()
shift = raw_input('What is your shift key? ')
type = raw_input('Would you like to cipher(c) or decipher(d)? ')
for character in message:
    if str(type) == 'd':
        number = ord(character) - int(shift)
        if number <= 96:
            number = ord(character) + 26 - int(shift)
    if str(type) == 'c':
        number = ord(character) + int(shift)
        if number >= 122:
            number = ord(character) - 26 + int(shift)
    character = chr(number)
    sys.stdout.write(character),

print ""
导入字符串
导入系统
字符=[]
message=原始输入('您的消息是什么?')。lower()
shift=原始输入(“您的shift键是什么?”)
type=raw_input('您想加密(c)还是解密(d)')
对于消息中的字符:
如果str(type)=“d”:
数字=ord(字符)-整数(移位)
如果数字=122:
数字=ord(字符)-26+int(移位)
字符=chr(数字)
系统标准写入(字符),
打印“”

您可以使用
sys.stdout.write(character)
打印单个字符,不带空格或换行符,就像C的
putchar
一样

例如:

import string
import sys

character = []
message = raw_input('What is your message? ').lower()
shift = raw_input('What is your shift key? ')
type = raw_input('Would you like to cipher(c) or decipher(d)? ')
for character in message:
    if str(type) == 'd':
        number = ord(character) - int(shift)
        if number <= 96:
            number = ord(character) + 26 - int(shift)
    if str(type) == 'c':
        number = ord(character) + int(shift)
        if number >= 122:
            number = ord(character) - 26 + int(shift)
    character = chr(number)
    sys.stdout.write(character),

print ""
导入字符串
导入系统
字符=[]
message=原始输入('您的消息是什么?')。lower()
shift=原始输入(“您的shift键是什么?”)
type=raw_input('您想加密(c)还是解密(d)')
对于消息中的字符:
如果str(type)=“d”:
数字=ord(字符)-整数(移位)
如果数字=122:
数字=ord(字符)-26+int(移位)
字符=chr(数字)
系统标准写入(字符),
打印“”

你能解释一下怎么做吗?当然可以,但安德鲁的主意更好。在循环之前设置一个新变量,例如
line=“”
;然后将打印内容替换为
行+=字符
;最后,在循环之后,
打印行
你能解释一下怎么做吗?当然,但是安德鲁的想法更好。在循环之前设置一个新变量,例如
line=“”
;然后将打印内容替换为
行+=字符
;最后,在循环之后,
打印行
这个问题可能应该删除加密标记并添加一些语言标记。@ThomasM.DuBuisson有一个28k的代表,您应该能够自己编辑(无论如何,已更改)(好的附加答案顺便说一句)。这个问题可能应该删除加密标签,并添加一些语言标签。@ThomasM.DuBuisson与一个28k的代表,你应该能够编辑自己(无论如何,改变)(好的额外答案顺便说一句)。