반응형
변수가 한 노드 또는 다른 노드 같은지 확인하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
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
그것은 나를 위해 작동합니다.
반응형
'ProgramingTip' 카테고리의 다른 글
SQL Server 2008에 새 스키마를 추가하는 방법은 무엇입니까? (0) | 2020.11.26 |
---|---|
Entity Framework Code First Fluent Api : 열에 강화 추가 (0) | 2020.11.26 |
날짜 형식은 날짜 형식을 날짜 형식화하지 않습니다. (0) | 2020.11.26 |
C # 사전 하나의 키 많은 값 (0) | 2020.11.26 |
BOOL을 삽입하는 Objective-C 사전 (0) | 2020.11.26 |