# 불은 참(True)과 거짓(False)을 나타내는 자료형, 2가지 값만 가질 수 있다. # True나 False는 파이썬의 예약어로, 첫 문자를 항상 대문자로 작성해야 한다.
a = True b = False print(type(a)) #class 'bool'
1 == 1 True 2 < 1 False
# 자료형의 참과 거짓 # 값이 있으면 참, 값이 없으면 거짓
값
참 or 거짓
"python"
참
""
거짓
[1,2,3]
참
[]
거짓
(1,2,3)
참
()
거짓
{'a':1}
참
{}
거짓
1
참
0
거짓
None
거짓
# 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다. # 숫자에서는 그 값이 0일 때 거짓이 된다. None은 거짓을 뜻한다.
a = [1, 2, 3, 4] while a: print(a.pop()) 4 3 2 1
# 즉, 위 예를 보면 a가 참인 경우, a.pop()를 계속 실행하여 출력하라는 의미이다. a.pop() 함수는 리스트 a의 마지막 요소를 끄집어 내는 함수이므로 리스트 안에 요소가 존재하는 한(a가 참인 동안) 마지막 요소를 계속 끄집어 낼 것이다. 결국 더 이상 끄집어 낼 것이 없으면 a가 빈 리스트([])가 되어 거짓이 된다. 따라서 while 문에서 조건문이 거짓이 되므로 while 문을 빠져나가게 된다. 이는 파이썬 프로그래밍에서 매우 자주 사용하는 기법 중 하나이다.
# 딕셔너리 요소 삭제하기 ([key값]으로 선택) del a[1] print(a) {2: 'b', 'name': 'pey', 3: [1, 2, 3]} # 여러값을 삭제할때 , 로 추가하여 한번에 삭제도 가능하다.
# 딕셔너리에서 key를 사용해 value 얻기 grade = {'pey': 10, 'julliet': 99} print(grade['pey']) 10 print(grade['julliet']) 99
dic = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'} print(dic['name']) 'pey' print(dic['phone']) '010-9999-1234' print(dic['birth']) '1118' # 두개의 값을 한번에 불러오고 싶을 때 ,로 값 연결 print(dic['birth'], dic['phone'])
# 딕셔너리 만들 때 주의할 사항 # 1. 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 점에 주의해야 한다. a = {1:'a', 1:'b'} print(a) {1: 'b'} # 덮어써져서 마지막값으로만 출력됌
# 2. Key에 리스트는 쓸 수 없다는 것이다. 하지만 튜플은 Key로 쓸 수 있다. # 딕셔너리의 Key로 쓸 수 있느냐, 없느냐는 Key가 변하는(mutable) 값인지, 변하지 않는(immutable) 값인지에 달려 있다. # 리스트는 그 값이 변할 수 있기 때문에 Key로 쓸 수 없다.
# 딕셔너리 관련 함수 1 - keys() 함수 : key값만 출력 a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'} print(a.keys()) # dict_keys(['name', 'phone', 'birth']) print(list(a.keys())) # list로 변환 할 때
for k in a.keys(): print(k) # 보통 for문과 같이 사용 된다.
# 딕셔너리 관련 함수 2 - values : value 값만 출력 print(a.values()) # dict_values(['pey', '010-9999-1234', '1118'])
# key, value 쌍 얻기 - items print(a.items()) #dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')]) # key:value값이 튜플에 담겨 출력 된다.
# key, value 쌍 모두 지우기 - clear print(a.clear()) print(a) # {} 빈 딕셔너리
# Key로 Value 얻기 - get a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'} print(a.get('name')) # print(a['name']) 와 결과값이 같다. # 딕셔너리에 없는 값을 입력했을때 get 함수의 결과값은 none 이라고 뜨고, 뒤 예시는 에러로 출력된다. 'pey'
print(a.get('nokey', 'foo')) # 딕셔너리 안에 key값에 없는 값을 입력했을 때 리턴받고 싶은 value의 값을 지정할 수 있다. 'foo'
# 해당 Key가 딕셔너리 안에 있는지 조사하기 - in a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'} print('name' in a) True print('email' in a) False
# 리스트와 개념이 비슷하다고 생각해도 좋다. a = [1,2,3] # 리스트: 인덱스번호0=1, 1=2, 2=3 a = {0:1, 1:2, 2:3} # 딕셔너리: key0=value1, key1=value2, key2=value3
e = [1, 2, ['Life', 'is']] # 리스트 안에 리스트를 넣을 수 있다. print(e[2][1]) # e 변수 안에 1(인덱스0), 2(인덱스1), 'Life','is'(인덱스3) # e[2][1]의 의미는 e 리스트 안의 인덱스2번의 인덱스1번 값을 print해라.
# 리스트의 슬라이싱 a = [1, 2, 3, 4, 5] print(a[0:2]) # [0:2] 0 은 이상 2는 미만 = 0번 인덱스부터 2번 인덱스 미만까지의 값 [1, 2]