我希望有人能帮我解决为什么我正在编写的将字符串转换为二进制数列表的函数不起作用。
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
感谢您的帮助。
答案 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]