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) 직접 지원 안 함 (순서 고정)

 

+ Recent posts