🐍 파이썬, 질문하며 배우기
학생이 먼저 LLM에게 묻고 → 직접 실행하고 → 선생님이 정리합니다.
중·고등 · 구글 미트 화상 수업 · 브라우저에서 코드 실행 (파이참 불필요)
이 수업은 이렇게 진행돼요
교안에 정답이 바로 적혀 있지 않습니다. AI에게 물어보고, 아래 실행기에서 확인한 뒤, 화상 수업에서 선생님과 핵심만 정리합니다.
STEP 1. 질문하기
교안 질문을 챗봇에 복사해 물어봅니다. 수업 전 선행 권장.
STEP 2. 직접 해보기
코드를 베끼지 말고 실행기에서 직접 타이핑·실행합니다.
STEP 3. 선생님 리뷰
구글 미트에서 핵심 문법과 AI가 틀린 부분을 함께 정리합니다.
· 앞쪽: 쉬운·고전적 표현 (%, for, def, open)
· 뒤쪽: 같은 기능의 고급 표현을 모아 리마인드 (f-string, 컴프리헨션, 람다, 데코레이터, async…)
전체 커리큘럼
| 장 | 주제 | 핵심 + 뒤에 모을 고급 표현 |
|---|---|---|
| 1 | 파이썬과 첫 만남 | 변수·숫자·문자열·% 포맷·인덱싱·리스트 |
| 2 | 제어문과 입출력 | 연산자·if·for/while·입출력 |
| 3 | 자료구조·함수·파일 | 튜플·dict·set·함수·파일 · f-string 리마인드 |
| 4 | OOP · 고급 표현 | 클래스·상속·모듈·예외 · 컴프리헨션·람다·데코레이터·async |
| 5 | 자기주도 프로젝트 | 데이터 분석·코드 리뷰·미니 프로젝트 |
1장. 파이썬과 첫 만남
설치·IDE 없이, 이 페이지의 실행기만으로 시작합니다.
1-1. 파이썬은 대체 왜 배울까?
파이썬이 어떤 프로그래밍 언어인지, 자바·C와 비교해 어떤 점이 다른지 설명해줘. 파이썬으로 만들 수 있는 것 3가지도 예시로 알려줘.
💡 ‘왜 초보자에게 파이썬을 추천하는지’ 한 문장으로 정리해 보세요.
직접 해보기
- 아래 실행기에서 print 문을 실행해 보세요.
- PRINT (대문자)로 바꾸면 어떻게 되는지 확인하세요.
퀴즈
다음 중 오류가 나는 것은?
print(1) / PRINT(1) / print(1+1)
→ 정답: PRINT(1) (대소문자 구분)
👩🏫 선생님 리뷰 · 핵심 정리
- 파이썬은 인터프리터 언어라 한 줄씩 바로 실행할 수 있습니다.
- 들여쓰기가 문법의 일부입니다 (다른 언어의 { } 역할).
- 이름은 대소문자를 구분합니다 (print ≠ PRINT).
1-2. 숫자와 변수
파이썬 산술 연산자 +, -, *, /, %, //, ** 의 의미를 예시와 함께 설명해줘. 특히 / 와 // 차이를 알려줘. 변수 이름 규칙도 설명해줘.
👩🏫 선생님 리뷰
/는 실수,//는 몫(정수 나눗셈)입니다.- 변수 이름은 숫자로 시작하거나 예약어(class, def, if…)를 쓸 수 없습니다.
- 타입을 미리 적지 않습니다. a = 10 이면 정수로 취급됩니다.
1-3. 문자열과 인덱싱 / 슬라이싱
파이썬 문자열을 만드는 방법(작은따옴표, 큰따옴표, 삼중따옴표)과 인덱싱·슬라이싱을 a = 'I love Python' 예시로 설명해줘.
👩🏫 선생님 리뷰
- 인덱스는 0부터, 음수는 뒤에서부터입니다.
- 슬라이싱 a[시작:끝]에서 끝은 포함되지 않습니다.
- 문자열은 immutable — 인덱스로 글자를 바꿀 수 없습니다.
1-4. 문자열 꾸미기 — 먼저 % 포맷팅 기초
지금은 고전적인 % 방식만 익힙니다. f-string은 3장에서 다시 나옵니다.
파이썬 문자열 포맷팅 중 % 연산자만 자세히 설명해줘. %d, %s, %f, %% 의미와 hour=9, minute=20 으로 '나는 9시 20분에 학교에 갑니다.' 출력 예시를 보여줘. f-string은 나중에 배울 예정이니 지금은 %만 설명해줘.
👩🏫 선생님 리뷰
- %d 정수, %s 문자열, %f 실수, %% 는 % 글자 자체
- 여러 값은 % (값1, 값2) 튜플로 전달
- f-string은 3장 리마인드에서 다룹니다
1-5. 리스트 기초와 True / False
파이썬 리스트가 무엇인지 설명해줘. 빈 문자열, 빈 리스트, 숫자 0이 조건문에서 False로 취급되는 이유도 예시와 함께 알려줘.
👩🏫 선생님 리뷰
- 리스트는 [ ] 로 순서 있는 값을 담습니다.
- 빈 값·0·None 은 False, 그 외는 대체로 True
- 리스트는 mutable — 인덱스로 값을 바꿀 수 있습니다 (문자열과 다름)
✅ 1장 확인 퀴즈
답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.
Q1. 빈 리스트 [] 를 조건문에 넣으면?
Q2. 만든 뒤 요소를 바꿀 수 있는(mutable) 것은?
Q3. print 와 PRINT 는 같은가?
2장. 제어문과 입출력
조건을 나누고, 반복하고, 입력을 받습니다. 나중에 컴프리헨션으로 짧게 쓰는 법은 4장에서.
2-1. 비교 / 논리 연산자
파이썬 비교 연산자(==, !=, >, <)와 논리 연산자(and, or, not), in / not in 을 예시로 설명해줘. == 와 is 의 차이도 알려줘.
2-2. 조건문 if / elif / else
파이썬 if, elif, else 문법을 설명해줘. 점수 jumsu가 90 이상이면 '잘했어요', 70 이상이면 '잘할 수 있어요', 아니면 '노력하세요'를 출력하는 코드를 짜줘.
💡 AI 코드를 그대로 붙이지 말고, 들여쓰기를 직접 타이핑해 보세요.
👩🏫 선생님 리뷰
- 조건 끝에는 반드시 콜론 :
- 들여쓰기로 블록을 구분합니다
- elif는 위에서부터 순서대로 검사합니다
2-3. 반복문 for / while 기초
지금은 for/while을 직접 씁니다. 한 줄 컴프리헨션은 4장에서.
파이썬 for와 while 차이, range() 의미, break와 continue 역할을 예시로 설명해줘.
2-4. 입출력 다듬기
print()의 end, sep 옵션과, input() 결과가 항상 문자열인 이유를 예시로 설명해줘.
✅ 2장 확인 퀴즈
답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.
Q1. 조건문 끝에는 무엇이 필요한가?
Q2. break 의 역할은?
Q3. input() 결과의 기본 타입은?
3장. 자료구조 심화 · 함수 · 파일
3-1. 튜플
파이썬 튜플이 리스트와 어떻게 다른지, 왜 값을 못 바꾸는지, 언제 쓰면 좋은지 설명해줘.
3-2. 딕셔너리
파이썬 딕셔너리의 key/value, keys/values/items, get 사용법을 예시로 설명해줘.
👩🏫 선생님 리뷰
- 딕셔너리는 key로 값을 찾습니다 (순서가 아님).
- 없는 키: person['x'] → KeyError / person.get('x') → None
3-3. 집합(set)
3-4. 함수 만들기 기초
파이썬 def로 함수 만드는 법, return, 기본값 매개변수를 설명해줘. start~end 사이 합을 구하는 sum_range 함수 예시도 보여줘.
3-5. [리마인드] f-string · format 고급
1장 % 포맷을 기억하나요? 이제 실무에서 가장 많이 쓰는 f-string을 배웁니다.
👩🏫 선생님 리뷰
- f-string: 문자열 앞 f, 중괄호 안에 변수/표현식
- 이제부터는 f-string을 기본으로 쓰세요
- % 와 format은 예전 코드를 읽을 수 있을 정도만
3-6. 파일 읽고 쓰기
파이썬에서 파일 열기(open), r/w/a 모드, with open 구문, encoding='utf-8' 이 필요한 이유를 설명해줘.
with open('memo.txt', 'w', encoding='utf-8') as f:
f.write('안녕하세요\n')
with open('memo.txt', 'r', encoding='utf-8') as f:
print(f.read())
✅ 3장 확인 퀴즈
답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.
Q1. 튜플의 특징은?
Q2. 없는 키에 dict["x"] 하면?
Q3. 실무에서 권장하는 문자열 포맷은?
4장. 객체지향 · 모듈 · 예외 · 고급 표현
앞 장에서 배운 기능을 더 짧게·더 안전하게 쓰는 표현을 모았습니다.
4-1. 클래스 기초 — 붕어빵 틀
클래스 = 설계도(틀), 인스턴스 = 그 틀로 만든 실제 객체.
파이썬 클래스와 인스턴스 차이, __init__, self가 왜 필요한지 비유와 함께 설명해줘. 간단한 Person 클래스 예시도 보여줘.
👩🏫 선생님 리뷰
- __init__ 은 객체가 만들어질 때 자동 호출됩니다.
- self 는 그 객체 자신입니다.
- 같은 클래스로 만든 객체는 데이터가 서로 독립적입니다.
4-2. 상속과 오버라이딩
4-3. 모듈과 패키지
파이썬 모듈·패키지, import / from import, if __name__ == '__main__' 이 왜 필요한지 설명해줘.
4-4. 예외 처리
4-5. [고급] 리스트 · 딕셔너리 컴프리헨션 고급
2장 for문으로 만들던 리스트를 한 줄로.
4-6. [고급] 람다 · map · filter 고급
4-7. [고급] 데코레이터 기초 고급
파이썬 데코레이터가 무엇인지 초보자용으로 설명해줘. 함수 실행 전후에 '시작'/'끝'을 출력하는 데코레이터 예제와 @ 문법도 알려줘.
4-8. [고급] 비동기 기초 (개념) 고급
파이썬 async/await와 asyncio가 무엇인지, 동기와 비동기 차이를 비유로 설명해줘. asyncio.sleep 간단 예제도 보여줘.
💡 지금은 ‘기다리는 동안 다른 일을 하는 방법’ 정도만 이해하면 됩니다.
4-9. [고급] pathlib · 타입 힌트 고급
pathlib.Path 사용법과 os.path 대비 장점, 함수 타입 힌트(type hint) 간단한 예제를 알려줘.
✅ 4장 확인 퀴즈
답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.
Q1. 클래스에서 객체 자신을 가리키는 이름은?
Q2. 리스트 컴프리헨션은 무엇을 짧게 쓰나?
Q3. 데코레이터 기호는?
5장. AI와 함께하는 자기주도 프로젝트
5-1. AI와 협업하는 3가지 원칙
질문을 잘 한다
목표·제약·예시를 명확히. “코드 짜줘”보다 입출력·예외까지 구체적으로.
그대로 믿지 않는다
반드시 실행해 검증하고, 틀린 부분을 스스로 고칩니다.
내 말로 설명한다
동작 이유를 설명할 수 있어야 진짜 이해입니다.
5-2. 프로젝트 — 데이터 분석 (CSV)
파이썬 csv 모듈로 CSV를 읽고, 헤더를 건너뛰고, 숫자 합계를 구한 뒤 result.csv로 저장하는 예제 코드를 보여줘.
미션 예시
- 주/야간 사고건수 총합
- 부상자·사망자가 가장 많은 달
- 연간 평균 (도전: 유형별 합계를 파일로 저장)
5-3. 프로젝트 — 남이 짠 코드 리뷰
아래 주소록 프로그램 코드를 한 줄씩 역할을 설명해줘. 개선점(예외처리, 함수 분리, with 구문, 저장 형식 등)을 3가지 이상 제안해줘. (코드는 선생님이 준 예제를 붙여 넣으세요)
👩🏫 선생님이 자주 짚는 개선 포인트
- open 후 close 전에 오류 나면 파일이 안 닫힘 → with open 권장
- FileNotFoundError 대비 부족
- 줄 단위 암묵적 규칙보다 JSON 등 구조적 저장이 안전
5-4. 나만의 미니 프로젝트
주제 예시
- 캐릭터/몬스터 텍스트 게임 (클래스 + 파일 로드)
- 주소록·할일 관리 (5-3 개선)
- 설문 CSV 분석
- 실행 시간 재는 데코레이터 활용 타이머
기획 단계 AI 질문 예시
“텍스트 기반 몬스터 배틀을 파이썬 클래스로 설계하려고 해. 필요한 클래스와 속성/메서드 구조만 먼저 제안해줘. 코드는 아직 짜지 마.”