TIL/내일배움캠프

파이썬 시작하기 Ⅱ

Kou_ 2026. 5. 4. 15:55

[내일배움캠프] QA/QC_6기 - 사전캠프 9일차

  • TIL
    • 파이썬 반복 구문 작성하기
  • To-Do List
    1. 파이썬 (~ Chap1-18)
    2. 퀘스트 진행
    3. 반복문 연습하기 part 2, part 3
    4. ADsP 강의 수강 (Chap5~10)

파이썬

파이썬 시작하기

    • 함수
      • 함수는 반복적으로 사용하는 코드에 이름을 붙여놓은 것
      • 조건문에 넣을 값을 바꿔가며 결과 확인 시 용이
      • 단순 출력 뿐 아니라 결과 값을 돌려주도록 함수를 만들 수 있음
      • 예시
        def check_gender(pin):
            num = pin.split('-')[1][0]
            if int(num) %2 == 0:
                print('female')
            else:
                print('male')
        
        my_pin = '200326-415262'
        check_gender(my_pin)
         
  • 튜플 (Tuple)
    • 리스트와 비슷하지만 변하지 않는 자료형, 순서가 존재
      a = (1,3,5,1,2,1)
    • 불변이기 때문에 다음과 같은 작업이 불가
      a = (1,3,5,1,2,1)
      a[0] = 99 #첫번째에 99 추가 (하지만 튜플이라 ( ) 안에 추가 불가능 → 불변)
  • 집합 (Set)
    • '집합'을 구현하는 방법 (중복을 제거 할 수 있음)
    • 교집합, 합집합, 차집합도 구할 수 있음
    • 예시
      a = [9,2,7,4,2,3,2,7,8,2,5]
      b = [3,9,4,5,5,2,8,3,4,8,2]
      
      a_set = set(a) #a 리스트에서 중복 제거
      b_set = set(b) #b 리스트에서 중복 제거
      
      print(a_set & b_set) #교집합
      print(a_set | b_set) #합집합
      print(a_set - b_set) #차집합
       
  • f-string
    • 변수로 더 직관적인 문자열 만들 수 있음
    • 예시 : print( )에서 f-string을 사용해도 같은 결과 출력, 하지만 더 간결
      scores = [...]
      
      for s in scores:
          name = s['name']
          score = str(s['score''])
          print(name+'은/는 '+score+'점입니다.')
          print(f'{name}은/는 {score}점입니다.')
       
  • 예외 처리 ( try - except  문 )
    • 조건문 등에서 발생하는 에러(데이터 미입력 또는 잘못된 데이터가 입력됐을 때 등)를 예외처리 할 수 있음
    • 예시
      people = [...]
      
      for person in people:
          try:
              if person['age']>20:
                  print(person['name']) #연령이 20세 초과인 사람의 이름을 출력
          except:
              name = person['name']
              print(f'{name} - Error') #연령 값이 없는 등의 에러 발생 시 예외처리 후 name - Error 표시 
       
  • 파일 불러오기
    • 여러개의 파일로 분리 되어있을 때 다음과 같이 불러올 수 있음
      from file1 import * 또는 file2
  • 복잡한 구조를 한 줄로 만들기
    • if 문 - 예시
      num = 3
      if num%2==0:
          result = 'even'
      else:
          result = 'odd'
      print(f'{num} is {result}.')
                                                                                             ↓
      num = 3
      result = '짝수' if num%2==0 else '홀수'
      print(f'{num} is {result}.')
       
    • for 문  - 예시
      a_list = [1,3,2,5,1,2]
      b_list = []
      for a in a_list:
          b_list.append(a*2)
      print(b_list) #[2,6,4,10,2,4]
                                                                                             ↓
      a_list = [1,3,2,5,1,2]
      b_list = [a*2 for a in a_list]
      print(b_list) #[2,6,4,10,2,4]
  •  map, filter, lambda
    • map : 리스트의 모든 원소 조작
    • filter : 리스트의 모든 원소 중 특별한 것만 뽑기 (map과 유사하지만 True인 것들만)
    • lambda : 익명 함수, 일반적으로 일회성 함수나 함수를 인자로 전달해야 하는 경우에 유용
    • map, lambda - 예시
      people = [...]
      
      def check_adult(person):
          if person['age']>20
              return 'adult'
          else:
              return 'teenager'
      result = map(check_adult, people)
      print(list(result))
                                                                                              ↓
      people = [...]
      
      result = map(lambda x: 'adult' if x['age']>20 else 'teenager', people)
      print(list(result))
       
    • filter, lambda - 예시 
      people = [...]
      
      result = filter(lambda x: x['age']>20, people)
      print(list(result))
       
  •  함수 심화
    • 함수의 매개변수
      • 함수에 인수를 넣을 때 매개변수 값의 지정 (순서 상관 X)
        def cal(a,b)
            return a+b
        
        print(cal(3,5)) #매개변수 지정 X, (3,5) 순서로 삽입
        print(cal(5,3)) #매개변수 지정 X, (5,3) 순서로 삽입
        print(cal(a=3,b=5)) #매개변수 지정, 순서 상관 X
        print(cal(a=5,b=3)) #매개변수 지정, 순서 상관 X
         
      • 특정 매개변수의 디폴트 값을 지정
        def cal(a,b=3):
            return a+b
        
        print(cal(3)) #b는 2의 디폴트 값을 가지므로 a에 3이 삽입
        print(cal(5,3)) #(5,3)의 순서로 a,b에 삽입되어 디폴트 값은 무시
         
      •  입력값의 갯수를 지정하지 않고 모두 받기 (*args)
        def cal(*agrs):
            for name in agrs:
                print(f'I am {name}')
        
        call_name('John','Kane')
         
  • 클래스 (Class)
    • 특정 물체에 각 속성을 저장해서 사용
    • 예시
      class Monster():
          hp = 100
          alive = True
      
          def damage(self,attack):
              self.hp = self.hp - attack
              print(self.hp)
              if self.hp <= 0:
                  self.alive = False
          def status_check(self):
              if self.alive:
                  print('alive')
              else:
                  print('dead')
      
      spector = Monster()
      spector.damage(20) #80, alive
      spector.status_check()

반복문 연습 part 2

  • 리스트에 포함된 모든 숫자의 합을 계산하는 프로그램을 작성해주세요.
  • 코딩
    numbers = [10, 20, 30, 40, 50]
    total_sum = 0
    
    for number in numbers:
        total_sum += number
        
    print(total_sum)
     

반복문 연습 part 3

  • 팩토리얼을 계산해보아요.
    • 팩토리얼은 n! = n * (n-1) * (n-2) * ... * 1
    • 0! = 1
  • 코딩
    number = 5
    factorial = 1
    for i in range(1, number + 1):
        factorial *= i
    print(factorial)
     

출처

전용문, 박현민 지음, 2026 ADsP 데이터분석 준전문가, 위키북스

내일배움캠프 교육 자료