加密一个8个字母的单词python,什么';怎么了?

加密一个8个字母的单词python,什么';怎么了?,python,python-3.x,ascii,Python,Python 3.x,Ascii,我正在尝试使用Ascii表等对代码块输入进行加密 不能让它工作!怎么了 获取错误信息: TypeError:ord()应为长度为1的字符串,但找到int 只是一个学生,所以不要去火腿plz 有人吗?我无法重现您的错误,对我来说,您的代码打印出j 问题在于,您正在将“加密”字符分配给编码的,因此正在覆盖以前的“加密”字符。解决这一问题的一种方法是将coded列成一个列表: def code_char(c, key): return chr(ord(c)+int(key)) def cod

我正在尝试使用Ascii表等对代码块输入进行加密

不能让它工作!怎么了

获取错误信息:

TypeError:ord()应为长度为1的字符串,但找到int

只是一个学生,所以不要去火腿plz


有人吗?

我无法重现您的错误,对我来说,您的代码打印出
j

问题在于,您正在将“加密”字符分配给
编码的
,因此正在覆盖以前的“加密”字符。解决这一问题的一种方法是将
coded
列成一个列表:

def code_char(c, key):
    return chr(ord(c)+int(key))

def code_block(word,key):
    letters = list(word)
    keys = list(key)
    for letter in letters:
        for digit in keys:
            coded = code_char(letter, digit)
    return coded

print(code_block('abcdefgh', '12121212'))

我无法重现您的错误,对我来说,您的代码打印出
j

问题在于,您正在将“加密”字符分配给
编码的
,因此正在覆盖以前的“加密”字符。解决这一问题的一种方法是将
coded
列成一个列表:

def code_char(c, key):
    return chr(ord(c)+int(key))

def code_block(word,key):
    letters = list(word)
    keys = list(key)
    for letter in letters:
        for digit in keys:
            coded = code_char(letter, digit)
    return coded

print(code_block('abcdefgh', '12121212'))

啊,我明白了,但是我试着用列表函数来分割它,不是吗?是的,对不起,我误读了。现在回答。啊,我明白了,但是我试着用列表函数来分割它,不是吗?是的,对不起,我误读了。现在回答。非常感谢您的帮助,但是,我最终以bcbccdcdcdedededefeffeffgfgghghhhhihijijijij作为输出,我期待着‘bddffhhj’啊,对,我没有看其余的代码。发生这种情况的原因是,当您真的想成对查看每个字母时,您在每个数字上迭代了每个字母。为此,您应该使用
zip
,如我编辑的答案所示。非常感谢!很高兴摆脱了错误消息。我从未使用过zip函数,但它看起来很方便。再次感谢。非常感谢你的帮助,但是,我最终得到了bcbccdcdcdedededefeffeffgfgghghhhihijijijij作为输出,我期待的是‘bddffhhj’啊,对,我没有看其余的代码。发生这种情况的原因是,当您真的想成对查看每个字母时,您在每个数字上迭代了每个字母。为此,您应该使用
zip
,如我编辑的答案所示。非常感谢!很高兴摆脱了错误消息。我从未使用过zip函数,但它看起来很方便。再次感谢。