2주 차까지 데이터 분석 강의를 들으면서 느낀 건..
아.. 이거 빡세게 공부해야겠는데? 그래야 따라잡겠는데? 싶었다.
그만큼 내가 기초가 없고 지식이 0이다 보니 간단한 것에서 버벅거리고 이해가 느리다는 의미겠지..
솔직히 목표는 추가 과제까지 완료해서 통과하는게 목표인데, 지금처럼 하면 택도 없다.. ^^
그냥 완강에 의미를 두어야할 상황..ㅎ
그런 이유로 일단, 이해가 안 가더라도 강의진도를 빼고, 복습을 하면서 부족한 부분을 메꾸는 쪽으로 공부방향을 변경했다.
그리고 오류를 기록하고, 해결하는 과정을 기록하는 게 머리에 되게 오래 남아서 앞으로도 공부하면서 생긴 오류를 기록하려고 한다.
이번 주차에 공부한건 if/while/for 구문, 함수 + 파라미터인데 함수 쪽은.. 아직 내가 글을 쓸 수 있을 정도로 이해한 게 아니라서 스킵하려 한다.
1. if문
if문은 조건에 맞으면 어떤 액션을 수행해라 할 때 쓰는 구문이다.
e.g.
money = true
if money:
print("택시를 타고가라")
----------------------------
"택시를 타고 가라"
변수가 참이면, print("택시를 타고가라")를 출력하게 된다.
그런데 엑셀에서 if 함수를 생각했을 때, "A면 A'하고, A가 아니면, B해라"를 수식으로 세울 수 있지 않은가?
또 "A가 >500이면 great, A가 500이면 soso, 그 외의 경우엔 bad"로 출력해라를 수식으로 세울 수 있는데,
파이썬 if 구문도 마찬가지다.
if 조건문 1:
수행할 행동 1:
조건문 2:
수행할 행동 2:
else
수행할 행동 3
이렇게 표현이 가능하다.
1) 조건이 한개이고 실행할 구문도 1개일 때
강의를 들으며 실습했던 것 중 if문에서 오류가 난 상황인데.. ^^ 이젠 이건 간단하게 해결 가능하지ㅎ
a = 5
if a ==5:
print("True")
------------------
"True"
a가 5이면, "True"를 출력해라 -> 인데 조건에 a=5가 아닌 a==5로 써야 한다는 것!! 항상 기억하기 ㅠ
2) 조건이 여러개이고 실행할 구문도 여러 개일 때
이 구문은 조건이 3개로 각각의 case에 맞춰서 개별로 코딩을 짠 상황이다.
A. 돈이 300원이면 -> "coffee"를 출력하라
B. 돈이 300원보다 많으면( money>300), "coffee"를 출력하고 잔돈을 거슬러줘라
C. 돈이 300원보다 적으면(money<300), 돈을 돌려줘라.
이걸 하나로 합치면 결국 초반에 말했던 else문도 자연스럽게 사용하게 된다.
5행과 8행에 콤마(,)를 지우면 오류 해결이 된다.
엑셀 함수 쓰던 습관 때문에 자꾸 콤마를 쓰게 되는거 같은데 코딩을 더 연습하다 보면 바로바로 척척 코딩할 수 있겠지..?
2. while문
while문은 for문과 비슷한데 조금 다르다.
조건에 도달할 때까지 while문을 반복해야 할 때 사용한다.
동일한 자판기 예제에 조건 하나를 추가하여 while문을 작성하였다.
커피의 수량이 5개로 남아 있는 동안 while문이 작동해야 한다면, 위와 같이 코드를 짤 수 있다.
조건은 역시 if문을 사용하여 1-3까지를 반복하고, 만약 커피의 개수가 0이 되면 4)의 문장을 출력하여 while문을 종료하게 된다.
0. while coffee > 0
if // 1. money = 300이면, 커피를 출력해라
coffee= coffee -1
2. money < 300이면, 돈을 반환하라 (이 경우, 커피의 수량에는 변함이 없음)
3. 이 외의 경우( money >300)엔 커피를 출력하고, 잔돈을 거슬러줘라
coffee = coffee -1
money - 300
4. 커피가 0이 되면 "커피가 모두 소진되었으니, 관리자에게 문의해주세요." 출력
이렇게 코딩을 하면,
while문은 money값을 입력받고, if문의 1~3까지 반복하여 coffee의 개수가 0이 되었을 때, 4를 출력하게 된다.
오,, 뭔가 끄덕끄덕,, 이해가 간다.
3. for문
for문도 while문과 마찬가지로 반복문인데. 사실 아직 이 둘을 어떤 상황에 택해서 써야 하는지 판단이 명확하게 안 선다.
따로 문제풀이랑 공부를 더 해봐야 감이 올 것 같다.
어찌됐든, for문도 반복문으로 구조는 아래와 같다.
for 변수 in 리스트(or 튜플, 문자열):
수행할 문장1
수행할 문장2
...
..
.
이번에는 커피 음료 찾기 예제로 for문을 살펴보면 아래와 같다.
커피 메뉴가 담긴 리스트와, 가격이 담긴 리스트가 있다.
만약 돈이 5천원 있다면 구매할 수 있는 커피 메뉴가 궁금할 때 위와 같이 코딩을 짤 수가 있다.
오... 쓰면서 알게 된 건데, for문은 정의된 리스트, 튜플 혹은 문자열이 있어야 하는구나..!!!
wow
다른 예제를 한번 더 풀어보겠다.
Q. 총 5명의 학생이 시험을 보았는데, 시험 점수가 80점이 넘으면 합격이고 그렇지 않으면 불합격이다.
합격인지 불합격인지 결과를 보여주시오.
points = [80,40,60,90,100]
#점수가 들어간 points 리스트를 생성한다.
number = 0
#학생의 번호를 0번부터 매겨준다.
for point in points:
number = number + 1
if point >=80:
print("%d번 학생은 합격입니다." %number)
else :
print("%d번 학생은 불합격입니다." %number)
---------------------------------------------------
이렇게 작성해서 코드를 실행해보면 아래와 같이 결과가 출력된다.
1번학생은 합격입니다.
2번학생은 불합격입니다.
3번학생은 불합격입니다.
4번학생은 합격입니다.
5번학생은 합격입니다.
음, 확실히 이해는 if문은 이해가 가는데, for문은 예제를 더더더더 많이 풀어봐야 할 것 같다..
아직도 뭔가 아리송하네..
아무튼 결과가 저렇게 나오는거는 이해가 가는데 말로 설명을 못하겠다..
다음 주에는 numpy와 pandas를 배우니, 해당 내용에 대한 리뷰를 들고 올 수 있기를..★
화이팅 이췐췐!!!!