[내일배움캠프] DAY9 - 파이썬 기초탄탄3, 파이썬 종합반 2-4주차, 아티클 스터디

채은·2025년 12월 9일

1. 코드카타
2. 개인 학습 시간
3. 파이썬 기초탄탄
4. 아티클 스터디

.
.
.

1. 코드카타

강의 듣기가 급한지라 오늘은 5,6번 두 문제만 풀었다.
5번 문제는 어제 분명히 어려워 보였는데 오늘 다시보니까 후딱 풀림..뭐지?

다시보니 쉬웠던 5번 문제 답
def solution(num1, num2):
    if num1==num2:
        answer = 1
    else: 
        answer = -1
    
    return answer

2. 개인 학습 시간

✏️ 데이터 분석 파이썬 종합반 2주차

튜플

생긴건 리스트랑 비슷하지만 얘는 불변이다~
그래서 데이터를 보호하고 싶을 때 시용함!
소괄호를 사용하지만 괄호가 없어도 됨

인덱스랑 슬라이싱은 리스트랑 같은 내용

만약에 튜플 안에 같은 내용이 2개 있다?
그러면 앞에꺼 인덱스 위치로 출력해줌
1,2,3,1,2,3
3 어딨어? -- 인덱스 2에 있어!

튜플은 기본적으로 불변.
그치만 튜플끼리 합치거나 내용을 반복하는 건 가능함
그리고 튜플->리스트, 리스트->튜플로 변환은 가능하기 때문에 튜플을 리스트로 바꾼 후 수정을 하고 다시 튜플로 변환하는 것도 가능함

.

딕셔너리

{키:벨류} 가 기본 형태
키는 절대 중복안됨!
딕셔너리는 뭔가 엑셀같음
그래서 pandas에서 표로 만들기도 되게 유용하다~

딕셔너리의 메소드 함수

복붙해서 넣기

get이랑 인덱싱은 별반 차이가 없음. 근데 왜 만들었어!!!!! -> 지피티한테 물어보기

데이터를 매칭해ㅐ서 잘 관리하고 싶을 때 딕셔너리를 사용~

✏️ 데이터 분석 파이썬 종합반 3주차

파이썬의 근육,,,조건문과 반복문
모르면 암것도 못한다는 거구나

조건문

프로그램의 흐름을 제어할 수 있다
if, elif, else
if 첫번째 조건
elif(선택) 두번째 조건(if에서 걸러진 애들이 옴)
else 위에 두 조건 모두 불충족하는 나머지들

들여쓰기 꼭 명심하기(공백간격는 중요한게 아님. 간격통일이 중요한 거)
이걸 제대로 안하면 인벤테이션 오류가 생기는 거
그리고 조건 뒤에 : 꼭 적기. 자꾸 빠자먹드라

x = 10

if x > 5:
    print("첫 번째 블록 시작")
    if x < 15:
        print("두 번째 블록 시작")
else:
    print("첫 번째 블록 끝")

이런 경우에는 첫번째 if의 조건을 만족한 경우에만! 안에 if 조건에 대해서 실행해볼 수 있는 거임

예시로 이해 해보자면
x = 10 --> 두 번째 블록 시작
x = 15 --> 첫 번째 블록 시작
x = 5 --> 첫 번째 블록 끝

.

연산자

!= 같지 않음 (이거 좀 특히허네~)
not이랑 비슷한 느낌쓰

그래서 지피티한테 비교 부탁해봄
근데 사실 뭔말인지 정확히는 모르겠음...ㅎㅎ;;

.

조건문 한줄요약

x = 10
result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0"
print(result)

사전 교육 때 배운 기억이 번뜩 남
이 축약버전을 '삼항연산자'라고 함
기본 형태는 아래와 같음

(참일 때 값) if (조건) else (거짓일 때 값)  --- 괄호가 3개 => 항이 3개 => 그래서 삼항연산자!

.

반복문

말 그대로 코드를 반복해야 할 때 사용하는 친구.
크게 for문과 while문이 있음

for문

for 변수 in 반복할_데이터:
    코드_블록

얘가 더 직관적이라 그런지 while문 보다 많이 쓰인다

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

이러면 과일 이름이 한줄씩 나옴

apple
banana
cherry

문자열에서도 가능함

for letter in "hello":
    print(letter) 
   
h
e
l
l
o

range() 함수를 함께 사용하기도 함

range()가 뭔데?
내가 원하는 만큼 숫자를 나열해주는 친구. 연속된 정수를 생성해준다~

range(start, stop, step) -- 이게 기본형

start랑 step은 생략이 가능하며, 생략시 기본값은 start=0, step=1이다~

for i in range(5):
    print(i, end=' ')

이렇게 하면, 숫자가 0부터 4까지 5개가 나옴
range(5)라고 쓰면 4까지 나오는게 킹받아서 아래와 같이 작성하기도 함
for i in range(4+1):

이러면 4라는 표현이 들어가니까 좀 더 직관적으로 파악이 가능하다~

리스트의 슬라이싱과 range() 함수의 다른점

리스트의 슬라이싱 - 값을 가져올 때
range() 함수 - 값을 생성할 떄

딕셔너리까지도 반복이 가능하다
근데 중요한 점. 딕셔너리는 키-벨류로 되어 있기 때문에 변수 지정할 때도 키랑 벨류 둘다 해줘야 한다~

person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
    print(key, " : ", value)

문자열에서 특정 문자 제거하기

요런 것도 됨

sentence = "Hello World"
result = ""
for char in sentence:
    if char != "o":    --- 'o'가 아닌 것만
        result += char  --- 누적하거라
print(result)

이중 for문

조건문과 반복문을 복합적으로 활용하여 구구단 출력

for i in range(2, 10):
    print(f"{i}단:")
    for j in range(1, 10):
        print(i, "x", j, " = ", i * j)

이거는 별 찍어내는 코드

직각 삼각형 만들기
size = 5
for i in range(size):   --- 별을 몇줄 만들 것이냐
    for j in range(i + 1):  --- 별을 몇개 만들 것이냐
        print("*", end="")
    print()
일케하면 역삼각형도 만들 수 있다~
size = 5
for i in range(size, 0, -1):
    for j in range(i):
        print("*", end="")
    print()

실전 예시

결측치가 있는 경우, 반복문을 통해 제거할 수 있음

data = [10, 20, None, 30, 40, None, 50]
cleaned_data = []
for d in data:
    if d is not None:             결측치가 아닌 것만
        cleaned_data.append(d)    담아주쎼용
print(cleaned_data)

조건을 만족하는 데이터 찾기

data = [10, 20, 30, 40, 50]
threshold = 25
for d in data:
    if d > threshold:   --- 임계값보다 높은 것만 뽑아서
        print("Value greater than", threshold, "found:", d) -- 이렇게 입력해주쇼

모델의 정확도를 평가하는 코드

true_values = [1, 0, 1, 0, 1]
predicted_values = [0, 0, 1, 0, 1]
correct_predictions = 0
for true, pred in zip(true_values, predicted_values):  -- 첨보는 함수 zip
    if true == pred:
        correct_predictions += 1
accuracy = correct_predictions / len(true_values)
print("Accuracy:", accuracy)

zip() 이 뭔데!!

while문

무한반복 -- 그래서 얘를 제어할 수 있는 장치가 필요함

while문 멈춰버리기

  • 조건을 집어넣어서 얼마 그걸 만족하면 혹은 불만족하면 멈춰라 하던가
    (불리안의 특징을 이용한 것)
    .
  • 사용자의 입력으로 멈추던가
    (특정 단어를 사용해서 while user_input != 'quit': 이런 식으로 활용)
    .
  • break를 통해 강제로 빠져나오던가

다른 제어문
pass -> 아무것도 하지말고 그냥 계속해~
continue -> 계속 실행해~

그럼 둘이 무슨 차이냐?
pass는 아랫줄로 넘어가는 거고
continue는 다시 반복문을 수행하기 위해 위로 넘어가는 거임

이런 반복문을 활용하면 팩토리얼 같은 것도 간단히 계산할 수 있음

.

강의 마지막 퀴즈에서 틀린 문제
Q. 1부터 10까지의 정수 중에서 홀수만을 포함하는 리스트를 생성하는 파이썬 코드를 작성해보세요.

내가 썼던 답
for i in range(1, 10+1)
      if i % 2 ==1:
      print(i)

틀린 이유는 리스트를 생성하라했는데 문제 제대로 안 읽고 출력만 했음 ㅡㅡ

여기서 리스트를 만들기 위해선 먼저 빈 리스트를 하나 선언해줘야 하고,
반복문을 통해 나온 결과를 리스트 안에 넣어줘야 한다~
그래서 올바른 답안은 아래와 같다

odd_numbers = []
for i in range(1, 10+1):
    if i % 2 == 1:
        odd_numbers.append(i)

.

.

3. 파이썬 기초탄탄3

강의내용 정리

오늘은 패드에 필기를 해봤다..!
손으로 쓰니까 좀 더 자유롭고 잠도 안온다는 장점이 있지만
코드 정리 어렵다는 개큰 단점도 있다....
손필기 할거면 코드는 따로 타이핑 해야할 듯
문제는 낼 풀어보기.....

.

.

4. 아티클 스터디

데이터 분석가가 되어보니 중요한 것
인사이트: 조직의 더 좋은 의사결정을 위해선 무엇보다 조직의 원활한 데이터 흐름이 기반이 되어야 하고, 조직 전체가 데이터에 대한 이해가 있다면 더 구체적이고 체계적인 분석과 목표를 통해 성공적인 의사결정을 할 수 있다

.
.
.

오늘의 소감
오늘 라이브 강의에서 들었던 내용 중, 사전교육에서 배웠던 게 있는 것 같아서 다시 강의 자료를 열어봤는데, 어라 그냥 여태까지 내용이 다 배웠던 거네?
근데 왜 처음보는 것 같았지...? ㅋㅋㅋㅋ큐ㅜ
여태까지 배운 내용의 간단.ver가 정리되어 있으니 나중에 다시 한번 훑어봐야겠다..

새롭게 알게된 점 & 어려웠던 점
아티클 읽으면서 데이터 분석가에게 나아가서는 조직에게 중요한 요소들에 대해서 알 수 있었고, PA랑 zip() 함수 같이 처음 보는 내용에 대해서도 찾아보았다.
어려운 점은 시간이 너무 부족하다....ㅠㅜ
필요이상으로 필기에 신경쓰나 싶은 생각이 들기도 하는데, 담 강의부터는 강의자료에 필기하고 거기서 핵심 내용에 대해서만 TIL에 몇줄 남겨야겠다

내일의 목표
면접 끝나는대로 수업 참가하기
파이썬 기초탄탄 문제 풀기
사전교육 자료 다시 보기

profile
내일배움캠프 사전교육 수강중

0개의 댓글