파이썬 배우기 - 2주차 : 자료구조화 함수 심화학습

 

 

파이썬 배우기 - 2주 차에는 자료구조와 함수 심화 학습을 진행합니다.

파이썬의 중요한 자료구조를 배우고, 함수와 모듈을 깊이 있게 학습하는 시간입니다.

 

✔ 주요 학습 내용은

    ✅ 리스트, 튜플, 딕셔너리 활용법

    ✅ 함수(Function)와 람다(lambda) 함수

    ✅ 모듈과 패키지(import, 사용자 정의 모듈 만들기)

    ✅ 파일 입출력 (텍스트 파일, CSV 파일 다루기) 실습 예제

        - 연락처 저장 및 검색 프로그램 만들기 파일에서 데이터를 읽고 저장하는 프로그램 작성 입니다.

 

🎯 2주 차 목표는

    ✔️ 파이썬의 다양한 자료구조를 활용하여 데이터 처리

    ✔️ 모듈을 사용하여 코드 재사용성과 유지보수성 향상 입니다.

2주 차: 자료구조와 함수 심화 학습

"데이터를 다루는 능력은 프로그래밍의 핵심입니다."

이번 주에는 파이썬의 다양한 자료구조를 익히고, 함수와 모듈, 파일 입출력을 깊이 있게 학습합니다. 자료구조는 데이터를 효율적으로 저장하고 처리하는 방법을 배우는 것이며, 함수와 모듈을 활용하면 코드의 재사용성과 유지보수성을 높일 수 있습니다.

이제부터 체계적인 학습 로드맵과 실습 예제를 따라가며 실력을 쌓아봅시다!


📅 2주 차 학습 로드맵

요일학습 내용실습 예제

1일 차 리스트(List)와 튜플(Tuple) 활용 학생 점수 관리 프로그램
2일 차 딕셔너리(Dictionary)와 집합(Set) 활용 연락처 관리 프로그램
3일 차 함수(Function)와 람다(lambda) 함수 계산기 프로그램
4일 차 모듈과 패키지(import, 사용자 정의 모듈) 간단한 유틸리티 모듈 만들기
5일 차 파일 입출력 (텍스트 파일 다루기) 메모장 프로그램
6일 차 CSV 파일 처리 및 데이터 저장 회원 정보 관리 프로그램
7일 차 종합 프로젝트 연락처 저장 및 검색 프로그램

📌 1일 차: 리스트(List)와 튜플(Tuple) 활용

1️⃣ 리스트(List) 기본 개념

✅ 리스트는 여러 개의 데이터를 하나의 변수에 저장할 수 있는 자료구조입니다.
✅ **변경 가능(mutable)**하며, 다양한 메서드를 제공합니다.

# 리스트 선언 및 사용
fruits = ["사과", "바나나", "포도"]
fruits.append("오렌지") # 요소 추가
fruits.remove("바나나") # 요소 제거
print(fruits)

2️⃣ 튜플(Tuple) 기본 개념

✅ 튜플은 리스트와 유사하지만 변경할 수 없는(immutable) 자료구조입니다.

# 튜플 선언 및 사용
colors = ("빨강", "파랑", "초록")
print(colors[0]) # 빨강

🎯 실습 예제

✔️ 학생 점수 관리 프로그램

scores = [90, 85, 77, 92, 88]
print("평균 점수:", sum(scores) / len(scores))

📌 2일 차: 딕셔너리(Dictionary)와 집합(Set) 활용

1️⃣ 딕셔너리(Dictionary) 기본 개념

키-값(key-value) 쌍으로 데이터를 저장하는 자료구조입니다.

# 딕셔너리 선언 및 사용
person = {"이름": "홍길동", "나이": 25, "도시": "서울"}
print(person["이름"]) # 홍길동
person["직업"] = "개발자" # 새로운 키-값 추가

2️⃣ 집합(Set) 기본 개념

✅ 중복을 허용하지 않는 자료구조입니다.

# 집합 선언 및 사용
numbers = {1, 2, 3, 3, 4}
numbers.add(5)
print(numbers) # {1, 2, 3, 4, 5}

🎯 실습 예제

✔️ 연락처 관리 프로그램

contacts = {"홍길동": "010-1234-5678", "김영희": "010-9876-5432"}
name = input("검색할 이름: ")
print("전화번호:", contacts.get(name, "등록되지 않은 이름입니다."))

📌 3일 차: 함수(Function)와 람다(lambda) 함수

1️⃣ 함수(Function) 기본 개념

코드를 재사용할 수 있도록 만드는 구조입니다.

# 함수 정의 및 호출
def greet(name):
      return f"안녕하세요, {name}님!"
 
print(greet("철수"))

2️⃣ 람다(lambda) 함수

✅ 간결한 형태로 함수를 정의할 때 사용합니다.

# 람다 함수 사용
add = lambda x, y: x + y
print(add(3, 5)) # 8

🎯 실습 예제

✔️ 계산기 프로그램

def calculator(a, b, op):
      if op == "+":
         return a + b
     elif op == "-":
         return a - b
     elif op == "*":
         return a * b
     elif op == "/":
         return a / b
     else:
         return "잘못된 연산자"
 
print(calculator(5, 3, "+"))

📌 4일 차: 모듈과 패키지(import, 사용자 정의 모듈)

1️⃣ 모듈 불러오기(import)

✅ import를 사용하면 기존에 작성된 코드를 쉽게 재사용할 수 있습니다.

python
복사편집
import math print(math.sqrt(16)) # 4.0

2️⃣ 사용자 정의 모듈 만들기

✅ 새로운 .py 파일을 만들어 모듈을 직접 작성할 수 있습니다.

# mymodule.py
def hello():
      return "안녕하세요!"
 
# main.py
import mymodule
print(mymodule.hello())

🎯 실습 예제

✔️ 유틸리티 모듈 만들기


📌 5일 차: 파일 입출력 (텍스트 파일 다루기)

1️⃣ 파일 읽기/쓰기

# 파일 쓰기
with open("data.txt", "w") as file:
       file.write("Hello, Python!")
 
# 파일 읽기
with open("data.txt", "r") as file:
       print(file.read())

🎯 실습 예제

✔️ 메모장 프로그램


📌 6일 차: CSV 파일 처리 및 데이터 저장

1️⃣ CSV 파일 다루기

import csv
 
# CSV 파일 저장
with open("data.csv", "w", newline="") as file:
      writer = csv.writer(file)
      writer.writerow(["이름", "나이"])
      writer.writerow(["홍길동", 25])

🎯 실습 예제

✔️ 회원 정보 관리 프로그램


📌 7일 차: 종합 프로젝트 – 연락처 저장 및 검색 프로그램

🎯 연락처 프로그램 만들기

contacts = {}
 
# 연락처 저장
def add_contact(name, phone):
      contacts[name] = phone
 
# 연락처 검색
def search_contact(name):
      return contacts.get(name, "등록되지 않은 연락처입니다.")
 
# 실행
add_contact("홍길동", "010-1234-5678")
print(search_contact("홍길동"))

🚀 2주 차 목표 달성! 다음 단계는?

✔️ 자료구조(리스트, 튜플, 딕셔너리, 집합)를 이해하고 활용할 수 있다.
✔️ 함수와 모듈을 사용하여 코드 재사용성을 높였다.
✔️ 파일을 활용하여 데이터를 저장하고 불러올 수 있다.

이제 3주 차: 객체지향 프로그래밍(OOP)과 예외 처리로 가볼까요? 🚀