python을 배우면서 헷갈렸던 부분들이 비유를 통해 해결되었다.
도대체 왜 변수를 지정하는걸까...?
이렇게 생각하자.
ex) box = ["체육복","티셔츠","바지"]
(이름표 = [정리상자])
box.append("줄넘기")
print( box[2] )
pills = {"월요일":"주황색 약", "화요일":"초록색 약", "수요일":"알약"}
(이름표 = {조립식 약통})
print(pills.get("알약"))
pills["목요일"]="주황색과 초록색 알약"
print( pills["목요일"] )
리스트
box = ["체육복","티셔츠","바지"]
for x in box:
print(x)
체육복
티셔츠
바지
딕셔너리
pills = {"월요일":"주황색 약", "화요일":"초록색 약", "수요일":"알약"}
for x,y in pills.items():
print(x)
print(y)
주황색 약
화요일
초록색 약
수요일
알약
ex) box = ["체육복","티셔츠","바지"]
box1 = set(["체육복","티셔츠","바지"])
box2= set(["체육복","안경","신발"])
box3 = box1 | box2 (합집합)
box3 = box1 & box2 (교집합)
box3 = box1 - box2 (차집합)
집합은 python의 상징적인 데이터 저장방법이니 꼭 알아두어야 한다. 집합과 리스트의 가장 큰 차이점은 순서가 없다는 것이다. 겹치는 요소에 대해서 합집합,교집합,차집합의 성격으로 처리한다. 리스트와 달리 겹치는 요소가 있을 수 없다.
import random
import time
box = ['교과서','체육복','줄넘기','텀블러']
while True:
print(box)
item = input('사물함에 어떤 물건을 집어넣을까요? : ')
if(item == 'quit'):
break
else:
box.append(item)
print(box)
print()
print('='*40)
print()
set_box=set(box)
while True:
print(set_box)
item= input('사물함에 어떤 물건을 뺼까요? : ')
if(item == 'quit'):
break
else:
set_box = set_box-set([item])
집합 연산은 집합끼리만 할 수 있음. 따라서 item이 문자열이어서 연산이 안됨. 따라서 억지로 set 집합을 만들어주어야 함.
print(set_box,"중에서 랜덤으로 내가 사용할 물건을 선택합니다.")
print('5')
time.sleep(1)
print('4')
time.sleep(1)
print('3')
time.sleep(1)
print('2')
time.sleep(1)
print('1')
print(random.choice(list(set_box)))
list 형식을 쓰는 이유: 하나를 random으로 뽑으려면 순서가 없는 set()이 아니라 순서가 정해진 list 형태로 변경해주어야 함.
딕셔너리는 질문을 key에다 두고 답변을 value에다 놓음
리스트 안의 딕셔너리는 질문이라는 글자를 key에다 두고 실제 질문 내용을 value에다 놓고, 답변이라는 글자를 key에다 두고 실제 답변 내용을 value에다 놓음.
쓰임에 따라 사용처가 나뉠 듯 하다.
리스트 안의 딕셔너리는 어느 것이 질문이고 어느것이 답변인지 명확하게 알 수 있다는 장점이 있지만 조금은 복잡하고, 딕셔너리는 코드를 작성한 사람만 어느 것이 질문이고 어느 것이 답변인지 알 수 있어 다른 사람과 코드하기에 불편하지만, 간편하다는 장점이 있다.
특히, 리스트 안의 딕셔너리는 딕셔너리 그 자체로 변수(i)로 저장되는데, 사용자가 입력한 질문만 뽑아오고 싶다면,
딕셔너리의 추출방법인 i['질문']을 사용하면 사용자가 입력한 질문만 딱! 뽑아올 수 있다.
total_dictionary = {}
while True:
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_dictionary[question] = ""
for i in total_dictionary:
print(i)
answer = input("답변을 입력해주세요 : ")
total_dictionary[i] = answer
print(total_dictionary)