초등학생을 위한 쉽고 재미있는 파이썬 학습!
게임도 만들고, 앱도 만들어보자!
컴퓨터와 대화하는 특별한 언어를 만나보자!
🌟 이걸 배우면 — 컴퓨터에게 명령하는 첫 번째 프로그램을 만들 수 있어!
파이썬은 컴퓨터에게 명령을 내리는 언어야!
우리가 한국어로 서로 대화하듯이, 컴퓨터에게도 특별한 언어로 말을 걸 수 있어. 그 중 하나가 바로 파이썬이야!
파이썬은 다른 프로그래밍 언어보다 읽기 쉽고, 배우기 쉬워서 처음 배우는 사람들에게 딱이야! 🎉
| 분야 | 예시 |
|---|---|
| 🎮 게임 | 마인크래프트 서버, 퍼즐 게임 |
| 🤖 인공지능(AI) | ChatGPT, 이미지 인식 |
| 🌍 웹사이트 | 인스타그램, 유튜브, 넷플릭스 |
| 📊 데이터 분석 | 숫자 분석, 차트 만들기 |
| 🤖 로봇 | 드론 제어, 자율주행 |
| 🎬 영화 | 특수효과(VFX) 제작 |
지금 당장 파이썬을 써보고 싶다면 아래 사이트로 가봐! 설치 없이 바로 쓸 수 있어:
Q1. 파이썬은 무엇이야?
Q2. 파이썬이라는 이름은 어디서 왔을까?
print()로 화면에 글자를 써보자!
🌟 이걸 배우면 — 화면에 나만의 메시지를 마음대로 출력할 수 있어!
print()는 화면에 글자나 숫자를 출력(보여주기)하는 명령어야.
파이썬에서 가장 먼저 배우는 기본 중의 기본이야! 🌟
print("Hello, World!")
글자만 출력하는 게 아니야! 숫자도, 소수도 출력할 수 있어.
print("안녕하세요!") # 글자 출력
print(123) # 숫자 출력
print(3.14) # 소수 출력
print(True) # 참/거짓 출력
print("나의 이름은", "김민준", "이야!")
print("나는", 10, "살이야")
sep로 구분자를, end로 줄 끝을 바꿀 수 있어!
# sep: 값들 사이에 넣을 문자 (기본: 공백)
print("사과", "바나나", "포도", sep=" / ")
# end: 줄 끝에 넣을 문자 (기본: 줄바꿈)
print("안녕", end="! ")
print("나는 파이썬이야!")
f"..."를 사용하면 문자열 안에 변수를 넣을 수 있어! (나중에 더 자세히 배워)
name = "서연"
age = 11
print(f"안녕! 나는 {name}이고, {age}살이야!")
Q1. print("파이썬")을 실행하면 무엇이 출력될까?
Q2. 코드에서 # 기호는 무엇을 의미해?
정보를 저장하고 불러오는 방법을 배워보자!
🌟 이걸 배우면 — 이름, 점수, 나이 같은 정보를 저장하고 사용하는 프로그램을 만들 수 있어!
변수는 정보를 담는 이름 붙은 상자야!
상자에 이름을 붙이고, 그 안에 정보를 넣어두면 나중에 꺼내서 쓸 수 있어.
= 기호로 변수를 만들어. 왼쪽이 이름, 오른쪽이 값이야!
name = "김민준" # 이름 저장
age = 10 # 나이 저장
height = 140.5 # 키 저장
is_student = True # 학생인지 저장
print(name)
print(age)
print(height)
print(is_student)
변수 안에 넣을 수 있는 정보의 종류야!
| 타입 | 이름 | 예시 | 설명 |
|---|---|---|---|
| str | 문자열 | "안녕", "민준" | 글자나 문장 |
| int | 정수 | 10, -5, 100 | 소수점 없는 숫자 |
| float | 소수 | 3.14, 1.5 | 소수점 있는 숫자 |
| bool | 불리언 | True, False | 참(True) 또는 거짓(False) |
# type() 함수로 타입 확인
print(type("안녕")) # <class 'str'>
print(type(10)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
| ✅ 사용 가능 | ❌ 사용 불가 |
|---|---|
| name, age, my_score | 1name (숫자로 시작 불가) |
| score1, total_count | my-score (하이픈 불가) |
| isStudent, bestScore | class, if (예약어 불가) |
score = 0
print("처음 점수:", score) # 0
score = 100
print("바뀐 점수:", score) # 100
score = score + 10 # 현재 값에서 10 더하기
print("최종 점수:", score) # 110
Q1. 다음 중 올바른 변수 이름은?
Q2. age = 10에서 10은 어떤 데이터 타입일까?
파이썬으로 계산기를 만들어보자!
🌟 이걸 배우면 — 덧셈·곱셈을 자동으로 해주는 나만의 계산기를 만들 수 있어!
| 기호 | 의미 | 예시 | 결과 |
|---|---|---|---|
| + | 더하기 | 5 + 3 | 8 |
| - | 빼기 | 10 - 4 | 6 |
| * | 곱하기 | 3 * 4 | 12 |
| / | 나누기 | 10 / 4 | 2.5 |
| // | 몫 (소수 버림) | 10 // 3 | 3 |
| % | 나머지 | 10 % 3 | 1 |
| ** | 제곱 | 2 ** 10 | 1024 |
print(5 + 3) # 8
print(10 - 4) # 6
print(3 * 4) # 12
print(10 / 4) # 2.5
print(10 // 3) # 3 (소수점 버림)
print(10 % 3) # 1 (10 ÷ 3의 나머지)
print(2 ** 10) # 1024 (2의 10제곱)
price = 1500 # 과자 한 개 가격
count = 3 # 개수
total = price * count
print("총 가격:", total, "원")
print(f"과자 {count}개를 사면 {total}원이야!")
input() 함수를 쓰면 사용자에게 직접 값을 받을 수 있어!
name = input("너의 이름은? ")
print("안녕,", name, "!")
# 숫자 입력받기
num1 = int(input("첫 번째 숫자: "))
num2 = int(input("두 번째 숫자: "))
print("합계:", num1 + num2)
str(10) # 숫자 → 문자열: "10"
int("123") # 문자열 → 정수: 123
float("3.14") # 문자열 → 소수: 3.14
int(3.7) # 소수 → 정수: 3 (소수점 아래 버림!)
Q1. 10 % 3의 결과는?
Q2. 2 ** 3의 결과는?
상황에 따라 다른 행동을 해보자!
🌟 이걸 배우면 — 상황에 따라 다르게 반응하는 스마트한 프로그램을 만들 수 있어!
두 값을 비교할 때 쓰는 기호들이야. 결과는 True 또는 False야!
| 기호 | 의미 | 예시 | 결과 |
|---|---|---|---|
| == | 같다 | 5 == 5 | True |
| != | 다르다 | 5 != 3 | True |
| > | 크다 | 7 > 5 | True |
| < | 작다 | 3 < 5 | True |
| >= | 크거나 같다 | 5 >= 5 | True |
| <= | 작거나 같다 | 3 <= 5 | True |
조건이 True일 때만 실행돼!
temperature = 35
if temperature > 30:
print("날씨가 너무 더워요! ☀️")
print("물을 많이 마셔요!")
money = 1000
if money >= 1500:
print("과자를 살 수 있어요! 🍪")
else:
print("돈이 부족해요. 500원 더 필요해요. 😢")
여러 조건을 순서대로 확인할 수 있어!
score = 85
if score >= 90:
print("A 등급! 최고야! ⭐⭐⭐")
elif score >= 80:
print("B 등급! 잘했어! ⭐⭐")
elif score >= 70:
print("C 등급! 조금 더 노력해! ⭐")
else:
print("다음엔 더 잘할 수 있어! 💪")
age = 12
height = 145
# and: 둘 다 True여야 True
if age >= 10 and height >= 140:
print("놀이기구 탈 수 있어요! 🎢")
# or: 하나라도 True면 True
if age >= 15 or height >= 140:
print("어느 하나는 만족해요!")
# not: True면 False, False면 True
is_raining = False
if not is_raining:
print("우산 없어도 돼요! ☀️")
Q1. 5 == 5의 결과는?
Q2. score = 95일 때 아래 코드의 출력은?if score >= 90: print("A 등급")else: print("B 등급")
같은 일을 여러 번 자동으로 해보자!
🌟 이걸 배우면 — 100번 해야 할 일을 코드 3줄로 끝낼 수 있어!
"안녕!"을 100번 출력하려면 print("안녕!")을 100번 써야 할까?
for i in range(5):
print(i, "번째 안녕!")
| 코드 | 범위 |
|---|---|
| range(5) | 0, 1, 2, 3, 4 |
| range(1, 6) | 1, 2, 3, 4, 5 |
| range(0, 10, 2) | 0, 2, 4, 6, 8 (2씩 증가) |
| range(5, 0, -1) | 5, 4, 3, 2, 1 (거꾸로!) |
# 3단 구구단
for i in range(1, 10):
print(f"3 × {i} = {3 * i}")
조건이 True인 동안 계속 반복해!
count = 1
while count <= 5:
print(count, "번째!")
count += 1 # count = count + 1 과 같아!
# break: 반복문 즉시 종료
for i in range(10):
if i == 5:
break # 5에서 멈춤!
print(i, end=" ")
# 출력: 0 1 2 3 4
print() # 줄바꿈
# continue: 현재 번만 건너뜀
for i in range(10):
if i % 2 == 0:
continue # 짝수는 건너뜀
print(i, end=" ")
# 출력: 1 3 5 7 9
Q1. range(1, 5)에 포함되는 숫자는?
Q2. for i in range(3): print(i)의 출력 결과는?
나만의 명령어를 직접 만들어보자!
🌟 이걸 배우면 — 자주 쓰는 기능을 나만의 명령어로 만들어 언제든 재사용할 수 있어!
함수는 특정 기능을 하는 코드 묶음이야!
우리가 계속 써온 print()도 파이썬이 미리 만들어준 함수야. 우리도 직접 만들 수 있어!
# 함수 정의 (def 사용)
def greet():
print("안녕하세요! 👋")
print("파이썬 세계에 오신 걸 환영해요!")
# 함수 호출 (사용)
greet()
greet() # 또 호출!
함수에 값을 전달할 수 있어!
def greet(name):
print(f"안녕, {name}! 반가워! 😊")
greet("민준")
greet("서연")
greet("도현")
def add(a, b):
result = a + b
return result # 결과를 돌려줘!
answer = add(5, 3) # 반환값을 변수에 저장
print(answer) # 8
print(add(10, 20)) # 30
print(add(100, 200)) # 300
def introduce(name, age, hobby):
print(f"이름: {name}")
print(f"나이: {age}살")
print(f"취미: {hobby}")
print("---")
introduce("김민준", 11, "축구 ⚽")
introduce("박서연", 10, "그림 그리기 🎨")
numbers = [5, 2, 8, 1, 9, 3]
print(len(numbers)) # 6 (개수)
print(max(numbers)) # 9 (최대값)
print(min(numbers)) # 1 (최소값)
print(sum(numbers)) # 28 (합계)
print(abs(-10)) # 10 (절대값)
print(round(3.7)) # 4 (반올림)
Q1. 함수를 만들 때 사용하는 키워드는?
Q2. 다음 코드에서 add(3, 4)의 결과는?def add(a, b): return a + b
여러 개의 값을 하나로 모아보자!
🌟 이걸 배우면 — 반 친구들 이름이나 점수를 한꺼번에 관리하는 프로그램을 만들 수 있어!
리스트는 여러 개의 값을 순서대로 담는 큰 상자야!
변수 하나에 여러 값을 넣을 수 있어. 마치 서랍처럼!
fruits = ["사과", "바나나", "딸기", "포도"]
scores = [90, 85, 78, 92, 88]
mixed = ["민준", 11, True, 3.14] # 다른 타입도 넣을 수 있어!
print(fruits)
print(scores)
리스트의 각 항목은 번호(인덱스)로 접근할 수 있어. 0부터 시작해!
fruits = ["사과", "바나나", "딸기", "포도"]
# 인덱스: 0 1 2 3
print(fruits[0]) # 사과 (첫 번째)
print(fruits[1]) # 바나나 (두 번째)
print(fruits[-1]) # 포도 (마지막)
print(fruits[-2]) # 딸기 (뒤에서 두 번째)
fruits = ["사과", "바나나"]
fruits.append("딸기") # 끝에 추가
print(fruits) # ['사과', '바나나', '딸기']
fruits.insert(1, "포도") # 1번 위치에 삽입
print(fruits) # ['사과', '포도', '바나나', '딸기']
fruits.remove("바나나") # 바나나 삭제
print(fruits) # ['사과', '포도', '딸기']
print(len(fruits)) # 3 (개수)
fruits.sort() # 정렬
print(fruits) # ['딸기', '사과', '포도']
fruits = ["사과", "바나나", "딸기", "포도"]
for fruit in fruits:
print(fruit, "맛있어! 😋")
# 인덱스와 함께 출력
for i, fruit in enumerate(fruits):
print(f"{i+1}번째: {fruit}")
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined) # [1, 2, 3, 4, 5, 6]
repeated = [0] * 5
print(repeated) # [0, 0, 0, 0, 0]
Q1. fruits = ["사과", "바나나", "딸기"]에서 fruits[1]은?
Q2. 리스트 끝에 새 항목을 추가하는 함수는?
배운 것을 활용해서 재미있는 프로그램을 만들어보자!
🌟 이걸 배우면 — 별 그리기부터 숫자 맞추기, 가위바위보 게임까지 진짜 프로그램을 완성할 수 있어!
반복문을 활용해서 별로 삼각형을 그려보자!
size = 5
for i in range(1, size + 1):
print("⭐" * i)
range(size, 0, -1) 사용)number = int(input("몇 단을 볼까요? "))
print(f"\n{'='*15}")
print(f" {number}단 구구단")
print(f"{'='*15}")
for i in range(1, 10):
print(f" {number} × {i:1} = {number * i:2}")
random 모듈을 사용해서 랜덤 숫자를 만들 수 있어!
import random # random 모듈 불러오기
secret = random.randint(1, 10) # 1~10 사이 랜덤 숫자
attempts = 0
print("🎮 숫자 맞추기 게임!")
print("1부터 10 사이의 숫자를 맞춰봐!\n")
while True:
guess = int(input("숫자를 입력해: "))
attempts += 1
if guess < secret:
print("더 큰 숫자야! ⬆️")
elif guess > secret:
print("더 작은 숫자야! ⬇️")
else:
print(f"\n🎉 정답! {attempts}번 만에 맞췄어!")
break
리스트와 반복문을 활용한 성적 계산기야!
subjects = ["국어", "수학", "영어", "과학", "사회"]
scores = []
print("=== 📊 성적 계산기 ===\n")
for subject in subjects:
score = int(input(f"{subject} 점수: "))
scores.append(score)
total = sum(scores)
average = total / len(scores)
print(f"\n{'='*20}")
print(f"총점: {total}점")
print(f"평균: {average:.1f}점")
print(f"{'='*20}")
if average >= 90:
print("🏆 우수상! 최고야!")
elif average >= 80:
print("👍 잘했어! 계속 노력해!")
elif average >= 70:
print("📚 조금 더 노력해봐!")
else:
print("💪 다음엔 더 잘할 수 있어!")
def calculator(a, op, b):
if op == "+":
return a + b
elif op == "-":
return a - b
elif op == "*":
return a * b
elif op == "/":
if b == 0:
return "0으로 나눌 수 없어요!"
return a / b
else:
return "알 수 없는 연산자예요!"
# 테스트
print(calculator(10, "+", 5)) # 15
print(calculator(10, "-", 3)) # 7
print(calculator(4, "*", 6)) # 24
print(calculator(15, "/", 3)) # 5.0
print(calculator(10, "/", 0)) # 0으로 나눌 수 없어요!
컴퓨터와 가위바위보 대결! 먼저 3번 이기면 승리야!
import random
choices = ["가위", "바위", "보"]
win_count = 0
lose_count = 0
draw_count = 0
print("🎮 가위바위보 게임!")
print("먼저 3번 이기면 승리!\n")
while True:
print("1:가위 2:바위 3:보 0:그만")
user_input = int(input("선택: "))
if user_input == 0:
print("게임 종료!")
break
if user_input not in [1, 2, 3]:
print("1, 2, 3 중에서 선택해줘!\n")
continue
user = choices[user_input - 1]
computer = random.choice(choices)
print(f"\n🙋 나: {user}")
print(f"🤖 컴퓨터: {computer}")
if user == computer:
print("😐 비겼어!")
draw_count += 1
elif (user == "가위" and computer == "보") or \
(user == "바위" and computer == "가위") or \
(user == "보" and computer == "바위"):
print("🎉 이겼어!")
win_count += 1
else:
print("😢 졌어...")
lose_count += 1
print(f"전적: {win_count}승 {lose_count}패 {draw_count}무\n")
if win_count == 3:
print("🏆 3번 이겼어! 최고야!")
break
elif lose_count == 3:
print("💪 3번 졌어. 다시 도전해봐!")
break
print(f"\n=== 최종 결과 ===")
print(f"{win_count}승 {lose_count}패 {draw_count}무")
Q1. 별을 5개 한 줄에 출력하는 가장 간단한 코드는?
Q2. random 모듈을 불러오는 방법은?