내일배움캠프(QC,QA_5기)

[내일배움캠프_QA/QC 5기] 11일차 _ 파이썬 4강

qc-standard 2026. 3. 23. 21:10

2026/03/23 Mon.

  • 코드타카 6,7,8번 풀기 ( https://qc-standard.tistory.com/20 )
  • 파이썬 4강 TIL
  • 파이썬 5강
  • 파이썬 4강까지 복습
  • 파이썬 개인 과제 - "필수 문제" 위주로 최대한 풀기
  • TIL
     

⊙ 파이썬 4강

함수란?

● '입력을 받아 - 원하는 처리 - 출력'의 작업을 수행하는 코드 블록

함수는 입력-출력이 있음(없는 경우도 있긴 하지만) → 입력값 출력값을 생각해야함

함수의 필요성 : 코드 재사용 / 모듈화 / 유지 보수 용이성 / 가독성 향항

함수 정의

def 함수이름(매개변수1, 매개변수2, ...):
       return 결과값


매개변수 : 함수 내에서 사용되는 변수
              : 입력값이 들어가는 자리
              : 매변수를 이용해 함수 내부 코드 작성
리턴 : 결과값 반환

 

함수 호출

결과 = 함수이름(인수1, 인수2, ...)   

  함수 선언 : def

  원하는 이름 : greet

  매변수 : name - 함수에 입력하는 값이 여기에 들어감

  코드 실행 : message = "hello," + name + "!"

 → "hello," + 변수name + "!" 을 message라는 변수에 넣는것 

  리턴 : 만든 message 변수 출력

=> 여기까지가 함수를 만드는 과정

  Alice : 인수 = 함수의 입력값으로 넣는 값

  greeting : 함수의 출력값이 greeting이라는 변수에 담기게 됨 

 

 

 

예시

 평균값

  주어진 숫자 리스트의 평균을 계산하는 함수
  calcultate - 계산하다
  calculate - 함수
  매개 변수 - numbers - 입력값이 담기는 곳
  매개 변수들을 sum(더해서) total이라는 변수에 담고
  len(갯수세기)을 써서 total을 나누면 mean(평균)을 구할 수 있음
  return을 통해 함수를 밖으로 내보내고

  데이터 정의하고
  데이터를 calculate mean 안에 넣음
  데이터 = 매개 변수가 됨
  calculate mean이 averge라는 변수에 담기게 됨
 
 
 
리스트에서 최대값
 
  함수 이름 : find max
  매 변수 : numbers
  numbers는 리스트이므로 인덱싱해서 첫번째 값을 max num에 담는다
  numbers의 숫자를 하나씩 가져와서 max num에 담긴 숫자랑 비교
  모든값을 거친 다음에 return을 통해 출력하게 되면
  최대값만 출력이 되게
 
 
 
 
 
 
 
튜플의 모든 요소 곱하는 함수
 
 
  multiply tuple-함수
  tup - 매개 변수
  result = 1 초기값 지정 / 임의로 1
  tuple에서 값을 하나씩 빼와서 result에서 누적해서 곱한다
   *= 붙여서 표현하면 누적해서 곱한다
  최종 result 반환
 
 
 
 
 
 
 
 
 
 
문자열에서 문자 출현 빈도를 딕셔너리로 반환하는 함수
 
 
  string ; 매개 변수
  freq_dict ; 임의의 딕셔너리 여기에 값을 계속 집어 넣을 거임
  string에서 글자를 하나씩 빼와서 char 변수에 담게 됨
  frequency = 빈도 
  조건문 사용 ; freq_dict에 char이라는 글자가 있는지 없는지 확인하는 조건
  반복문(for문)에서 in을 쓰면 다음 시퀀스 데이터 타입이 오면 = for char in string(시퀀스타입) → 하나씩 가져오는데
  조건문(if문)에서 in을 쓰면 해당변수(char)가 freq_dict에 존재하는지 아닌지 확인 → 존재하면 true, 아니면 false
  딕셔너리 이름 freq_dict / 키 char / 값 1
  기존에 있는데 더 있으면 +1하는 방식으로
  hello라는 문자를 키로 해서 키에 몇개의 글자가 있는지 세어주는거?
 

전역변수?

프로그램 전체에서 접근 가능한 변수

  전역변수 예시

 

  전역변수 예시
  함수를 쓰지 않고 변수를 만들어서 거기에 값을 담게 되면 '전역변수'
  함수 내부 외부에서 사용할 수 있음
  지역변수는 지녁 내에서만 사용할 수 있음

 

 

 
 
 
   함수 내에서 전역변수를 수정하는 예시
   전역변수를 얼마든지 쓸수는 있지만 수정은 할 수 없음
   global을 쓰고 전역변수 이름을 쓰면 → global 변수를 직접 함수 내에서도 수정 할 수 있음
  특수한 문법

 

 

지역변수?

  특정한 범위(함수 내부)에서 정하는 변수 → 함수 밖에서는 그 변수 사용하지 않음

  함수 내에서만 사용되고 벗어나면 사라진다

  지역변수 예시

 
 
 
 
 
 

 

 

 

 


인수? 매개변수? 

  예시

   name은 매개변수
   호출할 때, 전달되는 Alice는 인수
   Alice를 함수에 넣어주면 name이라는 변수에 Alice가 담기는 거

 

 

 

 

 

    x와 y 매개변수

   10과 20은 매개변수로 전달되는 전달인자=인수=Argument

 

 

 

 

 

위치인수(Positional Arguments)?

● 함수의 인수를 정할 때, (여러 개의 인수를) 넣는 순서에 따라서 매개 변수에 담기는 것도 결정

 

철수 - 30 순서 / 30 - 철수 순서가 달라지는거

→ 위치 인수

 

 

 

키워드 인수?

 

name 매개변수에 들어갈 인자를 Alice라고 특정한 것

age 매개변수에 들어갈 인자를 30이라고 특정한 

순서를 바꾸더라도 매개변수-인자를 지정해놨기에 아무 상관 없음

 

매개변수가 많은 때, 키워드를 지정해서 넣는게 정확함

 

 

 

 

기본값 설정하기?

● 매개변수 자리에 =을 써서 기본값을 넣음

 

age에 아무 인자를 넣지 않아도 기본값이 설정되어 있어 → 기본값으로 실행됨  

인자를 넣지 않아도 기본적으로 출력되는 값 → 인자를 넣으면 인자값이 나옴 

 

 

 

 

 

 

 

 

기본값을 미리 설정해두고

 

 

인자를 넣으면 → 인자 값이 나오고

1개의 인자만 넣으면 → 인자 값이 나오고

                                  → 인자를 넣지 않은건 기본값 

 

 

   

 

 

가변인수? 

변수가 몇개 들어갈지 잘 모르고 그때마다 달라지는 경우

 

*args

매개 변수의 갯수만큼 인수를 넣어서 사용해야 했지만 이건 몇개든 상관 없음 → 인수가 몇 개 들어갈지 모르는 상황에서 매개 변수에 *args 써서 어느 상황이든 받을 수 있도록

 

**kwargs(키워드 알그스) 

키워드 인수 + *args → 키워드 인수를 받는 args → 키워드 인수 갯수는 상관없음    


함수 사용 : 데이터 전처리 / 데이터 시각화 / 통계적 계산