布尔不能正常工作吗?

时间:2014-05-21 05:31:08

标签: python

imgfound=False
imgexists=0
img_ext=['.jpg','.jpeg','.png','.gif']

while True:

    httpfind=html.find('http',imgexists)
    if httpfind==-1:
        break
    imgexists=httpfind

    imgexist=html.find('"',imgexists)
    imgurl=html[imgexists:imgexist]
    imgexists+=len(imgurl)

    for extscan in img_ext:
        if not imgurl.find(extscan)==-1:
            imgfound=True
            break

    #print imgfound 

    if imgfound==False:
        continue

    print imgurl

我想在html文档中找到图像的链接。但事情并没有像它应该的那样发挥作用。就像它打印所有链接一样,无论它们中是否有img_ext子字符串。我在imgfound中打印了值,对于所有链接,它都是True。我哪里出错?

2 个答案:

答案 0 :(得分:3)

表达式

not imgurl.find(extscan) == -1
由于运算符优先级,

将为每个整数求值False

如何解决?

  • 将其更改为

    imgurl.find(extscan) != -1
    
  • 或者,将其更改为

    not(imgurl.find(extscan) == -1)
    

答案 1 :(得分:2)

Christian的回答是正确的,但值得注意的是,这不是好的Python风格。首选形式是:

if extscan not in imgurl

您的版本看起来像Java-ism。