使用Python If语句获取语法错误

时间:2012-05-25 15:09:48

标签: python if-statement

我正在编写一个小程序,将字符串转换为整数,然后转换为字符串列表中的二进制。这就是我所拥有的

x=0
while x < len(list):
    list[x]=bin(eval(list[x])
    if(list[x].startswith("0b")):
        list[x]=list[x].replace("0b","")

我在if语句的冒号上遇到语法错误,我不知道为什么。任何帮助,将不胜感激。

1 个答案:

答案 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;这是一个等待发生的安全漏洞。