[Python] not 연산자 & in 연산자
1️⃣ not 연산자
not 연산자는 피연산자가 참이면 False를 반환하고, 피연산자가 거짓이면 True를 반환합니다.
피연산자의 데이터 타입에 관계없이 항상 불리언을 반환합니다.
print(not True)
print(not False)
# 결과
False
True
➕ 드모르간의 법칙
집합 연산과 논리 연산에서 사용되는 법칙 중 하나입니다.
논리합(곱)의 부정은 각 항의 부정의 논리곱(합)으로 표현할 수 있음을 나타냅니다.
not (A or B)는 (not A) and (not B)와 같습니다.
not (A and B)는 (not A) or (not B)와 같습니다.
영국의 수학자 오거스터스 드 모르간에 의해 증명되었습니다.
드모르간의 법칙을 적용하면 복잡한 논리 연산을 변환하고 최적화할 수 있습니다.
NAND(NOT AND) 게이트로 모든 종류의 논리 회로를 구현할 때 사용됩니다.
논리 회로 설계에서 불필요한 연산을 줄이고, 효율성을 높이는 데 사용됩니다.
not 연산의 우선순위는 and 연산과 or 연산보다 높습니다.
and 연산 또는 or 연산의 결과를 부정할 때는 괄호로 and 연산 또는 or 연산을 묶어야 합니다.
a = 10
print(not (a < 9 or a > 5)) # not (False or True) -> not True
print(not (a < 9 and a > 5)) # not (False and True) -> not False
print(not a < 9 or a > 5) # not False or True -> True or True
print(not a < 9 and a > 5) # not False and True -> True and True
# 결과
False
True
True
True
⚠️ 여기서 잠깐!
not 연산의 피연산자로 불리언 외의 데이터도 사용할 수 있습니다.
and 연산 또는 or 연산과는 달리, 항상 불리언(True 또는 False)을 반환합니다.
print(not 0) # not 거짓
print(not 1) # not 참
print(not -1) # not 참
print()
print(not "") # not 거짓
print(not []) # not 거짓
# 결과
True
False
False
True
True
2️⃣ in, not in 연산자
in 연산자
in 연산자는 특정 값이 문자열, 리스트 등에 포함되어 있는지 확인하는 연산자입니다.
해당 값이 포함되어 있으면 True를, 포함되어 있지 않으면 False를 반환합니다.
if "a" in ["a", "b", "c"]:
print(True)
else:
print(False)
# 결과
True
문자열이 특정 부분 문자열을 포함하고 있는지 확인할 때 사용할 수 있습니다.
print("ing" in "Coding Valley")
print("coding" in "Coding Valley")
print("g V" in "Coding Valley")
# 결과
True
False
True
pocket = ["card", "cash"]
# "card" 또는 "cash" 둘 중 하나라도 있는 경우
if "card" in pocket or "cash" in pocket:
print ("버스 타고 집 가기")
else:
print ("걸어가기")
# 결과
버스 타고 집 가기
not in 연산자
not in 연산자는 in 연산자와는 정반대의 결과를 반환합니다.
해당 값이 포함되어 있으면 False를, 포함되어 있지 않으면 True를 반환합니다.
pocket = ["card", "cash"]
# "card"도 없고, "cash"도 없는 경우
if "card" not in pocket and "cash" not in pocket:
print("걸어가기")
else:
print("버스 타고 집 가기")
# 결과
버스 타고 집 가기
➕ not A in B
not A in B는 A not in B와 동일한 결과를 반환합니다.
not A in B 대신 A not in B를 사용하는 것을 권장합니다.
파이썬은 가독성과 명확성을 중시하는 언어입니다.
not A in B보다 A not in B가 자연어에 더 가까워, 의도가 명확히 표현됩니다.
print(not "h" in "Hello World")
print("h" not in "Hello World")
print(not "ing" in "Coding")
print("ing" not in "Coding")
# 결과
True
True
False
False
'낙서장[1] > 94. Python' 카테고리의 다른 글
| [Python] 리스트 삭제 (1) | 2025.07.24 |
|---|---|
| [Python] 리스트 수정/추가 (0) | 2025.07.24 |
| [Python] 리스트활용 / 인덱싱 (2) | 2025.07.23 |
| [Python] 리스트 LIST (2) | 2025.07.23 |
| [Python] 비교연산자 (1) | 2025.07.22 |