멋쟁이사자처럼 스타트업 스쿨2기 이틀차이다.
오늘은 Python 강의를 듣는 날이다.
Velog를 존댓말로 쓰다보니 뭔가 TIL이랑 안맞는 것 같기도 하고,, 내가 보기 편하도록 편한 어투로 쓰기로 했다.
코딩을 러시아 인형에 비교를 많이 하셨다. 마트로시카? 라는 인형인데 인형속에 인형이 있고, 인형이 또 있고 감싸주는 인형같은 것이다.
가장 기본이 되는 코드를 안에 넣어줘서 하나의 작은 인형을 만들어 주고, "()"과 같은 인형으로 그 인형을 감싸주는 인형을 만든다. 또 그 위에 함수와 같은 인형으로 감싸주고, 이런식으로 코드를 이해하기 쉽게 설명 해 주셨다.
예를들어 음식들 중 랜덤으로 하나 뽑아주는 프로그램을 작동시켜,
30번 음식을 뽑고싶다. 이때 가능한 방법은 여러가지가 있는데
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
printf(random.choice(["된장찌개","김치찌개","김치찜","냉면"])
가장 원초적인 방법을 이용하여 이런 코드를 이용하여 30번 반복해 줄 수 있는데, 이 방법은 굉장히 나쁜 방법이다. 요즘은 이런 약어가 있다고 한다.
DRY
Don't Repeat Yourself
혼자서 반복하지 말아라. 즉 무언가를 시켜서 반복시켜라 라는 뜻인데, 이를 어떻게 간단하게 반복시킬지 알아보도록 하자.
대표 문법으로
for i in range(30):
print(random.choice(["된장찌개",--]))
이런식으로 반복문을 돌리게 된다면 0부터 29까지 반복을 하며 총 30번 반복을 해서 출력을 해주는 것을 볼 수 있다.
무한반복은 쉽다.
while True:
이런식으로 while에 트루값을 주면 무한대로 반복하게 된다.
이때 조건문을 대입해 break;를 이용하여 반복을 멈출 수 있다.
**
Dictionary는 -는 : -다.
List는 그냥 진짜 나열!
Dictionary는 {} 중괄호
List는 []대괄호!
코드로 알아봅시다.
information = {"고향":"수원", "취미":"영화관람","좋아하는 음식":"국수"}
foods = ["된장찌개", "피자", "제육볶음"]
이와같이 dictionary는 위에서 설명한 것과 같이 key값과 value가 쌍으로 존재!
List는 음식들과 같이 쭉 나열해 주는 용도임을 알 수 있었다.
리스트와 집합의 차이를 알아보자.
리스트는 기본적으로 순서가 있다.
List1 = ['지니','램프,'요정']
이라고 한다면, 0번째가 지니 1번째가 램프, 요정은 2번째이다.
즉 순서가 명확하다.
그러나 SET은 순서가 있지 않다. 집합이기 때문에 그저 집합 안에 원소로 존재하며 순서는 의미가 없다.
집합의 특징은 중복이 없다는 것이다.
그렇다면 리스트를 집합으로 바꾸는 방법에 대해 알아보자.
foods = ["된장찌개","김치찌개","고등어조림"]
과 같은 foods라는 리스트가 있다.
그렇다면 간단하게
set_foods = set(foods)
이런식으로 foods를 set이라는 러시아인형으로 감싸주어 집합으로 변환시켜주고,
set_foods에 저장을 해주는 것이다.
이후 위에 배운 기초 문법들과 append 와 del을 이용하여 음식들을 추가하고, 삭제하면서 마지막에 랜덤으로 음식을 골라주는 프로그램을 작성해 보았다.
lunch = ["된장찌개", "피자", "제육볶음", "짜장면"]
while True:
print(lunch)
item = input("음식을 추가 해주세요 : ")
if(item == "q"):
break
else:
lunch.append(item)
print(lunch)
이런식으로 무한반복 시켜놓고 음식을 추가하고, q를 입력하면 break를 건다.
일부를 발췌했다.
이런식으로 내가 원하는 만큼 질문을 입력해 주고, 답변을 입력하면
질문과 답변이 입력한 순서대로 쫘라락 출력이 되는 프로그램이다.
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)
total_list = []
while True:
question = input("질문을 입력해주세요 : ")
if question == "q":
break
else:
total_list.append({"질문" : question, "답변" : ""})
for i in total_list:
print(i["질문"])
answer = input("답변을 입력해주세요 : ")
i["답변"] = answer
print(total_list)
단일 방법이 아니라, dictionary를 이용해서도 비슷하게 먼저 풀어보고,
List를 이용해서 제대로 풀어내는 과정이 참신하면서도 머리에 쏙쏙 박혀서 좋았던 것 같다. 다만 코드리뷰 전 전체코드를 작성할 때 문제를 보여준다거나 하면 내가 처음부터 다시 작성하기 편할 것 같다. html/css편도 마찬가지.