我正在编写一个小程序,将字符串转换为整数,然后转换为字符串列表中的二进制。这就是我所拥有的
x=0
while x < len(list):
list[x]=bin(eval(list[x])
if(list[x].startswith("0b")):
list[x]=list[x].replace("0b","")
我在if语句的冒号上遇到语法错误,我不知道为什么。任何帮助,将不胜感激。
答案 0 :(得分:7)
您真正的问题是,在bin()
电话结束时您错过了一个问题。
x = 0
while x < len(list):
list[x] = bin(eval(list[x]))
if list[x].startswith("0b"):
list[x] = list[x].replace("0b","")
您可以删除if
行上的parens;如果测试套件,python不会使用parens。
最好不要为变量使用内置类型名称,因此list
是变量的错误名称。如果你想在字符串的开头删除字符,你可以使用索引:
list[x] = list[x][2:]
大概你的代码还没有完成,或者由于错误你还没有发现它,但是你的循环永远不会因为你没有递增x
而结束。
最后但并非最不重要:do not use eval
;这是一个等待发生的安全漏洞。