>  Q&A  >  본문

python - if语句的与或运算

最近想提取出特定的URL,遇到问题为预期提取出URL中带有webshell或者phpinfo字段的URL,但是全部URL都匹配出来了:

for url in urls:
    if "webshell" or "phpinfo" in url:
        print url

改成and语句也不符合预期,只提取出了含有phpinfo的url:

for url in urls:
    if "webshell" and "phpinfo" in url:
        print url

PHPzPHPz2741일 전1054

모든 응답(2)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-18 09:07:15

    으아악

    그렇습니다. 원래 "webshell"을 먼저 판단했는데, 0이 아니면 url의 "phpinfo"와 url의 "phpinfo"를 판단합니다...

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:07:15

    으아악

    if "webshell" 또는 if "phpinfo" in url을 의미하며 전자는 항상 참입니다.

    으아악

    이것이 의미하는 것은 if "phpinfo" in url입니다. 왜냐하면 if "webshell"은 항상 참이기 때문입니다.

    해결책은 기본적으로 @lock이 말한 대로입니다.

    으아악

    오늘 어울리는 단어가 많다면:

    으아악

    결과:

    으아악

    urlcontain(url, lst) urllst 문자열

    이 있는지 물어볼 수 있습니다.

    이렇게 하면 10개의 키워드를 비교할 때 if 문을 너무 길게 작성하지 않아도 됩니다.

    물론 re을 사용해도 되지만 개인적으로 re는 별로 안 좋아하는데...


    내가 답변한 질문: Python-QA

    회신하다
    0
  • 취소회신하다