파이썬에서는 모든 함수를 def 라고 만들고 한줄 들여쓴 상태로 시작한다.
다시 한번 강조하지만 어디서 함수가 시작하고 끝나는지 구분하기 위해선 꼭 들여쓰기를 해줘야한다.
def make_dolcelatte():
print("1. 얼음을 넣는다.")
print("2. 연유를 30ml 넣는다.")
print("3. 찬 우유를 넣는다.")
print("4. 에스프레소샷을 넣는다.")
def make_blueberry_smoothie(): # 괄호와 콜론을 꼭 써야한다
print("1. 블루베리 20g을 넣는다.")
print("2. 유유를 300ml 넣는다.")
print("3. 얼음을 넣는다.")
print("4. 믹서기에 간다.")
def make_simple_latte():
print("1. 커피를 넣는다.")
print("2. 우유를 넣는다.")
print("3. 신나게 섞는다.")
make_simple_latte()
코드를 쓰고 작동하고 싶은 함수를 쓰면 함수가 동작하는 것을 확인할 수 있다.
이렇게 해서 함수를 다뤄보았습니다.
함수를 아주 자주쓰니 꼭 어떻게 사용하는지 숙지하길 바란다.
이제 익명 게시판을 만들어보자.
딕셔너리중 앞부분을 부르는 용어는 key이고 뒷부분을 부르는 용어는 value 이다.
질문이라는 key에 ~~~ 라는 value가 달려있고 이것을 파이썬 코드로 만들어 보자.
즉 리스트안에 각각의 딕셔너리가 들어있다.
다른사람과 작업하기에는 1번이 좋고 2번은 코드가 간결해지는 장점이 있다.
우리는 이 두 형태를 모두 이용해서 코드를 작성해보자.
천번째는 온전히 질문을 key에 넣고 답변은 value에 넣는 방법이 있었고
두번째는 리스트 안에 딕셔너리를 넣는 방법이 있었다.
우선 딕셔너리만 쓰는 방법을 만들어보자.
데이터를 저장할 변수 이름은 total_dictionary로 만들어보자.
total_dictionary = {}
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_dictionary[question] = ""
print(total_dictionary)
이렇게 하면 total_dictionary의 key는 question이 들어가고 value는 아무 내용도 없는 빈 문자열이 들어간다.
취미는?
특기는?
q
를 입력하면 정상적으로 딕셔너리가 만들어진다.
total_dictionary = {}
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_dictionary[question] = ""
for i in total_dictionary:
print(i)
answer = input("답변을 입력해주세요")
total_dictionary[i] = answer # i는 키 값이고 [i]는 value값이 된다.
print(total_dictionary)
이렇게 하면 모든 질문과 답변이 완성이 된다.
질문을 추가하는 리스트를 만들어보자.
total_list = []
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_list.append({"질문" : question, "답변" : ""})
for i in total_dictionary:
print(i)
answer = input("답변을 입력해주세요")
total_dictionary[i] = answer # i는 키 값이고 [i]는 value값이 된다.
print(total_dictionary)
total_dictionary를 total_list로 이름을 바꾸어준다.
비어있는 딕셔너리를 만들기 위해서 비어있는 리스트로 만들어주기 위해서 대괄호[]로 만들어준다.
우선 딕셔너리를 하나 만들텐데
질문이라는 단어를 key로 가지고 사용자가 입력한 값, 즉 question이라는 변수내용을 value로 받는 딕셔너리를 만들고
답변이라는 단어를 key로 가지고 빈문자를 답변의 value로 받는 딕셔너리를 만들어준다.
그리고 이렇게 완성된 딕셔너리를 total_list에 넣어준다.
딕셔너리를 리스트에 넣는 것은 append를 이용해서 넣어준다.
total_list = []
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_list.append({"질문" : question, "답변" : ""})
for i in total_list:
print(i["질문"])
answer = input("답변을 입력해주세요")
i["답변"] = answer
print(total_dictionary)
리스트의 0번과 1번에는 두개의 딕셔너리가 들어가 있다.
for문을 돌면서 i에 리스트가 저장된다.
이때 우리는 질문만 뽑아오고 싶다. 왜냐하면 질문에 따라서 답변을 달고 싶기 때문이다.
딕셔너리에 접근하는 질문만 얻어내려면 i["질문"]으로 접근하면 된다.
print(i["질문"])
i["답변"] 여기에 answer를 저장해보자.
이렇게 하면 완성이 된다.
answer라는 변수가 i라는 딕셔너리의 답변이라는 key를 가진 그 value로 들어가게 되는 것이다.
그러면 사용자가 입력한 것이 답변이라는 value에 들어가게 된다.
코드 리뷰
total_dictionary = {}
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_dictionary[question] = ""
for i in total_dictionary:
print(i)
answer = input("답변을 입력해주세요")
total_dictionary[i] = answer # i는 키 값이고 [i]는 value값이 된다.
print(total_dictionary)
제일 먼저 total_dictionary라는 변수를 빈 깡통 딕셔너리로 세팅을 하였다.
앞으로 달린 질문과 답변이 딕셔너리 형태로 저장이 될 것이다.
매번 반복할때마다 질문을 받고 q면 질문 받는 것을 멈춘다.
추가하는 방식은 total_dictionary의 key를 question으로 받는 것이다.
그러나 key는 항상 value로 쌍으로 묶여서 value도 값을 넣어야 하는데 엉뚱한 값을 넣기보다는 빈 문자를 넣는게 나아서 빈문자를 넣었다.
이제 답변을 입력 받으면 된다.
다만 이제 사용자의 입력을 value로 넣으면 된다.
total_list = []
while True: # break를 만나기 전까지 코드를 무한히 반복한다
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_list.append({"질문" : question, "답변" : ""})
for i in total_list:
print(i["질문"])
answer = input("답변을 입력해주세요")
i["답변"] = answer
print(total_dictionary)
이 코드는 앞의 코드와 똑같지만 데이터를 저장하는 방법이 살짝 다르다.
리스트로 저장을 한다.
하나의 온전한 딕셔너리를 만든 뒤 리스트에 추가하는 방식으로 진행된다.
질문에 대한 답을 받을 때에도
print할 때 i를 출력하는것이 아니라 i["질문"]을 출력한다.
for문을 거치고난 뒤의 i에는 현재 딕셔너리 형태가 저장이 되어있기 때문에 딕셔너리에서 사용자가 입력한 질문을 뽑아오기 위해서 질문을 key로 해서 접근을 하였다.
마찬가지로 답변을 할 때 i["답변"]에 사용자의 답을 입력함으로써 데이터의 형태가 온전하게 완성이 된다.
'📌 Python' 카테고리의 다른 글
python - ImportError: attempted relative import with no known parent package (0) | 2021.01.08 |
---|---|
Python - decorator (0) | 2021.01.06 |
python - pytest (0) | 2021.01.06 |
python - assertion (0) | 2021.01.06 |
python - 리스트, 딕셔너리, 집합 (0) | 2020.09.09 |