1. 함수(Function)
- 코드의 묶음(기능)에 이름을 붙인 것
- 한 번 정의해두면 여러 번 재사용 가능
- 입력값을 받아서 출력값을 돌려줄 수 있음
2. 함수 정의 (Function Definition)
#python
def 함수명(매개변수):
실행할 코드
return 반환값
#예시
def calculate_area(radius):
area = 3.14 * radius ** 2
return area
//C++
반환형 함수이름(매개변수형 매개변수명) {
// 실행 코드
return 반환값;
}
3. 함수 호출 (Function Call)
#python, c++
함수명(인자값)
#예시
c = calculate_area(5.0)
print(c)
- 매개변수(parameter): 함수를 정의할 때 괄호 안에 적는 변수
- 인자(argument): 함수를 호출할 때 실제로 넣는 값
- 반환값(return value): 함수가 실행 결과로 돌려주는 값
4. 함수 내 변수 (변수의 유효 범위)
- 지역변수 (Local Variable)
- 함수 내부에서 선언된 변수
- 함수 바깥에서는 사용 불가능
#python
def get_sum(start, end):
sum = 0
for i in range(start, end + 1):
sum += i
return sum
print(get_sum(1, 10))
//c++
int get_sum(int start, int end) {
int sum = 0;
for (int i = start; i <= end; i++) {
sum += i;
}
return sum;
}
- 전역변수 (Global Variable)
- 함수 밖에서 선언된 변수
- 함수 내부에서도 사용 가능하지만, 수정하려면 global 키워드 필요
#python
area = 0 # 전역변수
def calculate_area(radius):
global area # 전역변수 수정
area = 3.14 * radius ** 2
return area
r = float(input("반지름 입력: "))
calculate_area(r)
print(area)
※ 주의: 전역변수를 함수 안에서 수정하려면 반드시 global 키워드 사용!
//c++
#include <iostream>
using namespace std;
double area = 0.0; // 전역변수
void calculate_area(double radius) {
area = 3.14 * radius * radius; // 전역변수 수정
}
5. 디폴트 인수 (Default Argument)
- 함수의 매개변수에 기본값을 지정해서, 인자를 생략해도 동작하게 만드는 기능.
- 예시
#python
def greet(name, msg="안녕하세요!"):
print("안녕,", name + "!", msg)
greet("영희")
#출력
# 안녕, 영희! 안녕하세요!
msg에 기본값이 있어서 생략 가능
greet("영희")는 msg="안녕하세요!"를 자동으로 사용
//c++
#include <iostream>
using namespace std;
void greet(string name, string msg = "안녕하세요!") {
cout << "안녕, " << name << "! " << msg << endl;
}
int main() {
greet("영희");
return 0;
}
/* 출력
안녕, 영희! 안녕하세요!
*/
C++도 기본값을 함수 선언/정의에 직접 지정할 수 있으나 보통 함수 선언부에서만 디폴트값을 지정하는 것이 관례
6. 키워드 인수 (Keyword Argument)
- 인수의 이름을 직접 지정해서 순서와 관계없이 전달하는 방식
(단, Python만 지원. C++에는 직접적인 대응은 없음)
- 예시
#python
def calc(x, y, z):
return x + y + z
print(calc(z=30, x=20, y=50))
#출력
# 100
매개변수의 순서를 바꾸더라도 이름이 지정되어 있으면 정확히 전달됨
C++에는 직접적인 키워드 인수 지원은 없음
(C++에서는 함수 호출 시 인자의 순서가 반드시 맞아야 함
키워드 인수처럼 쓰고 싶다면 struct 또는 map을 쓰는 우회적인 방법이 있긴 하지만, 일반 함수에서는 직접 지원되지 않는다)
7. 예시 모음
- python ver
#1. 원의 넓이 계산 함수 (지역변수)
def calculate_area(radius):
area = 3.14 * radius ** 2
return area
c = calculate_area(5.0)
print(c)
#2. 반복문을 활용한 사각형 그리기 (turtle 예시)
def square(length):
for i in range(4):
t.forward(length)
t.left(90)
#3. 전역변수 예시
area = 0
def calculate_area(radius):
global area
area = 3.14 * radius ** 2
return area
r = float(input("반지름 입력: "))
calculate_area(r)
print(area)
- c++ ver
8. 총 정리
| 기능 | Python | C++ |
| 함수 정의 | def 함수명(매개변수): | 반환형 함수명(매개변수) |
| 함수 호출 | 함수명(값) | 함수명(값) |
| 반환값 | return 값 | return 값 |
| 지역변수 | 함수 안에서 선언 | 함수 안에서 선언 |
| 전역변수 | global 선언 후 사용 | 함수 밖에서 선언 |
| 반복문 | for i in range() | for (int i = ...; ...; ...) |
| 디폴트 인수 | def f(x, y=1) | void f(int x, int y = 1) |
| 키워드 인수 | f(x=1, y=2) | 직접 지원 안 함 (순서 고정) |
'이론공부 > 문제해결, 알고리즘' 카테고리의 다른 글
| 분할정복 알고리즘 / 이분탐색 알고리즘 (0) | 2025.06.24 |
|---|---|
| 다양한 알고리즘 기법 / 단순하게 문제풀기 (1) | 2025.06.21 |
| 자료탐색 알고리즘 (2) | 2025.06.21 |
| 그리디 알고리즘 (0) | 2025.06.21 |
| 자료정렬 알고리즘 (0) | 2025.06.20 |