Flask

Chapter 1-3 파이썬 문법정리

Chansman 2025. 4. 17. 11:10

📌 개념 정리 ────────────────────────

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. ☑️ 실습 → 에러 → 디버깅 🔁 로 체득하는 것이 가장 빠른 학습법.

"문법은 도구일 뿐, 작은 프로젝트로 손을 더럽힐수록 이해가 깊어진다!"