#!/usr/bin/env python
# coding: utf-8

# # 2-7 불 자료형
# 
# ## 불 자료형이란?
# 불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
# - True: 참
# - False: 거짓

# In[1]:


a = True
b = False


# 문자열처럼 생겼지만 error가 나진 않는다. type 함수로 자료형을 확인해보겠다.

# In[2]:


print(type(a))
print(type(b))


# In[3]:


1 == 1


# In[4]:


2 > 1


# In[5]:


2 < 1


# 불 자료형은 조건문의 반환 값으로도 사용된다. 조건문의 결과가 참이면 True, 거짓이면 False를 반환한다.

# # 자료형의 참과 거짓
# |값|참|거짓|
# |------|---|---|
# |문자열|"python"|참|
# |문자열|""|거짓|
# |리스트|[1,2,3]|참|
# |리스트|[]|거짓|
# |튜플|()|거짓|
# |딕셔너리|{}|거짓|
# |숫자형|0이 아닌 숫자|참|
# |숫자형|0|거짓|
# ||None|거짓|
# 
# 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면(" ", [ ], ( ), { }) 거짓이 됩니다. 당연히 비어있지 않으면 참이 됩니다. 숫자에서는 그 값이 0일 때 거짓이 됩니다. 위 표를 보면 None이 있는데, 이건 뒷부분에 나온다고 합니다. 그저 None은 거짓을 뜻한다는 것만 알아두면 됩니다.

# In[15]:


a = [1,2,3,4]


# In[16]:


while a:# a가 참인 동안
    a.pop() # 리스트의 마지막 요소를 하나씩 꺼낸다
    print(a)


# 위의 경우는 a가 참인 동안 a.pop을 계속 실행하라는 의미이다. a의 요소를 하나씩 지워주기 때문에 a가 빈 리스트가 되면 거짓이 된다. 그러면 while 조건 문이 끝난다.

# In[17]:


if []: # 만약 [] 가 참이면
    print("참") # '참' 문자열 출력
else: # 거짓이면
    print("거짓") # '거짓' 문자열 출력


# [] 빈 리스트는 거짓이기 때문에 '거짓'이 출력된다,

# In[18]:


if [1,2,3]: # 만약 [1,2,3]이 참이면
    print("참") # '참' 문자열 출력
else: # 거짓이면
    print("거짓") # '거짓' 문자열 출력


# In[19]:


# 불 연산
# 불 sowkdgkatn tkdyd
bool('python')


# In[20]:


bool('')


# In[21]:


bool([1,2,3])


# In[22]:


bool([])


# In[23]:


bool(0)


# In[24]:


bool(3)


# 자료형에 참과 거짓이 있음을 알았고, bool 내장 함수를 사용하면 자료형의 참과 거짓을 식별할 수 있다.
# 
# > bool(값)
# 
# 지금까지 파이썬의 자료형인 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불에 대해 알아보았다.
