반복문 만큼 중요하고 알고리즘 코딩테스트 문제에서도 기본으로 많이 나오는
문법이어서 확실하게 이해하고 넘어갈 것이다.
● function이란?
- input이 들어와서 output이 정해진 규칙에 따라 나온다는 개념
- 프로그램에서의 하나의 함수는 하나의 기능을 나타낸다.
(하나의 기능이란 예를 들어 입력받은 2개의 숫자를 더한다, 들어온 텍스트를 정제한다, 받은 이미지를 greyscale로 변경한다.)
- 정확하게 함수는 특정 기능을 구현한 코드 묶음이다.
- def 함수이름 (param1, param2, .....) : return
- 함수를 쓰는 이유는 재사용성 때문이다.
●python function definition 구조
def add(a,b):
c= a+b
return c
add(10,11)
# 출력하면 21
*** 중요한 것은 어떤 input parameter 가 들어가서 , 어떤 output parameter 가 나오는지 주목
○ 헷갈렸던 매개변수(parameter)와 인수(argument)
(인수는 전달인자라는 표현을 쓰기도 한다.)
○ 매개변수(parameter)
- 함수를 정의할 때 함수가 받아들이는 값을 지정하는 변수
- 함수의 헤더 부분에서 매개변수가 정의되며, 함수 내부에서 사용
- 함수를 정의할 때 매개변수를 정의하고, 함수가 호출될 때 매개 변수에 해당하는 값을 전달 받는다.
○ 인수(전달인자) (argument)
- 함수를 호출할 때 함수에 전달되는 값
- 함수를 호출할 대 전달되는 실제 값
- 함수 호출 시 매개 변수에 전달되는 값, 해당 값은 함수 내부에서 매개변수로 사용
예시코드)
def add_numbers(x,y): #'x' 와 'y'는 매개변수
result = x + y
return result
# 함수 호출시 10 과 20이 각각 'x'와 'y' 매개변수에 전달됨
sum_result = add_numbers(10,20) # 10과 20이 전달인자(argument)
print("sum:", sum_result)
● 함수 호출 시 전달되는 인자의 두 가지 유형
○ 위치인수
- 위치 전달인수는 함수 정의에서 매개변수의 위치에 따라 전달되는 인수.
- 위치 전달인수는 인자의 값이 함수의 매개변수에 순서대로 매핑된다.
- 함수 호출 시 위치 전달인수는 매개변수의 위치에 따라 전달
○ 키워드 인수
- 함수를 호출할 때, 인수를 순서대로 전달하는 대신에 특정 매개변수에 값을 할당하여 전달
예시 코드)
def greet(name, age):
print("이름:", name)
print("나이:", age)
# 키워드 인수를 사용하여 함수 호출
greet(name="Alice", age=30)
* 위의 코드에서 greet 함수는 name 과 age 두 개의 매개 변수를 가지는데, 함수를 호출할 때,
각 매개변수에 직접 값을 할당하여 전달하고 있다.
**딥러닝을 쓸 때도 넣어줘야 되는 인수들이 많은데 키워드를 정해서 중요한 인수들을
지정해서 넣어주는 경우가 있다. 이런 경우들은 키워드 인수를 사용하는 것이 좋다.
○ 기본값 설정하기
- 함수의 매개변수에 기본 값을 설정할 수 있다.
- 해당 매개변수에 인수가 전달되니 않았을 대 기본값으로 사용
def greet(name="Guest", age=25):
print("이름:", name)
print("나이:", age)
# 기본값이 설정된 함수 호출
greet()
* 위의 코드에서 greet 함수의 매개변수인 name 과 age는 각각 'guest' 와 25의 기본값을 가져서
함수를 호출할 때 인수를 전달하지 않으면 기본값이 사용됨.
○키워드 인수와 기본값을 함께 사용하기
def greet(name="Guest", age=25):
print("이름:", name)
print("나이:", age)
# 키워드 인수를 사용하여 함수 호출
greet(name="Alice", age=30)
# 일부 매개변수에만 키워드 인수 사용하여 호출
greet(name="Bob")
* 위의 코드에서 일부 매개변수에만 키워드 인수를 사용하여 값을 전달할 수 있음
* 함수의 매개변수에 기본값이 설정되어 있으면 해당 매개변수에 값을 전달하지 않아도
기본값이 사용됨.
○ 가변인수 활용하기
- 여러 개의 인수들을 받을 수 있는 함수를 만들기 위해서는 가변인수를 활용할 수 있다.
- 파이썬에서는 *args 와 **kwargs를 사용
- *args는 함수를 호출할 때 임의의 개수의 위치 인수를 전달할 수 있도록 함
- **kwargs 는 함수를 호출할 때 임의의 개수의 키워드 인수를 전달할 수 있도록 함
예시코드)
def sum_values(*args):
total = 0
for num in args:
total += num
return total
result = sum_values(1, 2, 3, 4, 5)
print("합계:", result) # 출력: 합계: 15
*위의 코드에서 함수 sum_values는 임의의 개수의 위치 인수를 받아서 합계를 계산한다.
* 함수 내에서는 args라는 튜플로 위치인수들을 받아 처리
예시코드 2)
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, country="USA")
* 이 코드도 print_info 함수는 임의의 개수의 키워드 인수를 받아서 그 정보를 출력한다.
* 함수 내에서는 kwargs라는 딕셔너리로 키워드 인수들을 받아 처리
● 전역변수와 지역변수
○ 전역변수
- 전역변수는 프로그램 전체에서 접근 가능, 어디서든지 사용
- 전역변수는 프로그램이 시작될 때 생성, 프로그램이 종료될 때까지 메모리에 유지
- 전역변수는 프로그램의 어디서든지 접근할 수 있으므로 , 여러 함수에서 공통적으로
사용되는 값을 저장할 때 유용
○ 지역변수
- 지역변수는 특정한 범위에서만 접근 가능한 변수
- 해당 범위를 벗어나면 사용할 수 없음
- 해당 범위에서 생성되고, 범위를 벗어나면 메모리에서 사라짐
- 함수 내에서 정의된 변수는 해당 함수 내에서만 사용가능
- 지역변수는 함수가 실행될 때 생성되고, 함수가 종료되면 메모리에서 제거되어,
메모리 관리에 효율적
예시코드)
# 전역변수 예시
global_var = 10
def global_example():
print("전역변수 접근:", global_var)
global_example() # 출력: 전역변수 접근: 10
# 지역변수 예시
def local_example():
local_var = 20
print("지역변수 접근:", local_var)
local_example() # 출력: 지역변수 접근: 20
# 함수 내에서 전역변수를 수정하는 예시
def modify_global():
global global_var
global_var = 30
print("함수 내에서 수정된 전역변수:", global_var)
modify_global() # 출력: 함수 내에서 수정된 전역변수: 30
print("수정된 전역변수 확인:", global_var) # 출력: 수정된 전역변수 확인: 30
*위의 코드에서 locar_var는 함수 local_example()내에서만 접근 가능한 지역변수
* 함수 내에서는 global 키워드를 사용하여 전역변수를 수정할 수 있다.
* 함수 내에서 전역 변수를 수정하더라도 해당 변수는 전역적으로 수정된다.
'데이터분석 study > Python' 카테고리의 다른 글
TIL(Today I Learned) 24.07.09_ 알면 유용한 파이썬 문법들1 (0) | 2024.07.09 |
---|---|
TIL(Today I Learned) 24.07.09_ 제곱근 구하기 (0) | 2024.07.09 |
TIL(Today I Learned) 24.07.05_조건문/반복문 (0) | 2024.07.05 |
TIL(Today I Learned) 24.07.04_Python_문자열, 변수의 자료형 (0) | 2024.07.04 |
TIL(Today I Learned) 24.07.02 (0) | 2024.07.02 |