📌 개념 정리 ────────────────────────
1️⃣ 기본 자료형
구분 예시 특징
숫자형 (int/float) | 123, 3.14 | 사칙연산, 비교 가능 |
문자형 (str) | 'word', "123" | 불변, 슬라이싱 지원 |
리스트 (list) | [1,2,3] | 가변, 순서O, 중복O |
튜플 (tuple) | (1,2,3) | 불변, 순서O |
딕셔너리 (dict) | {"key":"val"} | 키‑값 쌍, 해시 |
집합 (set) | {1,2,3} | 중복X, 합집합·교집합 |
불형 (bool) | True/False | 논리 연산 |
🔎 주의: 문자열과 숫자 연산
- "123" + 10 ❌ TypeError
- int("123") + 10 ✅ 133
🚦 동작 원리 및 구조 ────────────────────────
▶️ 제어문 & 키워드 한눈에 보기
키워드 기능 사용 예시
if | 조건이 참일 때 블록 실행 | if x > 0: |
elif | 앞선 조건이 거짓이고 새 조건이 참 | elif x == 0: |
else | 모든 조건이 거짓일 때 실행 | else: |
== | 두 값이 같은지 비교 | a == b |
!= | 두 값이 다른지 비교 | a != b |
<, <= | 앞이 뒤보다 작다/작거나 같다 | age < 18 |
>, >= | 앞이 뒤보다 크다/크거나 같다 | score >= 60 |
and | 양쪽 조건 모두 참 | a>0 and b<10 |
or | 조건 중 하나라도 참 | is_admin or is_staff |
for | 시퀀스 요소를 차례로 반복 | for city in cities: |
while | 조건이 참인 동안 반복 | while count < 5: |
continue | 아래 코드 건너뛰고 다음 반복으로 이동 | if num%2: continue |
break | 반복문을 즉시 종료 | if input=="quit": break |
▶️ 함수 & 클래스
- def : 코드 재사용 단위
- class : 데이터+메소드 묶는 틀 (OOP)
- __init__ : 생성자, self : 인스턴스 자신
▶️ 모듈 & 패키지
- 모듈: .py 파일 하나
- 패키지/라이브러리: 모듈 묶음(폴더)
- import, from … import … 로 로드
💻 코드 예시 및 흐름 분석 ────────────────────────
● 자료형·연산 실습
num = 10
text = "5"
print(num + int(text)) # 15
print(str(num) * 3) # "101010"
● 조건 & 반복
weight = 75
if 50 <= weight < 80:
print("정상")
else:
print("관리 필요")
for city in ["seoul","busan"]:
if city == "seoul":
continue # 'seoul' 건너뛰기
print(city)
● 함수 & 클래스
def greet(name):
return f"Hello, {name}!"
class FishBread:
def __init__(self, flavor, price):
self.flavor = flavor
self.price = price
def info(self):
print(f"{self.flavor} 붕어빵 {self.price}원")
FishBread("팥",500).info()
● 외장함수 라이브러리 활용
import random, os, sys
print(random.randint(1,6))
print(os.getcwd())
print(sys.version)
🧪 실전 사례 ────────────────────────
- CSV 정제 스크립트: 반복 데이터 클렌징 → 5분 → 5초.
- 랜덤 추첨 프로그램: random.choice 로 사내 이벤트 즉시 추첨.
- 폴더 정리 자동화: os.listdir + shutil.move 로 파일 유형별 분류.
🧠 고급 팁 or 자주 하는 실수 ────────────────────────
❌ 실수 🛠️ 해결
for i in range(len(list)) 남용 | 직접 순회 for item in list |
== 대신 is 비교 | 값 비교는 == |
가변 기본인자 def f(x=[]) | 기본값은 None 으로 지정 |
클래스 메소드에 self 누락 | 첫 매개변수는 항상 self |
💡 팁
- 단순 자동화라면 1파일 스크립트+스케줄러로 충분.
- 성능 병목이 보이면 프로파일링 → 부분 최적화(C/C++).
🔧 코드 오류 예방 예시
# 함수 호출 시 매개변수 누락 방지
def name_func(name="Guest"):
return name
print(name_func()) # Guest
# 클래스 메서드 호출 시 인스턴스 필수
class FishBread:
def __init__(self, flavor, price):
self.flavor = flavor
self.price = price
def info(self):
print(f"{self.flavor} 붕어빵 {self.price}원")
fb = FishBread("팥", 500)
fb.info() # ✅ 올바른 호출
✅ 마무리 요약 및 복습 포인트 요약 및 복습 포인트 ────────────────────────
☑️ 7대 기본 자료형 특성과 변환 방법 숙지. ☑️ 제어문으로 흐름 제어, continue/break 로 미세 조정. ☑️ 함수로 중복 제거, 클래스(OOP)로 데이터·행위 캡슐화. ☑️ import 로 외부 모듈 재사용 → 생산성 Up. ☑️ 실습 → 에러 → 디버깅 🔁 로 체득하는 것이 가장 빠른 학습법.
"문법은 도구일 뿐, 작은 프로젝트로 손을 더럽힐수록 이해가 깊어진다!"
'Flask' 카테고리의 다른 글
Chapter 1-5 Flask란? (0) | 2025.04.17 |
---|---|
Chapter 1-4 Flask 서버 구축을 위한 개발 환경 설정 (0) | 2025.04.17 |
Chapter 1-3_1 파이썬 내장 함수 / 외장 함수 (import) (0) | 2025.04.17 |
Chapter 1-2 왜 파이썬인가? (1) | 2025.04.17 |
Chapter 1-1 프로그래밍이란? (0) | 2025.04.17 |