[Python] 파이썬 함수와 클래스: 모듈화와 객체지향 프로그래밍의 핵심
이번 포스트에서는 파이썬의 함수와 클래스에 대해 다뤄 보겠습니다.
함수는 프로그램 내에서 코드의 재사용과 모듈화를 가능하게 하며, 클래스는 객체지향 프로그래밍의 핵심입니다.
이를 통해 더 효율적이고 유지보수가 용이한 코드를 작성할 수 있습니다.
함수: 코드의 재사용과 모듈화
함수는 프로그램 내에서 특정 작업을 수행하는 코드 블록을 정의하고 호출하는 데 사용됩니다.
함수를 사용하면 코드를 모듈화하여 유지보수가 쉬워지고, 코드의 재사용성을 높일 수 있습니다.
■ 함수의 정의와 호출
함수를 정의하려면 def 키워드를 사용하고, 호출하려면 함수 이름과 필요한 인자(매개변수)를 전달합니다.
1
2
3
4
5
|
def greet(name):
return f"안녕하세요, {name}!"
message = greet("눈부셔")
print(message) # 출력: "안녕하세요, 눈부셔!"
|
■ 함수의 매개변수와 반환값
함수는 입력을 받기 위해 매개변수를 사용하며, 결과를 반환하기 위해 return 문을 사용합니다.
함수 내부에서 계산된 결과를 호출자에게 반환합니다.
1
2
3
4
5
|
def add(x, y):
return x + y
result = add(3, 5)
print(result) # 출력: 8
|
■ 내장 함수와 라이브러리 모듈
파이썬은 많은 내장 함수를 제공하며, 라이브러리 모듈을 통해 다양한 기능을 확장할 수 있습니다. 예를 들어, print(), len(), math 모듈 등이 있습니다.
1
2
3
|
import math
print(math.sqrt(25)) # 출력: 5.0
|
클래스와 객체 지향 프로그래밍
클래스는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 데이터와 함수를 하나의 단위로 캡슐화합니다.
클래스를 사용하면 현실 세계의 개념을 모델링하고 객체를 생성하여 사용할 수 있습니다.
■ 클래스의 정의와 객체 생성
클래스를 정의하고 객체를 생성하는 방법은 다음과 같습니다.
1
2
3
4
5
6
7
8
|
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Alice", 30)
print(person1.name) # 출력: "Alice"
print(person1.age) # 출력: 30
|
■ 클래스의 속성과 메서드
클래스는 속성(멤버 변수)과 메서드(멤버 함수)를 포함합니다.
속성은 객체의 상태를 나타내며, 메서드는 객체의 동작을 정의합니다.
1
2
3
4
5
6
7
8
9
|
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14159 * self.radius ** 2
circle = Circle(5)
print(circle.area()) # 출력: 78.53975
|
■ 클래스 상속과 다형성
클래스는 다른 클래스를 상속받아 새로운 클래스를 정의할 수 있습니다. 이를 통해 코드 재사용성을 높이고 다형성을 구현할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "멍멍!"
class Cat(Animal):
def speak(self):
return "야옹!"
dog = Dog()
cat = Cat()
print(dog.speak()) # 출력: "멍멍!"
print(cat.speak()) # 출력: "야옹!"
|
(연습문제) 파이썬 함수
1. 리스트에 있는 숫자 중에서 최대값을 찾는 함수 find_max(numbers)를 작성하세요.
1
2
3
4
5
6
7
8
9
10
11
12
|
def find_max(numbers):
if len(numbers) == 0:
return None
max_num = numbers[0]
for num in numbers:
if num > max_num:
max_num = num
return max_num
# 테스트
numbers = [3, 7, 2, 8, 5]
print(find_max(numbers)) # 출력: 8
|
2. 주어진 숫자의 팩토리얼을 계산하는 함수 factorial(n)를 작성하세요
1
2
3
4
5
6
7
8
9
10
|
def factorial(n):
if n == 0:
return 1
result = 1
for i in range(1, n + 1):
result *= i
return result
# 테스트
print(factorial(5)) # 출력: 120
|
(연습문제) 파이썬 클래스
1. 사각형을 나타내는 Rectangle 클래스를 정의하세요.
이 클래스는 너비와 높이를 인스턴스 변수로 가지며, 넓이를 계산하는 get_area() 메서드를 포함해야 합니다.
1
2
3
4
5
6
7
8
9
10
11
|
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def get_area(self):
return self.width * self.height
# 테스트
rectangle = Rectangle(4, 5)
print(rectangle.get_area()) # 출력: 20
|
2. 도서 정보를 관리하는 Book 클래스를 정의하세요. 이 클래스는 제목, 저자, 출판연도를 인스턴스 변수로 가지며, 도서 정보를 문자열로 반환하는 get_info() 메서드를 포함해야 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Book:
def __init__(self, title, author, year):
self.title = title
self.author = author
self.year = year
def get_info(self):
return f"{self.title} (저자: {self.author}, 출판연도: {self.year})"
# 테스트
book1 = Book("파이썬 프로그래밍", "Guido van Rossum", 1991)
print(book1.get_info()) # 출력: "파이썬 프로그래밍 (저자: Guido van Rossum, 출판연도: 1991)"
|
#파이썬 #프로그래밍 #코딩 #파이썬 함수 #파이썬 클래스 #데이터분석 #객체지향 프로그래밍 #파이썬 모듈화
'Data & Programming > Python' 카테고리의 다른 글
[Python] 파이썬으로 날짜와 시간 다루기 (194) | 2023.09.23 |
---|---|
[Python] 파이썬의 오류(Error)와 예외처리(Exception Handling) (197) | 2023.09.19 |
[Python] 파이썬 조건문과 반복문: 제어 구조와 반복적인 작업 (120) | 2023.09.17 |
[Python] 파이썬의 자료구조 : 튜플, 리스트, 딕셔너리 (199) | 2023.09.16 |
[Python] 파이썬(Python)과 주요 라이브러리 설치방법 (0) | 2023.08.02 |