공부중
[Python] 함수 본문
728x90
1. 함수를 사용하는 이유
- 코드의 양을 줄일 수 있다.
- 반복적인 사용이 가능하다.
- 안전한 코드 작성이 가능하다
- 가독성이 증가한다.
2. return
출력이 없는 함수에서 return은 함수 실행 도중 종료 하는 목적으로 활용 가능
바로 끝난다.
3. 변수의 유효 범위
전역 변수(global variable) | 함수 밖에서 만들어진 변수. 유효범위는 프로그램 전체임 |
지역 변수(local variable) | 함수 내부에서 만들어지고 함수 내부에서만 사용됨 |
1. 바깥에서 a = 1 하는 경우
바깥에서 a = 1과 같이 변수를 정의하면 이 변수는 전역 변수가 됩니다. 이 변수는 함수 내부를 포함한 프로그램 전체에서 접근 가능합니다. 단, 함수 내부에서 이 변수를 수정하려면 추가적인 명시가 필요합니다(아래에서 설명).
a = 1 # 전역 변수
def print_a():
print(a) # 전역 변수 a를 출력
print_a() # 1 출력
2. 함수 내에서 global a = 1 사용하는 경우
global 키워드는 함수 내에서 사용될 때 의미를 갖습니다. 함수 바깥에서 global a = 1과 같은 구문은 문법적으로 올바르지 않습니다. global 키워드는 함수 내에서 이미 바깥에 선언된 전역 변수를 직접 참조하고 수정할 수 있게 해줍니다.
a = 1 # 전역 변수
def modify_a():
global a # 전역 변수 a를 함수 내에서 수정하기 위해 선언
a = 5 # 전역 변수 a의 값을 변경
print(a) # 1 출력
modify_a()
print(a) # 5 출력
4. 재귀 호출 (Recursion)
재귀호출을 빠져나갈 수 있도록 검사하고 종료하는 부분이 반드시 존재해야 함 (재귀호출 탈출 조건)
예제) 최대 공약수 구하기
솔직히 재귀함수 쓰느니 반복문씀
유클리드 알고리즘을 활용
재귀적 접근 방법을 사용하는 코드는 다음과 같습니다:
def gcd_recursive(m, n):
if m == n:
return m # 두 수가 같으면 그 수가 최대공약수
elif m > n:
return gcd_recursive(m - n, n) # m이 n보다 클 때
else:
return gcd_recursive(m, n - m) # n이 m보다 클 때
# 예제
print(gcd_recursive(48, 18)) # 최대공약수 출력
반복문을 사용하는 접근 방법을 사용하는 코드는 다음과 같습니다:
def gcd_iterative(m, n):
while m != n: # m과 n이 같아질 때까지 반복
if m > n:
m = m - n
else:
n = n - m
return m # 두 수가 같아지면, 그 수가 최대공약수
# 예제
print(gcd_iterative(48, 18)) # 최대공약수 출력
728x90
'프로그래밍 > 파이썬 Python' 카테고리의 다른 글
[python] File(파일) (0) | 2024.08.12 |
---|---|
[python]자료구조 (리스트, 튜플, Dictionary, Set) (0) | 2024.08.12 |
[Python] 조건문, 반복문 (0) | 2024.08.09 |
[Python] 변수, 서식 출력 (0) | 2024.08.08 |
[python] 자료형(Data Type), 문자열 (0) | 2024.08.07 |