转置密码错误python

时间:2013-11-17 17:34:49

标签: python encryption

我试图写一个函数encr(k,m),其中消息m是字符A ... Za ... z上的任何字符串,其中键k是排列。当len(m)不是len(k)的倍数时,我需要将Z附加到m以使len(m)成为len(k)的倍数。

到目前为止,我已经

import math, pyperclip
def encr(k, m):
    ciphertext = [''] * k
    for col in range(len(k)):
        pointer = col

        while pointer < len(m):
            ciphertext[col] += m[pointer]
            pointer += 1
    return ''.join(ciphertext)

我一直收到错误:TypeError:不能将序列乘以类型&#39; list&#39;的非int。在第3行,encr ciphertext = [''] * k

任何帮助都会很棒

输入的示例是encr([3, 2, 4, 1, 0], 'SineLaboreNihil')

1 个答案:

答案 0 :(得分:0)

您当前的错误是k是函数中的字符串,并且您尝试将其添加到整数 - pointer。我认为你打算在pointer加1。

您还尝试在同一个字符串上使用range()range(len(k))是你需要做的。

您的新错误可以更正如下 -

ciphertext = [''] * len(k)