Python 함수

2020. 7. 3. 11:06·프로그래밍 & 개발 환경/Python
728x90

함수(function) :  어떤 일을 수행하는 코드의 덩어리, 또는 코드의 묶음

 

함수의 장점

  1. 필요할 때마다 호출 가능
  2. 논리적인 단위로 분할 가능
  3. 코드의 캡슐화

함수의 선언

def 함수 이름 (매개변수 #1 ...):

  수행문 1

  수행문 2

  return <반환값>

 

*def : 'definition'의 줄임말로, 함수를 정의하여 시작한다는 의미

*매개변수(parameter) : 함수에서 입력값으로 사용하는 변수를 의미하며, 1개 이상의 값을 적을 수 있다.

*수행문 : 수행문은 반드시 들여쓰기한 후 코드를 입력해야 한다. 수행해야 하는 코드는 일반적으로 작성하는 코드와 같다. if나 for 같은 제어문을 사용할 수도 있고, 고급 프로그래밍을 하게 되면 함수 안에 사용하기도 한다.

 

예제

더보기

# 사각형의 넓이 구하는 함수
def calculate_rectangle_area(x,y):
    return x*y


x = 10
y = 20

print("사각형의 x의 길이: ",x)
print("사각형의 y의 길이: ",y)

# 넓인를 구하는 함수 호출
print("사각형의 넓이: ",calculate_rectangle_area(x,y))

출력 결과

 

함수의 실행 순서 확인하기

더보기

# 함수의 실행 순서 알아보기

def f(x):
    return 2*x+7

def g(x):
    return x**2
x = 2

print(f(x)+g(x)+f(g(x))+g(f(x)))
# print( 11, 4, 15, 121) 로 치환되어 결과가 나오는 것을 확인할 수 있다.

출력 결과

함수의 인수

함수의 인수

 

키워드 인수(keyword arguments) : 함수에 입력되는 매개변수의 변수명을 사용하여 함의 인수를 지정하는 방법이다.

 

더보기

 # keyword arguments

def print_name(my_name, your_name):
    print("Hello {0},My name is {1}".format(your_name,my_name))
    
print_name("Lee","Hell")  # 매개변수 순서대로 대입
print_name(your_name="Hell", my_name="Lee") # 매개변수의 이름에 직접 대입

출력 결과 

디폴트 인수(default arguments) : 매개변수에 기본값을 지정하여 사용하고, 아무런 값도 인수로 넘기지 않으면 지정된 기본값을 사용하는 방식

더보기

# default arguments

def print_name(my_name, your_name="Hell"):
    print("Hello {0}, My name is {1}".format(your_name,my_name))

    
print_name("Lee","Hell")
print_name("Lee")

출력 결과

함수의 매개변수가 개수가 정해지지 않고 진행해야 하는 경우가 있다. 이때 사용하는 것이 바로 가변 인수(variable-length arguments)다.

 

가변 인수는 *(asterisk)로 표현할 수 있는데, *는 파이썬에서 기본적으로 곱셈 또는 제곱 연산 외에도 변수를 묶어 주는 가변 인수를 만든다.

더보기

# 가변 인수

def asterisk_test(a,b,*args): # 변수 a,b를 받고 나머지는 * args로 받는다.
    return a + b + sum(args) # args는 가변 인수

print(asterisk_test(1,2,3,4,5)) # 1,2,3,4,5에서 1과 2는 각각 a와 b에 할당되고 
                                # 나머지 인수인 3,4,5가 *args에 할당된다.

키워드 가변 인수

더보기

# 키워드 가변 인수

def kwargs_test(**kwargs):
    print(kwargs)  # **kwargs 에 first = 1, second = 2, third = 3
    print("First value is {first}".format(**kwargs))
    print("Second value is {second}".format(**kwargs))
    print("Third value is {third}".format(**kwargs))

kwargs_test(first = 1, second = 2 , third = 3) # 각각 1,2,3

키워드 가변 인수 출력 결과

728x90
저작자표시 (새창열림)
'프로그래밍 & 개발 환경/Python' 카테고리의 다른 글
  • Python 문자열 서식 지정 %,format()
  • Python 문자열
  • Python 숫자 찾기 게임
  • Python 반복문
포장빵
포장빵
IT공부 및 프로그래밍
  • 포장빵
    포장빵의 IT
    포장빵
  • 전체
    오늘
    어제
    • AI 학습 노트 (113)
      • 기초 수학 (4)
        • 선형대수 (0)
        • 확률통계 (4)
        • 미적분 (0)
        • 최적화 이론 (0)
      • AI & 딥러닝 (1)
        • 이론 (0)
        • 컴퓨터 비전 (0)
        • 자연어 처리 (0)
        • 생성AI (0)
        • 강화학습 (0)
      • 데이터과학 (70)
        • R (47)
        • ADSP (21)
      • 연구 & 자료 (15)
        • 논문 (6)
        • 수료증 (3)
      • 프로그래밍 & 개발 환경 (22)
        • Python (22)
        • 개발도구 (0)
        • 알고리즘 (0)
      • 면접 자료 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      상관분석
      k-means clustering
      지수분포
      yolov9
      다차원 척보법
      python 주요 데이터 타입
      주성분 분석(PCA)
      확률 분포
      str lib
      자료의 종류
      논문
      R 원 그래프
      Python Regular Expression Quick Guide
      Coursera Python Data Structures
      통계량에 의한 자료 분석
      베르누이분포
      none타입
      stylegan2
      단순선형 회귀분석
      R 원 그래프 퍼센트
      매핑형(딕셔너리)
      CV
      시퀀스형
      시계열 모형
      yolov10
      Coursera 1
      k-평균 군집
      R 도수분포표
      Python 크롤링 기초
      확률
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    포장빵
    Python 함수
    상단으로

    티스토리툴바