ProgramingTip

변수가 한 노드 또는 다른 노드 같은지 확인하는 방법은 무엇입니까?

bestdevel 2020. 11. 26. 19:40
반응형

변수가 한 노드 또는 다른 노드 같은지 확인하는 방법은 무엇입니까?


이 질문에 이미 답변이 있습니다.

if var is 'stringone' or 'stringtwo':
    dosomething()

작동하지 않습니다! 변수가 필요한 값 중 하나 일 때 작업을 수행해야 할 때 문을 입력하지 않습니다. 자바에서 if (var == "stringone" || "stringtwo")작동합니다. 무엇으로 어떻게 작성합니까?


이것은 당신이 기대하는 바를 수행하지 않습니다.

if var is 'stringone' or 'stringtwo':
    dosomething()

다음과 달라집니다.

if (var is 'stringone') or 'stringtwo':
    dosomething()

'stringtwo'"참"값으로 다음과 같이 항상 참 입니다.

두 가지 대안이 있습니다.

if var in ('stringone', 'stringtwo'):
    dosomething()

또는 별도의 동등성 테스트를 사용할 수 있습니다.

if var == 'stringone' or var == 'stringtwo':
    dosomething()

는 개체 ID 비교를 is하므로 사용하지 마십시오 is. Java에서 많은 것들이 있기 때문에 인턴하기 때문에 Java에서 많은 것들이 있습니다. 그러나 is실제로 개체 ID 원하지 않는 한를 사용 하지 마십시오 .

>>> 'a' + 'b' == 'ab'
True
>>> 'a' + 'b' is 'abc'[:2]
False # but could be True
>>> 'a' + 'b' is 'ab'
True  # but could be False

if var == 'stringone' or var == 'stringtwo':
    do_something()

또는 더 비단뱀 적,

if var in ['string one', 'string two']:
    do_something()

if var == 'stringone' or var == 'stringtwo':
    dosomething()

'is'는 두 참조가 참조하는지 확인하는 데 사용됩니다. 메모리 주소를 비교합니다. 분명히 'stringone'은 다른 인스턴스와 'var'는 다른 인스턴스를 포함합니다. 그래서 그들은 물론 두 개의 다른 메모리 주소를 가지고 있으며 'is'는 False를 반환합니다.


두 개의 별도 수표. 또한 신원보다는 평등을 확인 하는 ==것보다 사용 is합니다.

 if var=='stringone' or var=='stringtwo':
     dosomething()

for a in soup("p",{'id':'pagination'})[0]("a",{'href': True}):
        if createunicode(a.text) in ['<','<']:
            links.append(a.attrMap['href'])
        else:
            continue

그것은 나를 위해 작동합니다.

참고 URL : https://stackoverflow.com/questions/12774279/how-to-check-if-a-variable-is-equal-to-one-string-or-another-string

반응형