10. Python Programming Course : Error Handling and Except

  10장. 오류 처리 및 예외 핸들링 (Error Handling and Exceptions) 파이썬에서 발생하는 다양한 오류를 이해하고, 이를 안전하게 처리하여 프로그램의 안정성을 확보하는 방법을 학습합니다. 10.1 주요 Python 오류 SyntaxError : 문법 오류(예: 콜론 누락) NameError : 선언되지 않은 변수·함수 참조 TypeError : 연산이나 함수 호출 시 타입 불일치 ValueError : 타입은 맞지만 부적절한 값 IndexError / KeyError : 시퀀스·딕셔너리 인덱스 또는 키 없음 실습 예제 # SyntaxError 예제 (콜론 누락) # if True # print("Error") # NameError 예제 # print(undefined_variable) # TypeError 예제 print("hello" + 5) # 문자열과 정수의 덧셈 오류 10.2 예외 처리 with try-except try: x = int(input("숫자를 입력하세요: ")) print(10 / x) except ValueError: print("유효한 정수를 입력해야 합니다.") except ZeroDivisionError: print("0으로 나눌 수 없습니다.") except Exception as e: print("알 수 없는 오류 발생:", e) else: print("예외 없이 정상 실행되었습니다.") finally: print("프로그램 종료") 실습 과제 사용자로부터 인덱스를 입력받아 리스트 요소를 출력하는 코드를 작성하고, IndexError 를 처리하세요. 10.3 예외 발생 (Raising Exceptions) def set_age(age): if age < 0: raise Va...

9. Python Programming Course : Object-Oriented Programming

  9장. 객체지향 프로그래밍 (Object-Oriented Programming) 객체지향 프로그래밍(OOP)은 데이터와 동작을 하나의 단위(객체)로 묶어 설계하고 구현하는 방법론입니다. 본 장에서는 다음 다섯 가지 주제를 실습과 예제를 통해 학습합니다. 클래스(Class)와 객체(Object) 속성(Attribute)과 메서드(Method) 상속(Inheritance) 다형성(Polymorphism) 캡슐화(Encapsulation) 9.1 클래스와 객체 클래스 : 객체를 생성하기 위한 설계도(템플릿) 객체 : 클래스를 바탕으로 실제 메모리에 생성된 인스턴스 # 클래스 정의 예시 class Person: def __init__(self, name, age): self.name = name # 인스턴스 속성 self.age = age # 객체 생성 p1 = Person("Alice", 30) p2 = Person("Bob", 25) print(p1.name, p1.age) # 출력: Alice 30 실습 과제 : Car 클래스를 정의하여 make , model , year 속성을 초기화하고, 두 개의 Car 인스턴스를 생성 후 속성 출력하기 9.2 속성과 메서드 속성(Attribute) : 객체가 가지는 데이터 메서드(Method) : 객체가 수행할 수 있는 함수 class Circle: def __init__(self, radius): self.radius = radius def area(self): return 3.1416 * self.radius ** 2 c = Circle(5) print(c.area()) # 출력: 78.54 실습 과제 : Rectangle 클래스를 만들고 width , height 속성 및 area() , perimeter() 메서드를 구현하여 테스트해보기 9.3 상속 상속(Inheritan...

8. Python Programming Course : Modules and Packages

8장. 모듈 및 패키지 '모듈'과 '패키지'는 단순히 코드를 나누기 위한 수단이 아니라, 하나의 프로젝트를 논리적으로 구성하고, 재사용 가능하며 유지보수가 쉬운 코드로 발전시키기 위한 필수적인 도구입니다.  특히 파이썬은 다양한 표준 라이브러리와 외부 패키지를 통해 개발자의 생산성을 크게 향상시킬 수 있는 환경을 제공하고 있기 때문에, 이러한 구조적 요소들에 대한 이해는 더욱 중요합니다.  본 강의에서는 파이썬에서 모듈과 패키지를 어떻게 활용할 수 있는지에 대해 이론과 실습을 병행하며 자세히 살펴보고자 합니다. 강의 개요 모듈 가져오기(Importing Modules) 표준 라이브러리 모듈(Standard Library Modules) 사용자 정의 모듈 만들기(Creating Your Own Modules) 파이썬 패키지(Python Packages) 1. 모듈 가져오기 (Importing Modules) 1.1 개념 및 필요성 모듈: 관련된 함수, 변수, 클래스 등을 하나의 파일로 모아 둔 파이썬 파일(.py)      - 이 파일은 .py  확장자를 가진 일반적인 파이썬 스크립트와 동일하지만, 다른 파일에서 import 문을 통해 불러와 사용할 수 있다는 점에서 큰 차이를 가집니다. 즉, 모듈은 하나의 독립적인 기능 단위로 작동하며, 여러 프로그램에서 재사용할 수 있는 코드 조각이라고 볼 수 있습니다. 필요성: 서로 다른 파일에 정의된 기능을 재사용하여 코드 중복을 줄이고, 구조적인 설계를 가능하게 함     - 프로그램의 규모가 커지면, 모든 코드를 하나의 파일에 넣는 것은 매우 비효율적이고, 유지보수도 어렵습니다. 예를 들어, 숫자를 더하거나 날짜를 계산하는 함수들이 여러 파일에 흩어져 있다면, 나중에 수정할 때 중복된 코드를 일일이 찾아 고쳐야 할 수도 있습니다. 하지만 이 기능들을 별도의 모듈로 정리해두면, 필요한 곳에서 간편하게 불러와 사용할 수 있고, 한 곳만 수정...

7. Python Programming Course : Working with Files

Chapter 7. Python에서 파일 다루기 왜 파일 작업이 중요한가요? Python을 배운다는 건 단순히 숫자 계산이나 화면에 출력하는 걸 넘어서 외부 세계와 데이터를 주고받는 것 까지 포함합니다. 파일을 다룰 줄 알아야 다음과 같은 작업이 가능합니다: 텍스트 데이터 저장 및 불러오기 (메모장처럼) 로그 파일 자동 생성 웹 크롤링 후 결과 저장 CSV 파일을 통해 엑셀과 연동 이미지, 바이너리 파일 저장 등 7.1 파일 열고 닫기 (Opening and Closing Files) 기본 구조 file = open ( "example.txt" , "r" ) # 읽기 모드로 파일 열기 # 파일 읽기, 쓰기 등 작업 file.close() # 파일 닫기 설명: open() 함수로 파일을 엽니다. "r" 은 읽기(read) 모드를 의미합니다. close() 는 열었던 파일을 닫습니다. 안 닫으면 컴퓨터 자원을 계속 점유하게 되어 데이터 유실 또는 충돌 가능성이 있습니다. 실생활 예시: 누군가의 다이어리를 펼쳤으면, 다 쓰고는 꼭 닫아줘야 하는 것과 같습니다. 더 안전한 방법: with 구문 with open ( "example.txt" , "r" ) as file: content = file.read() print (content) 설명: with 를 사용하면 파일이 자동으로 닫히기 때문에 실수 방지 에 좋습니다. 중간에 에러가 나도 close() 가 호출되어 리스크를 줄여줍니다 . TIP: 초보자일수록 무조건 with open(...) 을 사용하는 걸 추천합니다. 7.2 파일 읽기 / 쓰기 파일 읽기 with open ( "example.txt" , "r" ) as fil...

6. Python Programming Course : Functions

  6. Functions 함수는 입력값에 따라 출력값이 변합니다. 즉, 입력값을 넣으면 어떤 일을 수행한 후 결과을 내어놓게 됩니다. Python에서 코드를 작성하다 보면 반복되는 부분이 생길 때가 있습니다. 이럴 때 기존의 코드를 복사 붙여 넣기 하는 것도 가능하지만, 함수를 이용한다면 더 편리해집니다. 반복되는 부분들을 함수로 만든다면, 반복되는 부분(데이터 처리 로직, 파일 입출력 등의 반복되는 흐름)에 미리 정의한 함수를 사용해 코드의 가독성 을 높이고, 전반적인 코드의 흐름 을 잘 알 수 있게 되며 오류 발견 도 쉬워질 수 있습니다. 이 장에서는 이러한 함수를 정의하고, 인자를 전달하며, 값을 반환하고, 변수 범위를 이해하고, 간단한 람다 함수를 사용하는 법까지 단계별로 배워봅니다. 6.1 Defining Functions (함수 정의) 기본 구조 def 키워드로 시작하고, 함수 이름을 적습니다. 함수 이름 뒤에 괄호()와 콜론 : 를 붙여 정의 합니다. 함수 본문은 들여쓰기( 4칸 )로 구분합니다. 매개변수 포함 함수 함수의 기본 구조에서 ()안에 매개변수(Parameter)를 추가한 형태입니다. 매개변수는 함수에 입력으로 전달된 값을 받는 변수입니다. name 자리에 Alice가 들어가 "Hello, Alice!"가 출력됨 6.2 Function Arguments (함수 인자) 인자(Arguments)란? 함수를 호출 할 때 괄호 안에 넣어 주는 실제 값 사용이유 코드 재사용성 증가 함수 안에 값을 직접 넣으면 같은 로직을 다른 값으로 돌릴 때마다 코드를 복붙하거나 수정해야 하는데, 인자를 사용하면 함수만 정의해두고, 필요할 때마다 다른 인자만 넣어 호출 가능합니다.         2. 다양한 상황에 사용 가능 (유연성 증가) 어떤 값이 들어올지 미리 알 수 없을 때, 인자를 통해 외부에서 값을 주입 하면 함수가 다양한 상황 대처 가능합니다. ...

5. Python Programming Course : Control Structures

  # 🌟 Chapter 5. Control Structures (제어문) "제어문"이란, 프로그램의 흐름을 상황에 따라 바꾸는 문법입니다. 조건문과 반복문을 통해 다양한 조건 분기와 반복 처리를 구현할 수 있습니다. 5.1 Conditional Statements (조건문) if / elif / else 문이란? > 어떤 조건이 참일 때만 특정 코드를 실행하게 만드는 문법입니다. 사용 목적 - 조건에 따라 다른 동작을 수행하도록 하기 위해 사용합니다. - 상황에 따라 프로그램의 흐름을 다르게 제어하고자 할 때 활용됩니다. elif문이란? > `if` 조건이 거짓일 경우, 다른 조건을 추가로  검사할 수 있도록 하는 문법입니다. - `elif`는 "else if"의 줄임말이며, 여러 개를 연달아 사용할 수 있습니다. - 위에서부터 조건을 차례로 평가하며, 첫 번째로 참인 조건이 실행됩니다. else문이란? > 위에서 검사한 모든 조건이 거짓인 경우, 마지막으로 실행할 코드를 지정하는 문법입니다. - `else`는 따로 조건을 쓰지 않으며, 그 자체가 모든 조건의 대안 역할을 합니다. 유의할 점 - `:` 콜론을 조건문 끝에 반드시 붙여야 합니다. - 조건문 블록 안의 코드는 들여쓰기를 이용해 명확히 구분해야 합니다 (보통 띄어쓰기 4칸). 기본 구조 x = 10 if x > 0:     print("양수입니다") elif x == 0:     print("0입니다") else:     print("음수입니다") - 변수 `x`의 값에 따라 양수, 0, 음수를 판단하여 각각 다른 문장을 출력하는 구조입니다. 2. 중첩 조건문 > 중첩 조건문이란, 하나의 조건문 안에 또 다른 조건문을 포함하는 구조를 의미합니다. 조건을 계층적으로 판단해야 할 때 사용합니다. > 예를 들어, 특정 조건을 먼저 만족하는 경우에만 추가적인 세부 조건을 검사하고자 ...

4. Python Programming Course : Data Structures

Python Programming Course 4. Data Structures Python의 데이터 구조는 실제로 데이터를 다루는 데 있어 매우 강력한 도구입니다. 이 장에서는 기본적인 네 가지 자료구조인 List, Tuple, Set, Dictionary를 학습합니다. 각 자료구조의 특성, 사용법, 메서드 등을 예제와 함께 익혀봅니다. 💻 왜 파이썬의 데이터 구조를 배워야 할까요? 다양한 데이터를 다루다 보면, 데이터를 어떻게 저장하고 , 관리하고 , 활용할 것인지 가 중요해지는데,  이때 꼭 알아야 할 것이 바로 데이터 구조(Data Structures) 입니다. 파이썬에는 list , tuple , set , dict 같은 다양한 내장 데이터 구조가 있는데, 이들을 잘 활용하면: 현실 세계의 데이터 를 자연스럽게 표현할 수 있고, 코드를 짧고 명확하게 만들 수 있으며, 성능이 뛰어난 프로그램 을 만들 수 있습니다. 예를 들어, 단순히 리스트를 반복문으로 돌리는 대신, set 을 사용하면 중복을 제거할 수 있고, dict 를 사용하면 복잡한 매핑 관계도 쉽게 구현할 수 있습니다. 4.1 Lists (리스트) 1. Creating and Accessing Lists 리스트는 변경 가능한 순차형 데이터 구조입니다. 인덱스를 통해 개별 요소에 접근하거나 라이싱으로 부분 추출이 가능합니다. [ ]를 이용합니다. 다양한 타입의 데이터(integer, string, ...)를 함께 가질 수 있습니다. 2. List Methods append(x) - 리스트의 끝에 x 를 추가합니다. insert(i, x) - i 위치에 x 를 삽입합니다. remove(x) - 리스트에서 첫 번째로 나오는 x 를 제거합니다. pop() - 리스트의 마지막 요소를 제거하고 반환합니다. sort() - 리스트를 오름차순으로 정렬합니다. reverse() - 리스트의 순서를 역순으로 뒤집습니다. len(list) - 리스트의 길이(요소 개...