반응형

8. 객체지향 프로그래밍

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍을 더 직관적이고 체계적으로 만들어주는 패러다임입니다. 파이썬은 객체지향 프로그래밍을 지원하는 언어입니다.

클래스와 객체

  • 클래스(Class): 객체를 만들기 위한 템플릿입니다. 클래스는 객체의 기본 형태와 행동을 정의합니다.
  • 객체(Object): 클래스에 정의된 속성(변수)과 행동(메서드)을 실제로 가지고 있는 실체입니다. 클래스로부터 생성됩니다.
class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name} says woof!")

# 객체 생성
my_dog = Dog("Buddy")
my_dog.bark()  # 출력: Buddy says woof!

상속

상속(Inheritance)은 한 클래스가 다른 클래스의 속성과 메서드를 물려받는 기능입니다. 코드 재사용을 촉진하고, 복잡성을 줄여줍니다.

class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says woof!")

# Dog 클래스는 Animal 클래스의 모든 속성과 메서드를 상속받음
my_dog = Dog("Buddy")
my_dog.bark()  # Buddy says woof!

다형성

다형성(Polymorphism)은 동일한 인터페이스나 메서드 호출이 다양한 방식으로 응답할 수 있는 능력을 의미합니다. 다형성은 코드의 유연성과 재사용성을 높여줍니다.

class Cat:
    def speak(self):
        print("Meow")

class Dog:
    def speak(self):
        print("Woof")

def animal_sound(animal):
    animal.speak()

# 다양한 형태의 객체에 대해 동일한 인터페이스(speak) 사용
animal_sound(Cat())  # Meow
animal_sound(Dog())  # Woof

캡슐화

캡슐화(Encapsulation)는 객체의 세부 구현 내용을 외부로부터 숨기고, 외부에서는 객체의 메서드만을 통해 상호 작용하게 하는 것입니다. 이를 통해 객체의 보호 및 데이터 숨김을 실현합니다.

class Computer:
    def __init__(self):
        self.__max_price = 900  # private 변수

    def sell(self):
        print(f"Selling Price: {self.__max_price}")

    def set_max_price(self, price):
        if price > self.__max_price:
            self.__max_price = price

c = Computer()
c.sell()  # Selling Price: 900

# __max_price는 외부에서 직접 접근할 수 없음
# c.__max_price = 1000  # 이 코드는 에러를 발생시킴

c.set_max_price(1000)
c.sell()  # Selling Price: 1000

객체지향 프로그래밍은 소프트웨어 설계를 더 자연스럽고 직관적으로 만들어줍니다. 클래스와 객체를 통해 현실 세계의 개념을 코드에 잘 반영할 수 있으며, 상속, 다형성, 캡슐화를 통해 코드를 재사용하고 유지보수하기 쉬워집니다.

반응형

'파이썬(Phython)' 카테고리의 다른 글

python 7. 파일 입출력  (0) 2023.11.15
Python 6. 에러와 예외 처리  (0) 2023.11.14
python 5. 함수와 모듈  (0) 2023.11.07
python 4. 자료형과 자료구조  (0) 2023.11.06
파이썬 python 3. 조건문과 반복문  (0) 2023.11.02
파이썬 python 2. 기본 문법  (0) 2023.11.01
1. 파이썬 소개  (0) 2023.10.31
파이썬(Python) 기초 강의  (0) 2023.10.31
반응형

5. 함수와 모듈

함수 정의와 호출

함수는 특정 작업을 수행하는 코드의 블록입니다. def 키워드로 정의하고, 이름을 지어준 다음에 괄호 안에 인자를 넣을 수 있어요. 인자는 함수가 작업을 수행하는 데 필요한 정보를 제공합니다.

def greet(name):
    return f"Hello, {name}!"

print(greet("Alice"))  # 'Hello, Alice!' 출력

이렇게 정의된 함수는 이름을 사용하여 어디서든 호출할 수 있습니다.

인자와 반환 값

함수는 인자를 받아서 처리하고, return을 사용하여 결과를 반환할 수 있습니다. 인자가 없거나 반환 값이 없는 함수도 가능합니다.

def add(a, b):
    return a + b

result = add(5, 3)
print(result)  # 8 출력

모듈과 패키지

모듈은 파이썬 코드가 들어 있는 파일입니다. 모듈 내의 함수나 변수, 클래스 등을 다른 파이썬 파일에서 사용할 수 있게 해줍니다.

# mymodule.py
def say_hello(name):
    print(f"Hello, {name}")

# 다른 파일에서 mymodule을 가져와서 사용
import mymodule
mymodule.say_hello("Bob")  # 'Hello, Bob' 출력

패키지는 모듈의 집합입니다. 관련된 모듈들을 한 폴더에 담아 구성할 수 있으며, 대규모 프로젝트의 코드를 구조화하는 데 도움을 줍니다.

람다 함수

람다 함수는 간단한 함수를 한 줄로 작성할 수 있는 방법입니다. lambda 키워드를 사용하며, 이름을 지정하지 않고도 함수처럼 사용할 수 있어 익명 함수라고도 합니다.

add = lambda x, y: x + y
print(add(5, 3))  # 8 출력

람다 함수는 짧고 간결하게 함수를 표현할 때 유용하며, 종종 다른 함수의 인자로 사용됩니다(예: sorted(), map(), filter() 등).

함수와 모듈은 코드를 재사용하고, 관리하기 쉽게 만드는 파이썬 프로그래밍의 핵심 요소입니다. 함수를 사용하면 코드를 모듈화하여 더 읽기 쉽고 유지 관리가 쉬운 프로그램을 작성할 수 있고, 모듈과 패키지를 사용하면 코드를 잘 구조화하고 여러 프로젝트에서 재사용할 수 있습니다.

반응형
반응형

4. 자료형과 자료구조

리스트 (List)

리스트는 여러 값들을 한데 모아서 저장할 때 사용합니다. 대괄호 [] 안에 값들을 쉼표로 구분해서 넣어 만들 수 있어요.

colors = ["red", "green", "blue"]
colors.append("yellow")  # 'yellow' 추가
print(colors)  # ['red', 'green', 'blue', 'yellow']
print(colors[0])  # 'red' 출력, 인덱스는 0부터 시작해요.

리스트는 수정 가능(mutable)해서, 요소를 변경하거나 추가, 제거하는 것이 자유로워요.

튜플 (Tuple)

튜플은 리스트와 비슷하지만, 한 번 생성하면 수정할 수 없는(immutable) 특징을 가지고 있어요. 소괄호 ()를 사용하거나, 괄호 없이 값을 나열해서 만들 수 있죠.

dimensions = (200, 50)
# dimensions[0] = 250  # 이건 에러를 일으켜요, 튜플은 변경할 수 없으니까요.

튜플은 프로그램에서 변경되지 않을 값들을 저장할 때 유용합니다.

딕셔너리 (Dictionary)

딕셔너리는 키(key)와 값(value)의 쌍으로 데이터를 저장합니다. 중괄호 {} 안에 콜론으로 키와 값의 쌍을 구분하여 넣어요.

person = {"name": "Alice", "age": 25}
person["email"] = "alice@example.com"  # 새로운 키와 값 추가
print(person)  # {'name': 'Alice', 'age': 25, 'email': 'alice@example.com'}

딕셔너리는 데이터에 빠르게 접근하고 싶을 때 아주 좋습니다.

집합 (Set)

집합은 중복을 허용하지 않고, 순서가 없는 컬렉션입니다. 중괄호 {}를 사용하거나 set() 함수로 만들 수 있어요.

fruits = {"apple", "banana", "cherry"}
fruits.add("orange")  # 'orange' 추가
print(fruits)  # 순서는 보장되지 않아요.

집합은 주로 중복을 제거하거나, 다른 컬렉션 간의 수학적 연산(교집합, 합집합 등)을 할 때 유용해요.

문자열 처리

문자열은 텍스트 데이터를 다룰 때 사용하는 시퀀스 자료형입니다. 따옴표로 묶어서 만들죠.

greeting = "Hello, World!"
print(greeting[7:])  # 'World!' 출력
print("Hello" in greeting)  # True 출력, 'Hello' 문자열이 greeting 안에 있는지 확인

파이썬에는 문자열을 처리하는 다양한 메소드가 있어 문자 데이터를 쉽게 다룰 수 있어요.

이처럼 파이썬은 다양한 자료형과 자료구조를 제공하고 있어, 여러분이 해결하려는 문제에 따라 가장 적합한 것을 선택해서 사용할 수 있습니다.

반응형

'파이썬(Phython)' 카테고리의 다른 글

pyhton 8. 객체지향 프로그래밍  (1) 2023.11.20
python 7. 파일 입출력  (0) 2023.11.15
Python 6. 에러와 예외 처리  (0) 2023.11.14
python 5. 함수와 모듈  (0) 2023.11.07
파이썬 python 3. 조건문과 반복문  (0) 2023.11.02
파이썬 python 2. 기본 문법  (0) 2023.11.01
1. 파이썬 소개  (0) 2023.10.31
파이썬(Python) 기초 강의  (0) 2023.10.31
반응형

파이썬 기초 강의를 위한 목록을 아래와 같이 제공할 수 있습니다. 이 목록은 파이썬의 기본적인 개념과 사용법을 다루며, 프로그래밍 경험이 거의 없는 초보자도 이해할 수 있도록 설계되었습니다.

1. 파이썬 소개

  • 파이썬이란?
  • 파이썬의 특징
  • 파이썬 설치 및 환경 설정
  • 첫 번째 파이썬 프로그램: Hello, World!

2. 기본 문법

  • 변수와 데이터 타입
  • 기본 연산자
  • 문자열과 출력 포맷팅
  • 사용자 입력 받기
  • 주석과 들여쓰기

3. 조건문과 반복문

  • if 문
  • for 문
  • while 문
  • break와 continue

4. 자료형과 자료구조

  • 리스트
  • 튜플
  • 딕셔너리
  • 집합
  • 문자열 처리

5. 함수와 모듈

  • 함수 정의와 호출
  • 인자와 반환 값
  • 모듈과 패키지
  • 람다 함수

6. 에러와 예외 처리

  • 에러 종류
  • 예외 처리
  • try, except 구문
  • finally와 assert

7. 파일 입출력

  • 파일 읽기
  • 파일 쓰기
  • with 구문
  • 경로와 디렉토리

8. 객체지향 프로그래밍

  • 클래스와 객체
  • 상속
  • 다형성
  • 캡슐화

9. 기타 유용한 팁

  • 리스트 컴프리헨션
  • 제너레이터
  • 데코레이터
  • 컨텍스트 매니저

10. 마무리와 다음 단계

  • 강의 요약
  • 추가 학습 자료
  • 파이썬 커뮤니티와 리소스

이 강의 목록을 통해 파이썬의 기초를 탄탄히 다질 수 있으며, 프로그래밍에 대한 이해를 높일 수 있습니다. 파이썬은 다양한 분야에서 사용되고 있으므로, 기초를 확실하게 다진 후에는 자신의 관심 분야에 따라 추가 학습을 진행하면 좋습니다.

반응형

'파이썬(Phython)' 카테고리의 다른 글

pyhton 8. 객체지향 프로그래밍  (1) 2023.11.20
python 7. 파일 입출력  (0) 2023.11.15
Python 6. 에러와 예외 처리  (0) 2023.11.14
python 5. 함수와 모듈  (0) 2023.11.07
python 4. 자료형과 자료구조  (0) 2023.11.06
파이썬 python 3. 조건문과 반복문  (0) 2023.11.02
파이썬 python 2. 기본 문법  (0) 2023.11.01
1. 파이썬 소개  (0) 2023.10.31

+ Recent posts