--- id: python-booleans title: "Python Booleans" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["bool()", "truthiness", "파이썬 불리언"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["python", "programming", "w3schools", "boolean", "truthiness"] raw_sources: ["https://www.w3schools.com/python/python_booleans.asp"] applied_in: [] github_commit: "" --- # [[Python Booleans]] ## 🎯 한 줄 통찰 (One-line insight) Almost every Python value is truthy by default — only a small, fixed set (empty collections, 0, "", None, False, and objects whose `__len__` returns 0) evaluates to False. [S1] ## 🧠 핵심 개념 (Core concepts) - **Boolean** — represents one of two values: True or False. [S1] - **`bool()` function** — evaluates any value/variable and returns True or False. [S1] - **Most values are True** — any non-empty string, any non-zero number, any non-empty list/tuple/set/dict. [S1] - **Falsy exceptions** — `()`, `[]`, `{}`, `""`, `0`, `None`, `False`. [S1] - **Custom falsy objects** — an object from a class whose `__len__` returns 0 (or False) also evaluates to False. [S1] - **Functions can return booleans** — including built-ins like `isinstance()`. [S1] ## 🧩 추출된 패턴 (Extracted patterns) - **`__len__`-based falsiness** — Python's truthiness protocol extends to custom classes via `__len__`, meaning "empty-like" custom objects behave like empty built-in collections. [S1] ## 📖 세부 내용 (Details) - Comparison expressions return booleans: `print(10 > 9); print(10 == 9); print(10 < 9)`. [S1] - Truthy check: `bool("Hello") # True`, `bool(15) # True`. [S1] - Falsy check: `bool(False); bool(None); bool(0); bool(""); bool(()); bool([]); bool({})`. [S1] - Custom falsy via `__len__`: [S1] ```python class myclass(): def __len__(self): return 0 myobj = myclass() print(bool(myobj)) # False ``` - `isinstance()` returns a boolean: `print(isinstance(x, int))`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — if 조건문/논리 연산자 챕터 전체가 이 불리언 평가 규칙을 전제로 한다. [S1] ## 💻 코드 패턴 (Code patterns) Custom class controlling its own truthiness (Python): ```python class myclass(): def __len__(self): return 0 myobj = myclass() print(bool(myobj)) # False ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Python Tutorial]] - **관련 개념:** [[Python If Else]], [[Python Operators Logical]], [[Python Operators Comparison]] - **참조 맥락:** 조건문/논리 연산의 기초 — if 문/while 루프의 조건 평가 방식을 정의. ## 📚 출처 (Sources) - [S1] W3Schools — Python Booleans — https://www.w3schools.com/python/python_booleans.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Python Booleans" page (Astra wiki-curation, P-Reinforce v3.1 format).