함수란 ?
함수(function) 란 어떤 일을 수행하는 코드의 덩어리 혹은 코드의 묶음을 말한다.
#함수의 예시
def calculate_rectangle_area(x,y): # 직사각형 넓이를 구하는 함수 선언
return x*y
rectangle_x = 10
rectangle_y = 20
print("사각형 x의 길이:",rectangle_x)
print("사각형 y의 길이:",rectangle_y)
# 넓이를 구하는 함수 호출
print("사각형의 넓이:",calculate_rectangle_area(rectangle_x, rectangle_y))
실행 결과
사각형 x의 길이: 10
사각형 y의 길이: 20
사각형의 넓이: 200
함수의 장점
1. 필요할 때마다 호출 가능하다.
2. 논리적인 단위로 분할 가능하다.
3. 코드의 캡슐화 ( 캡슐화란 )
함수의 인수
종류 | 내용 |
키워드 인수 | 함수의 인터페이스에 지정된 변수명을 사용하여 함수의 인수를 지정하는 방법 |
디폴트 인수 | 별도의 인수값이 입력되지 않을 때, 인터페이스 선언에서 지정한 초깃값을 사용하는 방법 |
가변 인수 | 함수의 인터페이스에 지정된 변수 이외의 추가 변수를 함수에 입력할 수 있게 지원하는 방법 |
키워드 가변 인수 | 매개변수의 이름을 따로 지정하지 않고 입력하는 방법 |
1. 키워드 인수 (keyword arguments)
-함수에 입력되는 매개변수의 변수명을 사용하여 함수의 인수를 지정
def print_something(my_name, your_name):
print("Hello {0}, My name is {1}".format(your_name,my_name))
print_something("NERD", "JS")
print_something(your_name = "JS", my_name = "NERD")
실행 결과
Hello JS, My name is NERD
Hello JS, My name is NERD
2. 디폴트 인수 (default arguments)
-매개변수에 기본값을 지정하여 사용하고, 아무런 인수로 넘기지 않으면 기본값을 사용하는 방식
def print_something_2(my_name, your_name="JS"):
print("Hello {0}, My name is {1}".format(your_name,my_name))
print_something_2("NERD","JS")
print_something_2("NERD") #your_name의 값이 없기 때문에 default 값인 "JS"가 자동으로 대입된다.
실행 결과
Hello JS, My name is NERD
Hello JS, My name is NERD
3. 가변 인수 (variable-length arguments)
-함수의 매개변수 개수가 정해지지 않음
def asterisk_test(a,b, *args):
return a + b + sum(args)
print(asterisk_test(1,2,3,4,5)) # *args 인수에 나머지 숫자들(3,4,5)이 들어간다.
실행 결과
15
※ 가변 인수는 * 로 표현, 파이썬에서는 *가 곱셈과 제곱 연산 외에도 변수를 묶어 주는 가변 인수를 만드는 데 사용한다.
-언패킹
언패킹은 가변 인수 안에 값들을 나누는 것
def asterisk_test_2(*args):
x, y, *z = args
return x,y,z
print(asterisk_test_2(3,4,5,10,20))
실행 결과
(3, 4, [5, 10, 20])
4. 키워드 가변 인수 (keyword variable-length arguments)
- 매개변수의 이름을 따로 지정하지 않고 입력하는 방법
- 이전 가변 인수와는 달리 *를 2개 사용하여 함수의 매개변수를 표시한다.
- 입력된 값은 튜플 자료형이 아닌 딕셔너리 자료형으로 사용할 수 있다.
- 키워드 가변 인수는 반드시 모든 매개변수의 맨 마지막, 즉 가변 이수 다음에 선언되어야 한다.
'프로그래밍 > 파이썬 에러 모음' 카테고리의 다른 글
(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 오류 해결법 (0) | 2022.03.18 |
---|---|
파이썬 한글 깨짐 현상 (0) | 2021.09.21 |