🐍 파이썬, 질문하며 배우기

학생이 먼저 LLM에게 묻고 → 직접 실행하고 → 선생님이 정리합니다.
중·고등 · 구글 미트 화상 수업 · 브라우저에서 코드 실행 (파이참 불필요)

👤 님 · 이 강의 세션에 연결되어 진도·퀴즈가 자동 저장됩니다
⚠️ edu-pro 「내 수업」을 통해 접속하면 진도·퀴즈가 저장됩니다 (지금은 게스트 모드)

이 수업은 이렇게 진행돼요

교안에 정답이 바로 적혀 있지 않습니다. AI에게 물어보고, 아래 실행기에서 확인한 뒤, 화상 수업에서 선생님과 핵심만 정리합니다.

🤖

STEP 1. 질문하기

교안 질문을 챗봇에 복사해 물어봅니다. 수업 전 선행 권장.

🔍

STEP 2. 직접 해보기

코드를 베끼지 말고 실행기에서 직접 타이핑·실행합니다.

👩‍🏫

STEP 3. 선생님 리뷰

구글 미트에서 핵심 문법과 AI가 틀린 부분을 함께 정리합니다.

학습 설계
· 앞쪽: 쉬운·고전적 표현 (%, for, def, open)
· 뒤쪽: 같은 기능의 고급 표현을 모아 리마인드 (f-string, 컴프리헨션, 람다, 데코레이터, async…)
⚠️ AI는 가끔 틀린 답을 자신 있게 말합니다. “AI가 그렇다고 했으니 맞다”가 아니라, 직접 실행해서 확인하는 것이 목표입니다.

전체 커리큘럼

주제핵심 + 뒤에 모을 고급 표현
1파이썬과 첫 만남변수·숫자·문자열·% 포맷·인덱싱·리스트
2제어문과 입출력연산자·if·for/while·입출력
3자료구조·함수·파일튜플·dict·set·함수·파일 · f-string 리마인드
4OOP · 고급 표현클래스·상속·모듈·예외 · 컴프리헨션·람다·데코레이터·async
5자기주도 프로젝트데이터 분석·코드 리뷰·미니 프로젝트

1장. 파이썬과 첫 만남

설치·IDE 없이, 이 페이지의 실행기만으로 시작합니다.

1-1. 파이썬은 대체 왜 배울까?

🤖 AI에게 물어보자
파이썬이 어떤 프로그래밍 언어인지, 자바·C와 비교해 어떤 점이 다른지 설명해줘. 파이썬으로 만들 수 있는 것 3가지도 예시로 알려줘.

💡 ‘왜 초보자에게 파이썬을 추천하는지’ 한 문장으로 정리해 보세요.

직접 해보기

  1. 아래 실행기에서 print 문을 실행해 보세요.
  2. PRINT (대문자)로 바꾸면 어떻게 되는지 확인하세요.

퀴즈

다음 중 오류가 나는 것은?
print(1) / PRINT(1) / print(1+1)
→ 정답: PRINT(1) (대소문자 구분)

🐍 Python 실행기 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰 · 핵심 정리
  1. 파이썬은 인터프리터 언어라 한 줄씩 바로 실행할 수 있습니다.
  2. 들여쓰기가 문법의 일부입니다 (다른 언어의 { } 역할).
  3. 이름은 대소문자를 구분합니다 (print ≠ PRINT).
AI가 파이썬 2 문법(괄호 없는 print)을 섞어 줄 수 있습니다. 우리는 항상 print()를 씁니다.

1-2. 숫자와 변수

🤖 AI에게 물어보자
파이썬 산술 연산자 +, -, *, /, %, //, ** 의 의미를 예시와 함께 설명해줘. 특히 / 와 // 차이를 알려줘. 변수 이름 규칙도 설명해줘.
🐍 숫자 · 연산 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. /는 실수, //는 몫(정수 나눗셈)입니다.
  2. 변수 이름은 숫자로 시작하거나 예약어(class, def, if…)를 쓸 수 없습니다.
  3. 타입을 미리 적지 않습니다. a = 10 이면 정수로 취급됩니다.

1-3. 문자열과 인덱싱 / 슬라이싱

🤖 AI에게 물어보자
파이썬 문자열을 만드는 방법(작은따옴표, 큰따옴표, 삼중따옴표)과 인덱싱·슬라이싱을 a = 'I love Python' 예시로 설명해줘.
🐍 문자열 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. 인덱스는 0부터, 음수는 뒤에서부터입니다.
  2. 슬라이싱 a[시작:끝]에서 끝은 포함되지 않습니다.
  3. 문자열은 immutable — 인덱스로 글자를 바꿀 수 없습니다.
AI가 “문자열도 인덱스로 수정 가능하다”고 얼버무릴 수 있습니다. TypeError를 직접 확인하세요.

1-4. 문자열 꾸미기 — 먼저 % 포맷팅 기초

지금은 고전적인 % 방식만 익힙니다. f-string은 3장에서 다시 나옵니다.

🤖 AI에게 물어보자
파이썬 문자열 포맷팅 중 % 연산자만 자세히 설명해줘. %d, %s, %f, %% 의미와 hour=9, minute=20 으로 '나는 9시 20분에 학교에 갑니다.' 출력 예시를 보여줘. f-string은 나중에 배울 예정이니 지금은 %만 설명해줘.
🐍 % 포맷팅 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. %d 정수, %s 문자열, %f 실수, %% 는 % 글자 자체
  2. 여러 값은 % (값1, 값2) 튜플로 전달
  3. f-string은 3장 리마인드에서 다룹니다

1-5. 리스트 기초와 True / False

🤖 AI에게 물어보자
파이썬 리스트가 무엇인지 설명해줘. 빈 문자열, 빈 리스트, 숫자 0이 조건문에서 False로 취급되는 이유도 예시와 함께 알려줘.
🐍 리스트 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. 리스트는 [ ] 로 순서 있는 값을 담습니다.
  2. 빈 값·0·None 은 False, 그 외는 대체로 True
  3. 리스트는 mutable — 인덱스로 값을 바꿀 수 있습니다 (문자열과 다름)

✅ 1장 확인 퀴즈

답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.

📝 1장 확인 퀴즈

Q1. 빈 리스트 [] 를 조건문에 넣으면?

Q2. 만든 뒤 요소를 바꿀 수 있는(mutable) 것은?

Q3. printPRINT 는 같은가?

2장. 제어문과 입출력

조건을 나누고, 반복하고, 입력을 받습니다. 나중에 컴프리헨션으로 짧게 쓰는 법은 4장에서.

2-1. 비교 / 논리 연산자

🤖 AI에게 물어보자
파이썬 비교 연산자(==, !=, >, <)와 논리 연산자(and, or, not), in / not in 을 예시로 설명해줘. == 와 is 의 차이도 알려줘.
🐍 연산자 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

2-2. 조건문 if / elif / else

🤖 AI에게 물어보자
파이썬 if, elif, else 문법을 설명해줘. 점수 jumsu가 90 이상이면 '잘했어요', 70 이상이면 '잘할 수 있어요', 아니면 '노력하세요'를 출력하는 코드를 짜줘.

💡 AI 코드를 그대로 붙이지 말고, 들여쓰기를 직접 타이핑해 보세요.

🐍 조건문 실습 (input 대신 변수 사용) ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. 조건 끝에는 반드시 콜론 :
  2. 들여쓰기로 블록을 구분합니다
  3. elif는 위에서부터 순서대로 검사합니다

2-3. 반복문 for / while 기초

지금은 for/while을 직접 씁니다. 한 줄 컴프리헨션은 4장에서.

🤖 AI에게 물어보자
파이썬 for와 while 차이, range() 의미, break와 continue 역할을 예시로 설명해줘.
🐍 반복문 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

2-4. 입출력 다듬기

🤖 AI에게 물어보자
print()의 end, sep 옵션과, input() 결과가 항상 문자열인 이유를 예시로 설명해줘.
🐍 print 옵션 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

✅ 2장 확인 퀴즈

답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.

📝 2장 확인 퀴즈

Q1. 조건문 끝에는 무엇이 필요한가?

Q2. break 의 역할은?

Q3. input() 결과의 기본 타입은?

3장. 자료구조 심화 · 함수 · 파일

3-1. 튜플

🤖 AI에게 물어보자
파이썬 튜플이 리스트와 어떻게 다른지, 왜 값을 못 바꾸는지, 언제 쓰면 좋은지 설명해줘.
🐍 튜플 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

3-2. 딕셔너리

🤖 AI에게 물어보자
파이썬 딕셔너리의 key/value, keys/values/items, get 사용법을 예시로 설명해줘.
🐍 딕셔너리 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. 딕셔너리는 key로 값을 찾습니다 (순서가 아님).
  2. 없는 키: person['x'] → KeyError / person.get('x') → None

3-3. 집합(set)

🐍 집합 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

3-4. 함수 만들기 기초

🤖 AI에게 물어보자
파이썬 def로 함수 만드는 법, return, 기본값 매개변수를 설명해줘. start~end 사이 합을 구하는 sum_range 함수 예시도 보여줘.
🐍 함수 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

3-5. [리마인드] f-string · format 고급

1장 % 포맷을 기억하나요? 이제 실무에서 가장 많이 쓰는 f-string을 배웁니다.

🐍 세 가지 포맷 비교 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. f-string: 문자열 앞 f, 중괄호 안에 변수/표현식
  2. 이제부터는 f-string을 기본으로 쓰세요
  3. % 와 format은 예전 코드를 읽을 수 있을 정도만

3-6. 파일 읽고 쓰기

🤖 AI에게 물어보자
파이썬에서 파일 열기(open), r/w/a 모드, with open 구문, encoding='utf-8' 이 필요한 이유를 설명해줘.
브라우저 실행기에서는 실제 파일 시스템이 제한됩니다. 문법은 AI에게 물어보고, 로컬(파이참·VS Code)에서 파일을 만들어 연습하세요. 4장의 pathlib도 참고.
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장 확인 퀴즈

답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.

📝 3장 확인 퀴즈

Q1. 튜플의 특징은?

Q2. 없는 키에 dict["x"] 하면?

Q3. 실무에서 권장하는 문자열 포맷은?

4장. 객체지향 · 모듈 · 예외 · 고급 표현

앞 장에서 배운 기능을 더 짧게·더 안전하게 쓰는 표현을 모았습니다.

4-1. 클래스 기초 — 붕어빵 틀

클래스 = 설계도(틀), 인스턴스 = 그 틀로 만든 실제 객체.

🤖 AI에게 물어보자
파이썬 클래스와 인스턴스 차이, __init__, self가 왜 필요한지 비유와 함께 설명해줘. 간단한 Person 클래스 예시도 보여줘.
🐍 클래스 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다
👩‍🏫 선생님 리뷰
  1. __init__ 은 객체가 만들어질 때 자동 호출됩니다.
  2. self 는 그 객체 자신입니다.
  3. 같은 클래스로 만든 객체는 데이터가 서로 독립적입니다.

4-2. 상속과 오버라이딩

🐍 상속 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-3. 모듈과 패키지

🤖 AI에게 물어보자
파이썬 모듈·패키지, import / from import, if __name__ == '__main__' 이 왜 필요한지 설명해줘.
🐍 표준 모듈 맛보기 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-4. 예외 처리

🐍 try / except 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-5. [고급] 리스트 · 딕셔너리 컴프리헨션 고급

2장 for문으로 만들던 리스트를 한 줄로.

🐍 for vs 컴프리헨션 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-6. [고급] 람다 · map · filter 고급

🐍 람다 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-7. [고급] 데코레이터 기초 고급

🤖 AI에게 물어보자
파이썬 데코레이터가 무엇인지 초보자용으로 설명해줘. 함수 실행 전후에 '시작'/'끝'을 출력하는 데코레이터 예제와 @ 문법도 알려줘.
🐍 데코레이터 실습 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

4-8. [고급] 비동기 기초 (개념) 고급

🤖 AI에게 물어보자
파이썬 async/await와 asyncio가 무엇인지, 동기와 비동기 차이를 비유로 설명해줘. asyncio.sleep 간단 예제도 보여줘.

💡 지금은 ‘기다리는 동안 다른 일을 하는 방법’ 정도만 이해하면 됩니다.

브라우저 Pyodide 환경에서는 asyncio 제약이 있을 수 있습니다. 개념은 AI에게 물어보고, 로컬에서 실험해 보세요.

4-9. [고급] pathlib · 타입 힌트 고급

🤖 AI에게 물어보자
pathlib.Path 사용법과 os.path 대비 장점, 함수 타입 힌트(type hint) 간단한 예제를 알려줘.
🐍 타입 힌트 맛보기 ○ 로딩 중…
실행 결과가 여기에 표시됩니다

✅ 4장 확인 퀴즈

답을 고르고 저장하면, 같은 세션으로 다시 접속했을 때 복원됩니다. 관리자는 학생별 진도에서 확인합니다.

📝 4장 확인 퀴즈

Q1. 클래스에서 객체 자신을 가리키는 이름은?

Q2. 리스트 컴프리헨션은 무엇을 짧게 쓰나?

Q3. 데코레이터 기호는?

5장. AI와 함께하는 자기주도 프로젝트

5-1. AI와 협업하는 3가지 원칙

1

질문을 잘 한다

목표·제약·예시를 명확히. “코드 짜줘”보다 입출력·예외까지 구체적으로.

2

그대로 믿지 않는다

반드시 실행해 검증하고, 틀린 부분을 스스로 고칩니다.

3

내 말로 설명한다

동작 이유를 설명할 수 있어야 진짜 이해입니다.

5-2. 프로젝트 — 데이터 분석 (CSV)

🤖 AI에게 물어보자
파이썬 csv 모듈로 CSV를 읽고, 헤더를 건너뛰고, 숫자 합계를 구한 뒤 result.csv로 저장하는 예제 코드를 보여줘.

미션 예시

  • 주/야간 사고건수 총합
  • 부상자·사망자가 가장 많은 달
  • 연간 평균 (도전: 유형별 합계를 파일로 저장)

5-3. 프로젝트 — 남이 짠 코드 리뷰

🤖 AI에게 물어보자
아래 주소록 프로그램 코드를 한 줄씩 역할을 설명해줘. 개선점(예외처리, 함수 분리, with 구문, 저장 형식 등)을 3가지 이상 제안해줘. (코드는 선생님이 준 예제를 붙여 넣으세요)
👩‍🏫 선생님이 자주 짚는 개선 포인트
  1. open 후 close 전에 오류 나면 파일이 안 닫힘 → with open 권장
  2. FileNotFoundError 대비 부족
  3. 줄 단위 암묵적 규칙보다 JSON 등 구조적 저장이 안전

5-4. 나만의 미니 프로젝트

주제 예시

  • 캐릭터/몬스터 텍스트 게임 (클래스 + 파일 로드)
  • 주소록·할일 관리 (5-3 개선)
  • 설문 CSV 분석
  • 실행 시간 재는 데코레이터 활용 타이머

기획 단계 AI 질문 예시

“텍스트 기반 몬스터 배틀을 파이썬 클래스로 설계하려고 해. 필요한 클래스와 속성/메서드 구조만 먼저 제안해줘. 코드는 아직 짜지 마.”

마무리 미션: 오늘 배운 것 중 AI가 틀리거나 헷갈리게 알려준 부분 1가지를 내 말로 다시 설명해 선생님에게 보여 주세요.