[25.02.06]사전캠프 12일차 아티클스터디+조건문,반복문,함수

김명서·2025년 2월 6일
1

TIL_sparta

목록 보기
14/60

오전스터디

조건문

핵심은 if, else,elif

콜론 뒤에 들여쓰기가 된 내용이, 그 함수 조건의 내용이 된다!(들여쓰기의 중요성⭐)

🔻elif까지 더해보면~!

cf. elif는 여러개 쓸 수 있다 ~

.

반복문

기본구조

변수명= [변수들]
for 변수명' in 변수명:
    print(변수명')

변수명'은 윗 변수명과 동일해도 되고 aaa같은 아무거나여도 출력값에 영향이 없다

(결과 동일)
.
.

예제. 사람의 나이 출력하기

🔻코드스니펫

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

people이라는 리스트에 딕셔너리가 8개 있는 상태.

for person in people :
    name=person['name']
    age=person['age']
    print(name,age)

이렇게 써주면

이렇게 나온다!

이 리스트에서 나이가 20보다 큰 사람만 출력하려면?


if를 사용해주면 된다
🔴주의할 점
if쓰고 : 빼먹지 말고! print도 if에 맞춰서 indent 해줘야한다 ~~!😊

이 예제처럼 리스트 쭉쭉쭉 돌면서 원하는 조건만 출력해 내는 게 전형적인 문제 패턴이라고 한다.

💠enumerate,break


출력 결과 앞에 0부터 숫자가 매겨진 것을 볼 수 있다
ia로 바꿔도 동일한 결과가 나왔다.

break로 자르기


🔻예제 혼자 풀어보다 잠시 {}, []가 헷갈려서 정리🔻

mydictionary = {} #빈 딕셔너리 생성 시 {}사용
mydictionary = {"mouse":3, "penguin":5}
mydictionary["mouse"] 
#key("mouse")에 대응하는 value(3)에 접근할 때 사용
mydictionary["cat"] = 1 
#key("cat")에 대한 value(1) 생성
  • tap 뒤로가기
    shift+tap 앞으로가기

아티클스터디

오늘의 아티클
주니어 데이터 사이언티스트에게 하고 싶은 말
[주제]

  • 주니어 데이터사이언티스트에게 하고 싶은 이야기

[아티클 요약]

  • 데이터 사이언티스트에게 요구되는 성장경로
    1) 도메인 전문성과 네트워크를 키워 PM 혹은 경영자와 같은 도메인 전문가의 길
    2) 통계 및 머신러닝 방법론에 특화된 분석 전문가의 길
    3)개발 및 시스템 역량을 키워 분석 역량을 갖춘 엔지니어로서 성장하는 길
    etc.
  • 가장 중요한 회사의 조건
    어떤 업계/회사/팀에 지원할 것인가?
    :회사의 미래에 데이터 활용이 얼마나 중요한 전략적 위치를 점하는지.
    =얼마나 큰 투자가 이루어지는지, 이런 투자가 가치를 만들어낼 수 있는지
    →채용규모가 어떠한지, 혹은 매니저와 팀원을 동시에 뽑는지 등을 확인
  • 내가 조인해서 가치를 만들 수 있는 포지션인가?
    :인터뷰에서 팀의 현재 니즈 및 전략적 방향에 대해 상세히 물어보기
  • 회사가 얼마나 기술적인 성장에 초점을 맞추는가?
    :채용 공고에 나타난 회사의 기술 스택이 어떤지, 혹은 회사의 기술 역량이 외부적으로 공유된 자료가 있는지 확인하기
  • 지원하는 조직이 회사에 어떤 기여를 하고 있는지, 스타트업이라면 비즈니스 성장 커브 및 건강성은 어떤지 따져보기
    → 수많은 Hype과 무작정 신기술 추종을 경계
  • 코딩과 모델링은 얼마나/무엇을/왜 잘해야할까?
    ’분석가’ : 이미 존재하는 데이터 파이프라인 및 인프라에서 SQL등을 사용해서 데이터를 뽑고 리포팅하는데 그치는 역할
    데이터 사이언티스트가 지속적으로 가치를 만들어내기 위해서는?
    분석의 스케일링과 자동화
    스케일링: 개발된 분석 기법을 다른 사람들이 쓸 수 있도록 라이브러리 및 템플릿을 만들거나 인프라에 해당 기능을 추가하는 것
    모델링: 반복되는 의사결정을 단순화 및 자동화할 수 있는 모델을 만드는 것
    ex. A/B테스트 자동화
  • 이상적인 분석문화
    신뢰할 수 있는 인프라 및 데이터 파이프라인, 분석 코드의 라이브러리화 및 재사용을 강조하는 문화, 이 모든 것을 뒷받침하는 데이터 엔지니어와 분석가의 협업
    =실력있는 엔지니어와 분석가들이 함께 일할 수 있는 환경을 찾기
  • 인터뷰를 어떻게 준비할 것인가?
    생각보다 많은 후보자들이 지원하려는 회사의제품, 팀에 대해서 이해하려는 충분한 노력을 기울이지 않는다‼️
💡💡💡
  • 이 회사에서 나는 어떤 인프라와 데이터를 사용하게 될 것인가?
  • 지원하는 팀이 당면한 분석 및 엔지니어링 문제는 무엇인가?
  • 이 중 내 스킬셋과 관심사에 부합하는 부분은 무엇일까?
  • 지원 회사/팀/분야에 대한 공개된 자료는 어디에서 찾을 수 있을 것인가?
  • 내 성장 목표는 지원 회사/조직의 중장기 목표와 align되는가?
💡💡💡

위와 같은 질문에 대해 생각과 조사를 하고 인터뷰에 임하기.

  • 이력서 작성의 요령 및 경력사항에 대한 질문을 준비하기
    채용하는 입장에서 지원자의 경험과 역량을 가늠할 수 있는 핵심적인 이력이 몇개가 있는지가 더 중요, ⇒ 관련성 확보가 중요
    이력서는 자신의 경력에 대한 검색 결과 페이지를 만든다 생각하고 여기서 Precision을 Recall만큼이나 중요하게 여기기
    본인이 핵심적인 역할을 담당한 개발 및 분석 프로젝트에서 답변이 미흡하거나 답변이 제대로 이루어지지 않으면 안된다.
    ⇒이력서를 최대한 핵심만 간결하게 유지하고, 자신이 면접관의 어떤 질문에도 대답할 수 있는 항목만 남겨야하는 또다른 이유

[인사이트]

  • 내가 원하는 도메인 분야를 고민하는데 어려웠던 점은 ‘비슷한 문화를 가진 회사’만을 준비해야할 것 같아서 였다.
    하지만 필자의 말처럼, Microsoft Bing, Snapchat과 같이 상당히 다른 문화를 가진 두 회사에서 일을 하면서도 ‘하나의 테마(온라인 서비스 개선을 위한 데이터 사이언스)’를 놓지 않는다면, 문화의 다름은 크게 방해가 되지 않을 수도 있겠다. 따라서 나도 단순히 도메인만을 목표로 설정하기 보다, 어떤 테마로 성장하고싶은가로 계획을 구체화시킬 필요가 있다고 생각을 했다.
    이력서와 인터뷰 준비를 어떻게 해야하는지에 대해서도 많은 팁을 얻을 수 있었다. 이 아티클을 읽으며 내가 생각한 성장진로로는 1번과 가깝다는 것을 알 수 있었고, 정리한 이력서/인터뷰/도메인지식 준비를 앞으로 철저히 보강해보아야겠다고 다짐한다.

오후스터디

1on1 담임선생님과 면담

어떤 이야기를 해야할까,, 잘 모르겠었는데, 담임선생님이 면담을 잘 이끌어주셔서 40분이나 진행했다! 덕분에 본캠프 전에 궁금했던 것들을 많이 여쭤볼 수 있었고, 선생님의 경험 말씀도 많은 도움이 되었다. 비슷한 직무 분야를 희망하시는 분들과 좋은 인연을 맺고싶다. 지금 가장 큰 다짐은.. 중간에 많이 힘들더라도 포기하지말고 꼭 끝까지 수료해야지 😊

반복문 예제

✍️ Q. 리스트에서 짝수만 출력하는 함수 만들기
접근방법- num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
반복문 사용해서 출력

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

for num in num_list:
    if num % 2 == 0:
        print(num)

✍️ Q. 리스트에서 짝수의 개수를 출력하기
이 문제는! 모르겠어서 강의를 참고했다 ㅠ
접근방법- count=0 해놓고 반복문 써서 if조건 만족할 때마다 +1하기

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

count=0
for num in num_list:
    if num%2==0:
        count=count+1
print(count)

count=count+1 이거는 count+=1 로도 표현해줄 수 있다

✍️ Q. 리스트 안에 있는 모든 숫자 더하기

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
total=sum(num_list)
print(total)

내가 써본 코드인데, 답은 맞았으나 반복문 활용은 못했다.
반복문을 사용하기 위해서는,
sum=0으로 두고 반복문에서 sum에 num을 더해주는 방식으로 해야했다.🔻

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

sum=0
for num in num_list:
    sum+=num
print(sum)

✍️ Q. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
오잉..? 가장 큰 숫자..? 아 일단 써봄

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

num=0
for nn in num_list:
    if num<nn:
        num=nn
print(num)

강의 답변을 확인해보니, num대신 가장 큰 숫자를 의미하는 만큼 변수명을 max로 설정하는게 좋았을 것 같다!

뭔가..지금까지 해본 적 없는 알고리즘이라 아직 어색하다 ㅠ

함수

함수란? 반복적으로 사용하는 코드들에 이름을 붙여놓은 것

def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27)
bus_rate(10)
bus_rate(72)

이렇게 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편하다!

def bus_fee(age):
		if age > 65:
		    return 0
		elif age > 20:
		    return 1200
		else:
		    return 0     


money = bus_fee(28)
print(money)

이렇게 return을 사용해서 결과 값을 돌려주도록 함수를 만들 수도 있다!

quiz_✍️ Q. 주민등록번호를 입력받아 성별을 출력하는 함수 만들기

코드스니펫_

def check_gender(pin):
    print('')

my_pin = '200101-3012345'
check_gender(my_pin)

이걸가지고 도전

음.........머가 문제지.....

✅"2"라는 문자열을 숫자로 바꾸려면?
힌트참고->int("2") 이렇게, int로 감싸주세요!

이거군 !!!
int() 기능을 더 찾아보았다

파이썬 int() 함수는 어떤 기능을 하는 걸까요? 문자열을 비롯해서 소수점 숫자를 정수형으로 변환하는데 이용해요. 예를 들어, int('123') 은 문자열 '123'을 정수 123으로 변환하는 명령엉요. int(3.6)은 소수점 숫자 3.6을 정수 3으로 변환할 수 있고요.

느낀점

int() 같은 걸 알고 있는 것도 중요하지만,
언제 써야하는지, 적절하게 사용할 수 있는지가 더욱 중요한 것 같다. 아직 이 부분은 부족한 것 같은데, 틀린부분을 기록하고 앞으로 더 많은 문제를 경험해보면서 실력을 키워나가야겠다 :-)

profile
경영학도의 데이터분석 성장기💥

0개의 댓글

관련 채용 정보