Python 3.7 TypeError:“列表”对象不可调用

时间:2018-10-29 18:09:11

标签: python python-3.x

我希望有人能帮我解决为什么我正在编写的将字符串转换为二进制数列表的函数不起作用。

def string2bin(str):
    bin = []
    for n in range(len(str)):
        char = ord(str[n])
        char = bin(char)
        char[2:].zfill(8)
        bin.append(list(map(int, char)))

    return bin

这是使用这些参数运行函数时遇到的错误。

string2bin('abc')

    char = bin(char)
TypeError: 'list' object is not callable

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

str是python中的保留关键字。为变量使用其他名称。

答案 1 :(得分:0)

bin()Python built-in method,但是您为最终列表命名了bin = [],所以当您进入char = bin(char)时,您将其覆盖。

您收到的错误是因为bin现在引用了一个列表,然后您尝试像函数一样调用它。

只需将bin重命名为其他名称即可。

此外,char并不是ord(str[n])的好名字。

答案 2 :(得分:0)

您首先将bin定义为列表,然后将其用作函数。 我认为您想改用char = bin[char]