지금까지 우리는 print(), len(), int() 같은 함수를 사용만 했습니다. 🤔 ──이제는 “우리만의 함수를 만드는 법”을 배울 차례입니다! 😊
프로그래밍의 DRY 원칙, “Don’t Repeat Yourself”를 들어보셨나요? 같은 코드를 복사-붙여넣기 하는 대신, 함수 하나로 재사용하는 것이죠.
예를 들어, “구분선 출력” 코드를 100번 복사하는 대신, print_line() 함수 하나만 만들면 100번 호출할 수 있습니다!
함수는 Python 프로그래밍의 가장 핵심적인 개념입니다. 오늘 배우는 내용이 앞으로 모든 프로젝트의 기초가 될 거예요! 💡
(30분 완독 ⭐⭐⭐)
🎯 오늘의 학습 목표
- 함수의 개념과 필요성 이해하기
- def로 함수 정의하고 호출하기
- 독스트링으로 함수 문서화하기
- 함수 실행 흐름과 네이밍 규칙 익히기
📚 사전 지식
🎯 학습 목표 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
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
|
하지만 독스트링을 쓰면:
- 자동 문서화:
help(calculate_sum) 했을 때 설명이 나옴 - 협업 필수: 팀원들이 함수를 이해하기 쉬움
- 미래의 나: 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
| def greet(): # ✅ 영어 함수명
"""한글 설명은 독스트링에!"""
print("안녕하세요!")
|
독스트링이나 주석은 한글로 써도 괜찮지만, 함수/변수 이름은 영어로 작성하는 것이 업계 표준입니다.
📝 오늘 배운 내용 정리
핵심 개념
- 함수 정의
def 함수이름():으로 정의 - 들여쓰기로 함수 본문 작성
- 독스트링으로 문서화
- 함수 호출
함수이름()으로 호출 - 정의 후에만 호출 가능
- 필요할 때마다 재사용
- 함수의 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 |