파이썬 함수(Python Function)
1. 함수
하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
자바의 메소드와 비슷
※ 함수를 써야하는 이유
- 반복적 프로그래밍을 피할 수 있다.
- 모듈화로 인해 전체적인 코드의 가독성이 좋아진다.
- 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때, 손쉽게 유지보수 가능하다.
2. 함수 정의하기
▶ 예제 : 두 수를 입력 받아서 뺀 결과를 돌려주는 함수 정의하기 (무조건 큰 수에서 작은 수 빼기)
def number_minus(num1, num2) :
if num1 > num2 :
result = num1 - num2
else :
result = num2 - num1
return result
num1 = int(input('첫 번째 정수 입력 >> '))
num2 = int(input('두 번째 정수 입력 >> '))
number_minus(num1, num2)
3. 함수 기본 구조 4가지
매개변수 유무, return 유무에 따라 4가지
① 매개변수 X, return X
# 1. 매개변수 X, return X
def hi () :
print('안녕하세요~~') # 출력 확인용
# 함수 호출(실행)
hi()
result = hi()
# return 값이 없을 경우 null이 반환되기 때문에 결과를 출력해 보면 None이 출력
print(result)
# return 값이 없으면 대입을 하지 않음
② 매개변수 O, return X
# 2. 매개변수 O, return X
def hi2 (name) :
print(f'{name}씨 안녕~~')
# 함수 호출 (실행)
hi2('재석')
③ 매개변수 X, return O
# 3. 매개변수 X, return O
def hi3 () :
return '안녕~'
# 함수 호출 (실행)
hi3()
result = hi3()
print(result)
④ 매개변수 O, return O
# 4. 매개변수 O, return O
def hi4 (name) :
return f'{name}씨 안녕~~'
# 함수 호출 (실행)
hi4('재석')
result = hi4('재석')
print(result)
※ return 키워드
- 반환값은 언제나 하나 (packing되어 반환)
- 함수 안에서 return은 1번 실행한다.
- 함수 안에서 return을 만나면 함수가 끝난다.
▶ 예제
문자열 'ㅋ를 모두 지워주세요ㅋㅋㅋ'에서 ㅋ을 모두 지우는 함수 정의하기
def s_replace (s) :
return s.replace('ㅋ', '')
s = input('문자열 입력 >> ')
result = s_replace(s)
result
▶ 예제
숫자 1개를 입력 받아서 약수를 출력하는 함수 정의하기
def divisor (num) :
lst1 = []
for i in range(1, num+1):
if num%i == 0 :
lst1.append(i)
return lst1
divisor(30)
4. 함수 독스트링(Doc String)
- 함수의 기능 설명 작성
- 정의된 함수 내에서 Shift + Tab을 누르면 설명 확인 가능
- 함수 내부 첫 줄에 개행을 포함한 긴 줄 문자열기호(""" """)로 작성
def add_sub(n1, n2):
"""덧셈, 뺄셈을 수행하는 함수
ni : int
n2 : int
"""
return n1+n2, n1-n2
5. 함수 매개변수
① 기본값 설정(default parameters)
def power_of_N (num, power=2) :
return num**power
power_of_N()
print(power_of_N(2))
print(power_of_N(3,3))
print(power_of_N(5,power=2))
② 가변 매개변수 (variable parameters)
- * 사용
- 함수 호출 시, 몇 개의 인자를 받을지 모를 때 사용자가 인자를 결정
- 전달된 모든 인수는 튜플(tuple)의 형태로 저장
def add (*args) :
print(args)
add(1,2,3)
add(1,2,3,4,5,6,7,8)
▶ 예제
가변 매개변수를 활용해 모든 숫자를 더해서 반환하는 함수를 작성, sum() 함수 사용
def add (*args) :
return sum(args)
print(add(1,2,3,4,5))
- ** 사용 : 함수 내의 값을 딕셔너리 형태로 처리
※ kwargs : keyword arguments
def print_map (**kwargs) :
print(kwargs)
for key, value in kwargs.items():
print(key, '/', value)
print_map(하나=1, 둘=2, 셋=3)
6. 네임스페이스 (namespace)
- 프로그래밍 언어에서 특정 객체(object)를 이름에 따라 구분할 수 있는 범위
- 빌트인 네임스페이스, 전역 네임스페이스, 지역 네임스페이스
x = 1 # 전역 변수 x
print('전역 변수 함수 밖 : ',x)
def temp () :
x = 100 # temp의 지역 변수 x
print('지역 변수 함수 안 : ',x)
temp()
# global 키워드 -> 어디에 있든 전역 변수로 사용
x = 1 # 전역 변수 x
print('전역 변수 함수 밖 : ',x)
def temp () :
global x
x =100 # temp의 지역 변수 x
print('지역 변수 함수 안 : ',x)
temp()
print('전역 변수 함수 밖 : ',x)
7. 모듈
- 변수나 함수 또는 클래스를 모아 놓은 파일
- 다른 파이썬 프로그램에서 불러와 사용할 수 있도록 만든 파이썬 파일
- 모듈은 다른 사람이 이미 만들어 놓은 모듈을 사용할 수도 있고, 직접 만들어 사용할 수 있음
- 파이썬에서 사용할 수 있는 모듈은 확장자가 .py
- 모듈의 의미는 구성 단위, 라이브러리는 도서관이라는 뜻
- 개발에 한해서 모듈과 라이브러리는 동일한 의미라고 생각해도 무방
- import 모듈이름 → 모듈을 불러와서 사용
- from 모듈이름 import 함수(or 클래스) → 모듈에 있는 함수 기능 사용
'Python' 카테고리의 다른 글
파이썬 라이브러리 Pandas (Python Library Pandas) (0) | 2023.01.15 |
---|---|
파이썬 라이브러리 Numpy (Python Library Numpy) (0) | 2023.01.12 |
파이썬 딕셔너리(Python Dictionary) (0) | 2023.01.08 |
파이썬 반복문(Python Loop) (0) | 2023.01.07 |
파이썬 리스트, 튜플 (Python List, Tuple) (0) | 2023.01.07 |
댓글