如何将输出分组为单个字符串?

时间:2015-03-18 16:21:33

标签: python string encryption

这是我提出的一个简单的加密代码。它使用单个字符键。

ar = input('please input string to be de/encrypted:')
key = input('please input single character key:')

def encrypt1(key,ar):
    i = 0
    while i < len(ar):
        br = chr(ord(ar[i])^ord(key))
        i = i+1
        print(br)

encrypt1(key,ar)

print('Input string = ' + ar+'\n'+'key = '+key)

如果我为要加密的字符串输入“CMPUT”而输入“a”作为键,我将获得此打印输出:

"
,
1
4
5

哪个是正确的加密(根据我的作业示例)。现在我只需要将这些输出转换为单个字符串并将其打印在shell中,如下所示:

>>>decrypted string: ",145

我在这个网站上浏览了谷歌和旧问题,但我仍然空洞。我很感激你的帮助。

2 个答案:

答案 0 :(得分:0)

初学者最明显的方式就是简单地累积到一个字符串

def encrypt1(key,ar):
    i = 0
    result = ""
    while i < len(ar):
        br = chr(ord(ar[i])^ord(key))
        i = i+1
        result += br
    return result

通常你只需使用生成器表达式

来编写它
def encrypt1(key,ar):
    return ''.join(chr(ord(i) ^ ord(key)) for i in ar)

答案 1 :(得分:0)

查看此代码,我相信这就是您所需要的(我更改了print(br)行):

ar = input('please input string to be de/encrypted:')
key = input('please input single character key:')

def encrypt1(key,ar):
    i = 0
    while i < len(ar):
        br = chr(ord(ar[i])^ord(key))
        i = i+1
        print(br, end='')

encrypt1(key,ar)

print('\nInput string = ' + ar+'\n'+'key = '+key)