Python/개념

11. [Python] 함수

프로그린 2024. 4. 24. 06:33

함수의 개념

  • 입력값을 가지고 어떤 일을 수행한 후 출력하는 기능을 하는 것
  • 반복적으로 사용하는 기능이 있을 경우 함수로 작성해 놓으면  유용함

 

파이썬 함수의 구조

일반적인 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명(입력 인수1, 입력 인수2, ...)
def multiple(a, b):
	return a+b, a-b, a*b, a/b
		
multiple(3, 2)
>>> (5, 1, 6, 1.5)

 

입력값이 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명()
def smile():
	return '^-^'

a = smile()
print(a)
>>> 
^-^

 

리턴값이 없는 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def introduce(grade, class_no, name):
    print(f'저는 {grade}학년 {class_no}반 {name}입니다.')
    
introduce(3, 1, '짱구')
>>> 
저는 3학년 1반 짱구입니다.


입력값도, 리턴값도 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
  • 함수의 사용
함수명()
def bark():
	print('멍멍')

bark()
>>> 멍멍

 

함수에서 다양한 형태로 입력값 받기 

여러개의 입력값을 받는 함수 

  • 함수의 생성
def 함수명(*매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def add_num(*arg):
    result = ''
    for a in arg:
        result += str(a)
    return int(result)
    
add_num(1, 2, 3, 4)
>>> 1234
  • 매개변수 이름 앞에 *을 붙이면 여러개의 입력값을 원소로 가지는 튜플을 입력값으로 받음.
  • 함수의 매개변수로 *args 하나만 사용할 수 있는 것은 아님.

 

키워드 매개변수

def test(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}는 {v}')

test(개 = '멍멍', 고양이 = '야옹')
>>> 개는 멍멍
    고양이는 야옹
  • 키워드 매개변수를 사용할 때는 매개변수 앞에 별 2개(**)를 붙임.
  • 매개변수 kwargs는 딕셔너리가 되고 모든 Key=Value 형태의 입력값이 그 딕셔너리에 저장됨. 

lambda 예약어

  • lambda는 함수를 생성할 때 사용하는 예약어로, 함수를 한줄로 간결하게 만들때 사용
  • lambda로 만든 함수는 return 명령어가 없어도 표현식의 결과값을 리턴함.
함수명 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
test = lambda a, b : a ** 2 + b
test(2, 3)
>>> 7