포스트

[Python 100일 챌린지] Day 24 - 함수 정의하기 (def)

[Python 100일 챌린지] Day 24 - 함수 정의하기 (def)

지금까지 우리는 print(), len(), int() 같은 함수를 사용만 했습니다. 🤔 ──이제는 “우리만의 함수를 만드는 법”을 배울 차례입니다! 😊

프로그래밍의 DRY 원칙, “Don’t Repeat Yourself”를 들어보셨나요? 같은 코드를 복사-붙여넣기 하는 대신, 함수 하나로 재사용하는 것이죠.

예를 들어, “구분선 출력” 코드를 100번 복사하는 대신, print_line() 함수 하나만 만들면 100번 호출할 수 있습니다!

함수는 Python 프로그래밍의 가장 핵심적인 개념입니다. 오늘 배우는 내용이 앞으로 모든 프로젝트의 기초가 될 거예요! 💡

(30분 완독 ⭐⭐⭐)

🎯 오늘의 학습 목표

  1. 함수의 개념과 필요성 이해하기
  2. def로 함수 정의하고 호출하기
  3. 독스트링으로 함수 문서화하기
  4. 함수 실행 흐름과 네이밍 규칙 익히기

📚 사전 지식


🎯 학습 목표 1: 함수의 개념과 필요성 이해하기

함수란 무엇인가?

함수(Function)특정 작업을 수행하는 코드의 재사용 가능한 블록입니다.

실생활 비유:

1
2
3
4
5
6
7
8
9
🍕 피자 만들기 = 함수

1. 도우 준비
2. 토핑 올리기
3. 오븐에 굽기
4. 완성!

→ 피자를 만들 때마다 이 과정을 반복하듯,
   함수는 필요할 때마다 호출하여 같은 작업을 수행합니다.

이미 사용하고 있던 함수들

1
2
3
4
5
6
7
# 우리가 계속 사용해온 내장 함수들
print("Hello")      # print() 함수
len([1, 2, 3])      # len() 함수
int("10")           # int() 함수
range(5)            # range() 함수

# 이제 우리도 이런 함수를 직접 만들 수 있습니다!

함수를 사용하는 4가지 이유

1. 코드 재사용 (Reusability)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# ❌ 함수 없이 - 코드 중복!
print("=" * 50)
print("  첫 번째 섹션")
print("=" * 50)

# ... 100줄 코드 ...

print("=" * 50)
print("  두 번째 섹션")
print("=" * 50)

# ... 또 100줄 ...

print("=" * 50)
print("  세 번째 섹션")
print("=" * 50)

# ✅ 함수 사용 - 깔끔하고 재사용 가능!
def print_header(title):
    print("=" * 50)
    print(f"  {title}")
    print("=" * 50)

print_header("첫 번째 섹션")
# ... 100줄 ...
print_header("두 번째 섹션")
# ... 100줄 ...
print_header("세 번째 섹션")

2. 가독성 향상 (Readability)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# ❌ 함수 없이 - 무슨 코드인지 파악하기 어려움
total = 0
for i in range(1, 101):
    total += i
print(f"1부터 100까지의 합: {total}")

# ... 100줄 코드 ...

total = 0
for i in range(1, 101):
    if i % 2 == 0:
        total += i
print(f"짝수의 합: {total}")

# ✅ 함수 사용 - 코드의 의도가 명확함!
def print_sum_1_to_100():
    """1부터 100까지의 합을 계산하여 출력"""
    total = sum(range(1, 101))
    print(f"1부터 100까지의 합: {total}")

def print_even_sum():
    """1부터 100까지 짝수의 합을 계산하여 출력"""
    total = sum(i for i in range(1, 101) if i % 2 == 0)
    print(f"짝수의 합: {total}")

# 사용 - 무엇을 하는지 명확함!
print_sum_1_to_100()
# ... 100줄 코드 ...
print_even_sum()

3. 유지보수 용이 (Maintainability)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ❌ 함수 없이 - 길이를 50으로 바꾸려면 100군데를 모두 수정!
print("=" * 30)  # 여기
# ...
print("=" * 30)  # 여기
# ...
print("=" * 30)  # 또 여기... (100군데)

# ✅ 함수 사용 - 한 곳만 수정하면 모든 곳에 적용됨!
def print_line():
    print("=" * 50)  # 여기만 수정하면 됨!

# 100번 호출해도 한 곳만 고치면 전부 변경됨
print_line()
# ...
print_line()

4. 구조화와 모듈화 (Structure & Modularity)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ✅ 함수로 프로그램을 논리적으로 분할
def initialize_game():
    """게임 초기화"""
    print("게임을 초기화합니다...")

def show_menu():
    """메뉴 표시"""
    print("1. 시작 2. 설정 3. 종료")

def play_game():
    """게임 실행"""
    print("게임을 시작합니다!")

def cleanup():
    """종료 정리"""
    print("게임을 종료합니다...")

# 메인 프로그램 - 구조가 명확함!
initialize_game()
show_menu()
play_game()
cleanup()

🎯 학습 목표 2: def로 함수 정의하고 호출하기

def 키워드 문법

Python에서 함수를 정의할 때는 def 키워드를 사용합니다.

1
2
3
4
def 함수이름():
    실행할 코드
    실행할 코드
    ...

문법 구성 요소:

  • def: 함수 정의 시작을 알리는 키워드
  • 함수이름: 함수를 호출할 때 사용할 이름
  • (): 괄호 (나중에 매개변수를 넣을 자리)
  • :: 함수 본문 시작을 알리는 콜론
  • 들여쓰기: 함수 본문은 반드시 4칸 들여쓰기

첫 번째 함수 만들기

1
2
3
4
5
6
# 함수 정의 (Definition)
def say_hello():
    print("Hello, World!")

# 함수 호출 (Call)
say_hello()

실행 결과:

1
Hello, World!

중요한 포인트:

  1. 함수를 정의하는 것과 호출하는 것은 다릅니다
  2. 정의만 하고 호출하지 않으면 아무 일도 일어나지 않습니다
  3. 함수는 호출될 때마다 코드가 실행됩니다
1
2
3
4
5
6
7
8
9
# 정의만 하고 호출 안 함 → 아무 일도 안 일어남
def my_function():
    print("이 메시지는 출력되지 않습니다")

print("프로그램 실행 중...")

# 출력 결과:
# 프로그램 실행 중...
# (함수 내용은 실행 안 됨!)

실전 예제 1: 구분선 출력 함수

1
2
3
4
5
6
7
8
9
10
def print_line():
    """구분선을 출력하는 함수"""
    print("=" * 50)

# 사용
print_line()
print("제목: Python 함수 배우기")
print_line()
print("내용: 함수는 코드 재사용의 핵심입니다.")
print_line()

실행 결과:

1
2
3
4
5
==================================================
제목: Python 함수 배우기
==================================================
내용: 함수는 코드 재사용의 핵심입니다.
==================================================

함수를 사용하지 않았다면?

1
2
3
4
5
6
# 함수 없이 작성 → 코드 중복!
print("=" * 50)
print("제목: Python 함수 배우기")
print("=" * 50)
print("내용: 함수는 코드 재사용의 핵심입니다.")
print("=" * 50)

실전 예제 2: 환영 메시지 함수

1
2
3
4
5
6
7
8
9
10
def welcome_message():
    """프로그램 시작 시 환영 메시지 출력"""
    print("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓")
    print("┃   🎉 Python 학습 프로그램    ┃")
    print("┃   환영합니다!                 ┃")
    print("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛")

# 프로그램 시작
welcome_message()
print("\n학습을 시작합니다...")

실행 결과:

1
2
3
4
5
6
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   🎉 Python 학습 프로그램    ┃
┃   환영합니다!                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

학습을 시작합니다...

실전 예제 3: 메뉴 출력 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def show_menu():
    """메인 메뉴를 출력하는 함수"""
    print("\n" + "="*40)
    print("          📋 메인 메뉴")
    print("="*40)
    print("1. 학생 추가")
    print("2. 학생 조회")
    print("3. 성적 입력")
    print("4. 통계 보기")
    print("5. 종료")
    print("="*40)

# 프로그램에서 여러 번 사용
show_menu()

# ... 사용자 입력 처리 ...

# 작업 후 다시 메뉴 표시
show_menu()

실전 예제 4: 계산 함수

1
2
3
4
5
6
7
8
9
def calculate_sum():
    """1부터 10까지의 합을 계산하고 출력"""
    total = 0
    for i in range(1, 11):
        total += i
    print(f"1부터 10까지의 합: {total}")

# 호출
calculate_sum()  # 1부터 10까지의 합: 55

실전 예제 5: 여러 작업을 하는 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def show_student_info():
    """학생 정보를 출력하는 함수"""
    print("="*30)
    print("학생 정보")
    print("="*30)

    name = "김철수"
    age = 20
    major = "컴퓨터공학"

    print(f"이름: {name}")
    print(f"나이: {age}")
    print(f"전공: {major}")
    print("="*30)

# 호출
show_student_info()

🎯 학습 목표 3: 독스트링으로 함수 문서화하기

독스트링(Docstring)이란?

독스트링(Docstring)은 함수의 목적과 사용법을 설명하는 문서입니다.

1
2
3
4
5
6
7
8
9
10
def greet():
    """사용자에게 인사 메시지를 출력하는 함수

    이 함수는 매개변수 없이 호출되며,
    표준 출력에 인사 메시지를 출력합니다.
    """
    print("안녕하세요!")

# 독스트링 확인
print(greet.__doc__)

실행 결과:

1
2
3
4
사용자에게 인사 메시지를 출력하는 함수

    이 함수는 매개변수 없이 호출되며,
    표준 출력에 인사 메시지를 출력합니다.

독스트링 작성 패턴

패턴 1: 한 줄 독스트링 (간단한 함수)

1
2
3
def print_hello():
    """Hello를 출력합니다"""
    print("Hello")

패턴 2: 여러 줄 독스트링 (복잡한 함수)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def calculate_statistics():
    """통계 정보를 계산하는 함수

    1부터 100까지의 숫자에 대해:
    - 합계
    - 평균
    - 최대값
    - 최소값
    을 계산합니다.
    """
    numbers = range(1, 101)
    total = sum(numbers)
    average = total / len(numbers)
    print(f"합계: {total}")
    print(f"평균: {average}")

패턴 3: 구글 스타일 독스트링

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def process_data():
    """데이터를 처리하는 함수

    주어진 데이터를 정규화하고 검증합니다.
    잘못된 데이터는 자동으로 제거됩니다.

    Args:
        없음 (나중에 매개변수 배울 예정)

    Returns:
        없음 (나중에 반환값 배울 예정)

    Examples:
        >>> process_data()
        데이터 처리 완료
    """
    print("데이터 처리 완료")

왜 독스트링이 중요한가?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ❌ 독스트링 없음 - 무슨 함수인지 알 수 없음
def calc():
    total = 0
    for i in range(1, 101):
        total += i
    print(total)

# ✅ 독스트링 있음 - 목적이 명확함
def calculate_sum_1_to_100():
    """1부터 100까지의 합을 계산하여 출력하는 함수

    수학 공식: 1 + 2 + 3 + ... + 100 = 5050
    """
    total = 0
    for i in range(1, 101):
        total += i
    print(total)

🎯 학습 목표 4: 함수 실행 흐름과 네이밍 규칙 익히기

함수 실행 흐름 이해하기

1
2
3
4
5
6
7
8
9
10
def greet():
    print("1. 함수 시작")
    print("2. 작업 수행")
    print("3. 함수 종료")

print("A. 메인 프로그램 시작")
greet()  # 여기서 함수로 이동
print("B. 메인 프로그램 계속")
greet()  # 다시 함수로 이동
print("C. 메인 프로그램 종료")

실행 결과:

1
2
3
4
5
6
7
8
9
A. 메인 프로그램 시작
1. 함수 시작
2. 작업 수행
3. 함수 종료
B. 메인 프로그램 계속
1. 함수 시작
2. 작업 수행
3. 함수 종료
C. 메인 프로그램 종료

실행 흐름 도해:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[메인 프로그램]
    ↓
print("A")
    ↓
greet() ───→ [함수 greet]
              print("1")
              print("2")
              print("3")
    ←─────── [함수 종료]
    ↓
print("B")
    ↓
greet() ───→ [함수 greet]
              print("1")
              print("2")
              print("3")
    ←─────── [함수 종료]
    ↓
print("C")

함수 안에서 함수 호출하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def print_header():
    """헤더를 출력"""
    print("="*30)

def print_footer():
    """푸터를 출력"""
    print("="*30)

def print_content():
    """컨텐츠를 출력"""
    print("중요한 내용입니다.")

def show_message():
    """전체 메시지를 출력 (다른 함수들을 호출)"""
    print_header()
    print_content()
    print_footer()

# 사용
show_message()

실행 결과:

1
2
3
==============================
중요한 내용입니다.
==============================

Python 함수 이름 규칙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# ✅ 올바른 함수 이름 (snake_case)
def calculate_total():
    pass

def get_user_name():
    pass

def is_valid():
    pass

def show_menu():
    pass

# ❌ 잘못된 함수 이름
def CalculateTotal():  # 대문자 시작 (클래스 이름 스타일)
    pass

def getUserName():     # 카멜 케이스 (JavaScript 스타일)
    pass

def 합계계산():         # 한글 (가능하지만 권장하지 않음)
    pass

def 1st_function():   # 숫자로 시작 (문법 오류)
    pass

네이밍 모범 사례

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# ✅ 동사로 시작 - 행동을 나타냄
def print_result():
    """결과를 출력"""
    pass

def calculate_average():
    """평균을 계산"""
    pass

def show_message():
    """메시지를 표시"""
    pass

# ✅ is/has로 시작 - 참/거짓을 반환하는 함수
def is_empty():
    """비어있는지 확인"""
    pass

def has_permission():
    """권한이 있는지 확인"""
    pass

# ✅ get/set으로 시작 - 값을 가져오거나 설정
def get_name():
    """이름을 가져옴"""
    pass

def set_value():
    """값을 설정"""
    pass

💡 실전 팁과 주의사항

Tip 1: 함수 정의 전에 호출하면 오류

1
2
3
4
5
6
7
8
9
10
11
# ❌ 오류: 함수를 정의하기 전에 호출
greet()  # NameError: name 'greet' is not defined

def greet():
    print("안녕하세요!")

# ✅ 올바름: 함수를 정의한 후 호출
def greet():
    print("안녕하세요!")

greet()  # 정상 작동

Tip 2: 괄호 빼먹지 않기

1
2
3
4
5
6
7
8
def say_hello():
    print("Hello!")

# ❌ 괄호 없이 호출 - 함수 자체를 출력
print(say_hello)  # <function say_hello at 0x...>

# ✅ 괄호와 함께 호출 - 함수 실행
say_hello()  # Hello!

Tip 3: 들여쓰기 정확히 지키기

1
2
3
4
5
6
7
# ❌ 들여쓰기 오류
def my_function():
print("잘못된 들여쓰기")  # IndentationError

# ✅ 올바른 들여쓰기 (4칸)
def my_function():
    print("올바른 들여쓰기")

Tip 4: 내장 함수 이름 피하기

1
2
3
4
5
6
7
8
9
# ❌ 내장 함수 이름과 충돌!
def print():
    pass

print("Hello")  # TypeError: 'NoneType' object is not callable

# ✅ 다른 이름 사용
def print_message():
    pass

Tip 5: 의미 있는 이름 사용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ❌ 나쁜 예 - 무슨 함수인지 알 수 없음
def func1():
    print("=" * 50)

def do_something():
    for i in range(10):
        print(i)

# ✅ 좋은 예 - 목적이 명확함
def print_divider():
    print("=" * 50)

def print_numbers_1_to_10():
    for i in range(1, 11):
        print(i)

Tip 6: 함수는 한 가지 일만 하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ❌ 나쁜 예 - 여러 일을 한꺼번에
def process_everything():
    print("환영합니다")
    total = sum(range(100))
    print(f"합계: {total}")
    print("프로그램 종료")

# ✅ 좋은 예 - 각 함수는 한 가지 일만
def show_welcome():
    """환영 메시지 출력"""
    print("환영합니다")

def calculate_and_show_sum():
    """1부터 99까지의 합을 계산하여 출력"""
    total = sum(range(100))
    print(f"합계: {total}")

def show_goodbye():
    """종료 메시지 출력"""
    print("프로그램 종료")

🧪 연습 문제

문제 1: 인사 함수 만들기

아래 요구사항대로 함수를 작성하세요:

  • 함수 이름: greet_korean
  • 기능: “안녕하세요! Python 학습을 환영합니다!” 출력
  • 함수를 3번 호출하세요
✅ 정답
1
2
3
4
5
6
7
8
def greet_korean():
    """한국어로 인사하는 함수"""
    print("안녕하세요! Python 학습을 환영합니다!")

# 3번 호출
greet_korean()
greet_korean()
greet_korean()

실행 결과:

1
2
3
안녕하세요! Python 학습을 환영합니다!
안녕하세요! Python 학습을 환영합니다!
안녕하세요! Python 학습을 환영합니다!

문제 2: 계산 함수 만들기

구구단 3단을 출력하는 함수를 작성하세요:

  • 함수 이름: print_multiplication_table_3
  • 기능: 3 x 1 = 3부터 3 x 9 = 27까지 출력
💡 힌트
1
2
3
4
# 힌트:
# 1. for문으로 1~9 반복
# 2. 3 * i 계산
# 3. f-string으로 예쁘게 출력
✅ 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def print_multiplication_table_3():
    """구구단 3단을 출력하는 함수"""
    print("="*20)
    print("   구구단 3단")
    print("="*20)

    for i in range(1, 10):
        result = 3 * i
        print(f"3 x {i} = {result}")

    print("="*20)

# 호출
print_multiplication_table_3()

실행 결과:

1
2
3
4
5
6
7
8
9
10
11
12
13
====================
   구구단 3단
====================
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
====================

문제 3: 메뉴 출력 함수

학생 관리 프로그램의 메뉴를 출력하는 함수를 작성하세요:

  • 함수 이름: show_student_menu
  • 기능: 아래와 같은 메뉴 출력
1
2
3
4
5
6
7
8
9
===========================
     학생 관리 시스템
===========================
1. 학생 추가
2. 학생 삭제
3. 성적 입력
4. 성적 조회
5. 종료
===========================
✅ 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def show_student_menu():
    """학생 관리 시스템 메뉴를 출력하는 함수"""
    print("="*30)
    print("     학생 관리 시스템".center(27))
    print("="*30)
    print("1. 학생 추가")
    print("2. 학생 삭제")
    print("3. 성적 입력")
    print("4. 성적 조회")
    print("5. 종료")
    print("="*30)

# 호출
show_student_menu()

💡 자주 묻는 질문 (FAQ)

Q1. 함수를 정의만 하고 호출 안 하면 어떻게 되나요?

A. 아무 일도 일어나지 않습니다!

1
2
3
4
5
def greet():
    print("안녕하세요!")

# 위에서 함수를 정의했지만 호출하지 않음
# → 아무것도 출력되지 않음

함수 정의는 “이런 기능을 만들어뒀어”라고 선언하는 것일 뿐, 실제로 실행되려면 반드시 호출(greet())이 필요합니다.

Q2. 함수 이름에 숫자를 사용할 수 있나요?

A. 첫 글자만 아니면 가능합니다!

1
2
3
4
5
6
7
8
9
10
# ✅ 가능
def print_top3():
    pass

def calculate_v2():
    pass

# ❌ 불가능
def 3print():  # SyntaxError
    pass

함수 이름 규칙은 변수 이름 규칙과 동일합니다:

  • 첫 글자: 영문자 또는 언더스코어(_)만 가능
  • 이후: 영문자, 숫자, 언더스코어 가능
Q3. 한 함수 안에서 다른 함수를 호출할 수 있나요?

A. 당연히 가능합니다! 매우 자주 사용하는 패턴입니다.

1
2
3
4
5
6
7
8
9
10
11
12
def print_line():
    """구분선 출력"""
    print("-" * 30)

def print_header():
    """헤더 출력"""
    print_line()
    print("학생 관리 시스템")
    print_line()

# 호출
print_header()

출력:

1
2
3
------------------------------
학생 관리 시스템
------------------------------

print_header() 함수 안에서 print_line() 함수를 두 번 호출했습니다.

Q4. print() 같은 내장 함수 이름을 함수 이름으로 쓰면 어떻게 되나요?

A. 기술적으로는 가능하지만, 절대 하면 안 됩니다!

1
2
3
4
5
6
def print():
    """❌ 나쁜 예시 - 내장 함수 이름 사용"""
    pass  # 이 함수가 정의되면 원래 print()를 사용할 수 없음!

# 이제 원래 print()를 사용할 수 없음!
# print("안녕")  # TypeError 발생!

내장 함수 이름을 덮어쓰면:

  • 원래 기능을 사용할 수 없게 됨
  • 코드를 읽는 사람에게 혼란을 줌
  • 디버깅이 매우 어려워짐

해결책: 항상 고유한 이름을 사용하세요!

1
2
3
def show_message():  # ✅ 좋은 예시
    """메시지를 출력하는 함수"""
    print("내가 만든 함수")
Q5. 독스트링은 꼭 써야 하나요?

A. 필수는 아니지만, 강력히 권장합니다!

독스트링이 없어도 코드는 잘 실행됩니다:

1
2
3
4
5
6
7
8
def calculate_sum():
    total = 0
    for i in range(1, 11):
        total += i
    print(f"합계: {total}")

calculate_sum()  # 정상 작동
# 출력: 합계: 55

하지만 독스트링을 쓰면:

  1. 자동 문서화: help(calculate_sum) 했을 때 설명이 나옴
  2. 협업 필수: 팀원들이 함수를 이해하기 쉬움
  3. 미래의 나: 1달 후 내가 봐도 기억이 남

권장 패턴:

1
2
3
4
5
6
def calculate_sum():
    """1부터 10까지의 합을 계산하여 출력합니다."""
    total = 0
    for i in range(1, 11):
        total += i
    print(f"합계: {total}")

간단한 연습용 코드가 아니라면, 독스트링을 습관화하세요!

Q6. 함수 이름을 한글로 써도 되나요?

A. Python 3에서는 기술적으로 가능하지만, 실무에서는 절대 사용하지 않습니다.

1
2
3
4
5
# 기술적으로 가능
def 인사하기():
    print("안녕하세요!")

인사하기()  # 정상 작동

한글 함수명을 피해야 하는 이유:

  1. 국제 표준: 전 세계 개발자들이 영어 함수명을 사용
  2. 협업 문제: 외국인 개발자는 한글을 입력할 수도, 읽을 수도 없음
  3. 도구 호환성: 일부 개발 도구나 라이브러리에서 문제 발생 가능
  4. 코드 리뷰: 대부분의 오픈소스와 기업 코드는 영어 사용

권장:

1
2
3
def greet():  # ✅ 영어 함수명
    """한글 설명은 독스트링에!"""
    print("안녕하세요!")

독스트링이나 주석은 한글로 써도 괜찮지만, 함수/변수 이름은 영어로 작성하는 것이 업계 표준입니다.


📝 오늘 배운 내용 정리

핵심 개념

  1. 함수 정의
    • def 함수이름():으로 정의
    • 들여쓰기로 함수 본문 작성
    • 독스트링으로 문서화
  2. 함수 호출
    • 함수이름()으로 호출
    • 정의 후에만 호출 가능
    • 필요할 때마다 재사용
  3. 함수의 4가지 장점
    • 코드 재사용 (한 번 작성, 여러 번 사용)
    • 가독성 향상 (명확한 이름으로 의도 표현)
    • 유지보수 용이 (한 곳만 수정)
    • 구조화 (프로그램을 논리적으로 분할)
  4. 네이밍 규칙
    • snake_case 사용 (소문자_언더스코어)
    • 동사로 시작 (print_, calculate_, show_)
    • 의미 있는 이름 사용

주의사항

  • 함수 정의 전에 호출하면 오류
  • 호출 시 괄호 () 필수
  • 들여쓰기 정확히 지키기
  • 내장 함수 이름 피하기
  • 함수는 한 가지 일만 하도록 설계

🎯 실습 과제

다음 함수를 작성해보세요:

과제 1: 환영 메시지

프로그램 시작 시 표시할 환영 메시지 함수를 작성하세요.

1
2
3
4
5
6
7
8
9
10
11
12
"""
함수 이름: show_welcome
기능:
┏━━━━━━━━━━━━━━━━━━━━━━━┓
┃  📚 Python 학습 앱   ┃
┃  환영합니다!          ┃
┃  즐거운 학습 되세요!  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┛
위 메시지를 출력
"""

# 여기에 코드를 작성하세요!

과제 2: 통계 계산

1부터 100까지의 통계를 출력하는 함수를 작성하세요.

1
2
3
4
5
6
7
8
9
10
11
"""
함수 이름: print_statistics
기능:
- 합계
- 평균
- 최대값
- 최소값
을 계산하여 출력
"""

# 여기에 코드를 작성하세요!

🔗 관련 자료


📚 이전 학습

Day 23: for문 심화 - 실전 패턴과 고급 테크닉 ⭐⭐⭐

어제는 zip(), 중첩 for문, for-else, 딕셔너리 순회 등 for문의 실전 패턴을 배웠습니다!

📚 다음 학습

Day 25: 함수 매개변수와 반환값 ⭐⭐⭐

내일은 함수에 값을 전달하고 결과를 받는 방법을 배웁니다! 함수가 진짜 강력해집니다!


“늦었다고 생각할 때가 가장 빠른 시기입니다!” 🚀

Day 24/100 Phase 3: 제어문과 함수 #100DaysOfPython
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.