학습 안내
이 HTML은 《어린 왕자》 줄거리 문장 50개를 따라가며 파이썬 문법을 익히도록 구성했습니다. 앞부분은 변수·출력·문자열 같은 기초 문법, 중간은 리스트·딕셔너리·반복문·함수, 뒷부분은 클래스·예외 처리·파일 저장·데이터 처리·제너레이터·데코레이터 등 응용·심화 문법으로 이어집니다.
이 HTML은 《어린 왕자》 줄거리 문장 50개를 따라가며 파이썬 문법을 익히도록 구성했습니다. 앞부분은 변수·출력·문자열 같은 기초 문법, 중간은 리스트·딕셔너리·반복문·함수, 뒷부분은 클래스·예외 처리·파일 저장·데이터 처리·제너레이터·데코레이터 등 응용·심화 문법으로 이어집니다.
print()와 문자열 출력
어린 시절 비행사는 코끼리를 삼킨 보아뱀 그림을 그렸지만 어른들은 모자로만 보았다.
As a child, the pilot drew a boa constrictor swallowing an elephant, but adults saw only a hat.
문법 포인트: print()와 문자열 출력
예시 코드
scene = "코끼리를 삼킨 보아뱀"
adults = "모자"
print("비행사가 그린 그림:", scene)
print("어른들이 본 그림:", adults)
예상 출력
비행사가 그린 그림: 코끼리를 삼킨 보아뱀
어른들이 본 그림: 모자
변수 값 바꾸기
어른들의 이해 부족에 실망한 그는 화가의 꿈을 포기하고 비행사가 되었다.
Disappointed by adults' lack of understanding, he gave up his dream of becoming an artist and became a pilot.
문법 포인트: 변수 값 바꾸기
예시 코드
dream = "화가"
job = "비행사"
print("처음 꿈:", dream)
dream = job
print("나중 직업:", dream)
예상 출력
처음 꿈: 화가
나중 직업: 비행사
f-string 기초
어느 날 비행기는 사하라 사막에 불시착하였다.
One day, his airplane crash-landed in the Sahara Desert.
문법 포인트: f-string 기초
예시 코드
place = "사하라 사막"
vehicle = "비행기"
print(f"{vehicle}가 {place}에 불시착했습니다.")
예상 출력
비행기가 사하라 사막에 불시착했습니다.
숫자와 산술 연산
그는 물도 부족한 상태에서 홀로 비행기를 수리해야 했다.
With very little water, he had to repair the airplane alone.
문법 포인트: 숫자와 산술 연산
예시 코드
water = 3
needed = 10
shortage = needed - water
print("필요한 물:", needed)
print("부족한 물:", shortage)
예상 출력
필요한 물: 10
부족한 물: 7
input() 형태 이해
다음 날 아침 작은 소년이 나타나 양 한 마리를 그려 달라고 부탁했다.
The next morning, a little boy appeared and asked him to draw a sheep.
문법 포인트: input() 형태 이해
예시 코드
request = "양 한 마리를 그려 주세요"
print("어린 왕자의 부탁:", request)
# 실제 입력을 받을 때는 아래처럼 씁니다.
# request = input("무엇을 그려 줄까요? ")
예상 출력
어린 왕자의 부탁: 양 한 마리를 그려 주세요
비교 연산자
그 소년이 바로 어린 왕자였다.
That little boy was the Little Prince.
문법 포인트: 비교 연산자
예시 코드
boy = "어린 왕자"
print(boy == "어린 왕자")
print(boy != "왕")
예상 출력
True
True
문자열 인덱싱
어린 왕자는 B-612라는 작은 별에서 왔다고 말했다.
The Little Prince said he came from a small asteroid called B-612.
문법 포인트: 문자열 인덱싱
예시 코드
planet = "B-612"
print(planet[0])
print(planet[-1])
예상 출력
B
2
리스트 생성
그의 별에는 세 개의 화산과 한 송이의 장미가 있었다.
His planet contained three volcanoes and a single rose.
문법 포인트: 리스트 생성
예시 코드
things = ["화산", "화산", "화산", "장미"]
print(things)
print("개수:", len(things))
예상 출력
['화산', '화산', '화산', '장미']
개수: 4
리스트에서 값 제거
그는 매일 바오밥나무 싹을 뽑으며 별을 깨끗하게 관리했다.
He pulled up baobab sprouts every day to keep his planet clean.
문법 포인트: 리스트에서 값 제거
예시 코드
sprouts = ["바오밥", "풀", "바오밥", "꽃"]
sprouts.remove("바오밥")
print(sprouts)
예상 출력
['풀', '바오밥', '꽃']
딕셔너리 생성
어느 날 아름다운 장미꽃이 그의 별에 피어났다.
One day, a beautiful rose bloomed on his planet.
문법 포인트: 딕셔너리 생성
예시 코드
rose = {"이름": "장미", "상태": "피어남", "색": "아름다움"}
print(rose["이름"])
print(rose["상태"])
예상 출력
장미
피어남
불 자료형
어린 왕자는 장미를 진심으로 사랑하게 되었다.
The Little Prince came to love the rose sincerely.
문법 포인트: 불 자료형
예시 코드
love_rose = True
miss_rose = False
print("장미를 사랑하나요?", love_rose)
print("처음부터 그리워했나요?", miss_rose)
예상 출력
장미를 사랑하나요? True
처음부터 그리워했나요? False
문자열 메서드
하지만 장미는 자존심이 강하고 까다로운 성격을 가지고 있었다.
However, the rose was proud and demanding.
문법 포인트: 문자열 메서드
예시 코드
personality = "proud and demanding"
print(personality.upper())
print(personality.replace("demanding", "delicate"))
예상 출력
PROUD AND DEMANDING
proud and delicate
조건문 if
어린 왕자는 장미의 진심을 이해하지 못한 채 별을 떠났다.
Unable to understand her true feelings, he left his planet.
문법 포인트: 조건문 if
예시 코드
understand = False
if not understand:
print("어린 왕자는 별을 떠납니다.")
예상 출력
어린 왕자는 별을 떠납니다.
for 반복문
그는 여러 행성을 여행하며 다양한 어른들을 만났다.
He traveled to various planets and met many different adults.
문법 포인트: for 반복문
예시 코드
planets = ["첫 번째 별", "두 번째 별", "세 번째 별"]
for p in planets:
print(p, "방문")
예상 출력
첫 번째 별 방문
두 번째 별 방문
세 번째 별 방문
딕셔너리 값 접근
첫 번째 행성에는 자신을 모든 것의 왕이라 여기는 왕이 살고 있었다.
On the first planet lived a king who believed he ruled everything.
문법 포인트: 딕셔너리 값 접근
예시 코드
adult = {"행성": 1, "인물": "왕", "특징": "명령"}
print(adult["인물"])
print(adult["특징"])
예상 출력
왕
명령
if-else
왕은 신하도 없으면서 명령만 내리려 했다.
The king tried to give orders despite having no subjects.
문법 포인트: if-else
예시 코드
subjects = 0
if subjects > 0:
print("명령을 내릴 수 있습니다.")
else:
print("들을 신하가 없습니다.")
예상 출력
들을 신하가 없습니다.
리스트 append
두 번째 행성에는 칭찬만 받고 싶어 하는 허영쟁이가 살고 있었다.
On the second planet lived a vain man who wanted only admiration.
문법 포인트: 리스트 append
예시 코드
praises = []
praises.append("멋집니다")
praises.append("훌륭합니다")
print(praises)
예상 출력
['멋집니다', '훌륭합니다']
all() 함수
허영쟁이는 모든 사람이 자신을 존경한다고 믿었다.
The vain man believed everyone admired him.
문법 포인트: all() 함수
예시 코드
admiration = [True, True, False]
print("모두 존경하나요?", all(admiration))
print("한 명이라도 존경하나요?", any(admiration))
예상 출력
모두 존경하나요? False
한 명이라도 존경하나요? True
while 반복문
세 번째 행성에는 술주정뱅이가 살고 있었다.
On the third planet lived a drunkard.
문법 포인트: while 반복문
예시 코드
shame = 3
while shame > 0:
print("부끄러움 단계:", shame)
shame -= 1
예상 출력
부끄러움 단계: 3
부끄러움 단계: 2
부끄러움 단계: 1
순환 구조 표현
그는 술을 마시는 것이 부끄러워서 술을 마신다고 말했다.
He said he drank because he was ashamed of drinking.
문법 포인트: 순환 구조 표현
예시 코드
reason = "부끄러움"
action = "마심"
for i in range(3):
print(i+1, reason, "때문에", action)
예상 출력
1 부끄러움 때문에 마심
2 부끄러움 때문에 마심
3 부끄러움 때문에 마심
range와 합계
네 번째 행성에는 사업가가 살고 있었다.
On the fourth planet lived a businessman.
문법 포인트: range와 합계
예시 코드
stars = range(1, 6)
total = sum(stars)
print("센 별의 합:", total)
예상 출력
센 별의 합: 15
집합 set
그는 별들을 자신의 소유라고 주장하며 숫자만 세고 있었다.
He claimed ownership of the stars and spent his time counting them.
문법 포인트: 집합 set
예시 코드
claimed = {"별1", "별2", "별3", "별1"}
print(claimed)
print("소유 주장 개수:", len(claimed))
예상 출력
{'별3', '별2', '별1'}
소유 주장 개수: 3
함수 정의
다섯 번째 행성에는 점등인이 살고 있었다.
On the fifth planet lived a lamplighter.
문법 포인트: 함수 정의
예시 코드
def light_lamp():
return "가로등을 켭니다"
print(light_lamp())
예상 출력
가로등을 켭니다
함수와 반복
그는 쉴 틈 없이 가로등을 켜고 끄는 일을 반복했다.
He endlessly turned a lamp on and off without rest.
문법 포인트: 함수와 반복
예시 코드
def switch_lamp(state):
return "켜기" if state else "끄기"
for state in [True, False, True, False]:
print(switch_lamp(state))
예상 출력
켜기
끄기
켜기
끄기
max와 key
어린 왕자는 점등인을 가장 훌륭한 어른이라고 생각했다.
The Little Prince considered the lamplighter the most admirable adult.
문법 포인트: max와 key
예시 코드
adults = {"왕": 1, "허영쟁이": 1, "점등인": 5}
best = max(adults, key=adults.get)
print("가장 훌륭한 어른:", best)
예상 출력
가장 훌륭한 어른: 점등인
튜플
여섯 번째 행성에는 지리학자가 살고 있었다.
On the sixth planet lived a geographer.
문법 포인트: 튜플
예시 코드
location = (6, "지리학자", "책상")
print(location[0])
print(location[1])
예상 출력
6
지리학자
논리 연산
그는 세상을 연구했지만 직접 탐험하지는 않았다.
He studied the world but never explored it himself.
문법 포인트: 논리 연산
예시 코드
study = True
explore = False
print(study and explore)
print(study or explore)
예상 출력
False
True
함수 매개변수
지리학자는 어린 왕자에게 지구를 방문해 보라고 권했다.
The geographer recommended that the Little Prince visit Earth.
문법 포인트: 함수 매개변수
예시 코드
def recommend(place):
return f"{place}를 방문해 보세요."
print(recommend("지구"))
예상 출력
지구를 방문해 보세요.
문자열 포맷
어린 왕자는 마침내 지구에 도착했다.
The Little Prince finally arrived on Earth.
문법 포인트: 문자열 포맷
예시 코드
traveler = "어린 왕자"
destination = "지구"
print("{}는 {}에 도착했습니다.".format(traveler, destination))
예상 출력
어린 왕자는 지구에 도착했습니다.
리스트 컴프리헨션
지구에서 그는 신비로운 뱀을 만났다.
On Earth, he met a mysterious snake.
문법 포인트: 리스트 컴프리헨션
예시 코드
animals = ["여우", "뱀", "양"]
found = [a for a in animals if a == "뱀"]
print(found)
예상 출력
['뱀']
return 사용
뱀은 자신이 사람을 원래 있던 곳으로 돌려보낼 수 있다고 말했다.
The snake said it could send people back to where they came from.
문법 포인트: return 사용
예시 코드
def send_back(home):
return home
print("돌아갈 곳:", send_back("B-612"))
예상 출력
돌아갈 곳: B-612
문자열 곱셈
어린 왕자는 장미가 가득한 정원을 발견했다.
The Little Prince discovered a garden full of roses.
문법 포인트: 문자열 곱셈
예시 코드
rose = "🌹"
garden = rose * 10
print(garden)
예상 출력
🌹🌹🌹🌹🌹🌹🌹🌹🌹🌹
count 메서드
그는 자신의 장미가 유일한 존재가 아니라는 사실에 슬퍼했다.
He was saddened to learn that his rose was not unique.
문법 포인트: count 메서드
예시 코드
garden = ["장미", "장미", "장미"]
print("장미 수:", garden.count("장미"))
print("유일한가?", garden.count("장미") == 1)
예상 출력
장미 수: 3
유일한가? False
딕셔너리 추가
그때 여우가 나타나 친구가 되어 달라고 부탁했다.
Then a fox appeared and asked him to become friends.
문법 포인트: 딕셔너리 추가
예시 코드
friends = {}
friends["여우"] = "친구가 되고 싶음"
print(friends)
예상 출력
{'여우': '친구가 되고 싶음'}
함수 기본값
여우는 길들인다는 것은 서로에게 특별한 존재가 되는 것이라고 설명했다.
The fox explained that taming means becoming special to one another.
문법 포인트: 함수 기본값
예시 코드
def tame(name, relation="특별한 존재"):
return f"{name}: {relation}"
print(tame("여우"))
예상 출력
여우: 특별한 존재
누적 합계
어린 왕자는 여우와 시간을 보내며 진정한 우정의 의미를 배웠다.
The Little Prince spent time with the fox and learned the meaning of true friendship.
문법 포인트: 누적 합계
예시 코드
days = [1, 1, 1, 1, 1]
time = 0
for d in days:
time += d
print("함께 보낸 날:", time)
예상 출력
함께 보낸 날: 5
람다 함수
여우는 가장 중요한 것은 눈에 보이지 않는다고 말했다.
The fox said that what is most important is invisible to the eye.
문법 포인트: 람다 함수
예시 코드
invisible = lambda value: f"{value}은/는 눈에 보이지 않습니다."
print(invisible("마음"))
예상 출력
마음은/는 눈에 보이지 않습니다.
가중치 계산
여우는 장미가 특별한 이유는 어린 왕자가 사랑과 시간을 쏟았기 때문이라고 말했다.
The fox explained that the rose was special because the Little Prince had devoted his love and time to her.
문법 포인트: 가중치 계산
예시 코드
love = 70
time = 30
special = love * 0.7 + time * 0.3
print("특별함 점수:", special)
예상 출력
특별함 점수: 58.0
상태 변경
어린 왕자는 비로소 자신의 장미를 이해하게 되었다.
The Little Prince finally came to understand his rose.
문법 포인트: 상태 변경
예시 코드
understanding = {"장미": False}
understanding["장미"] = True
print(understanding)
예상 출력
{'장미': True}
클래스 기초
사막에서 그는 비행사와 깊은 우정을 나누었다.
In the desert, he developed a deep friendship with the pilot.
문법 포인트: 클래스 기초
예시 코드
class Friendship:
def __init__(self, a, b):
self.a = a
self.b = b
def show(self):
return f"{self.a}와 {self.b}의 우정"
f = Friendship("어린 왕자", "비행사")
print(f.show())
예상 출력
어린 왕자와 비행사의 우정
enumerate
두 사람은 함께 우물을 찾아 헤매었다.
Together they searched for a well.
문법 포인트: enumerate
예시 코드
places = ["모래언덕", "바위", "우물"]
for idx, place in enumerate(places, start=1):
print(idx, place)
예상 출력
1 모래언덕
2 바위
3 우물
join
어린 왕자는 자신의 별과 장미가 몹시 그리워졌다.
The Little Prince greatly missed his planet and his rose.
문법 포인트: join
예시 코드
miss = ["별", "장미", "여우"]
print("그리운 것: " + ", ".join(miss))
예상 출력
그리운 것: 별, 장미, 여우
삼항 연산자
그는 고향으로 돌아가기로 결심했다.
He decided to return home.
문법 포인트: 삼항 연산자
예시 코드
home = "B-612"
decision = True
message = f"{home}로 돌아갑니다" if decision else "남아 있습니다"
print(message)
예상 출력
B-612로 돌아갑니다
try-except
뱀은 어린 왕자가 별로 돌아갈 수 있도록 도와주겠다고 말했다.
The snake said it would help him return to his star.
문법 포인트: try-except
예시 코드
try:
path = "별로 가는 길"
print(path)
except Exception as e:
print("문제가 생겼습니다:", e)
예상 출력
별로 가는 길
함수에 여러 인자 전달
어린 왕자는 비행사에게 작별 인사를 했다.
The Little Prince said goodbye to the pilot.
문법 포인트: 함수에 여러 인자 전달
예시 코드
def goodbye(*names):
for name in names:
print(name, "안녕")
goodbye("비행사", "여우", "장미")
예상 출력
비행사 안녕
여우 안녕
장미 안녕
필터링
그는 자신의 몸은 너무 무거워서 가져갈 수 없다고 말했다.
He said his body was too heavy to take with him.
문법 포인트: 필터링
예시 코드
items = {"몸": 100, "마음": 1, "별빛": 0}
light_items = {k:v for k,v in items.items() if v <= 1}
print(light_items)
예상 출력
{'마음': 1, '별빛': 0}
시간 조건 분기
밤이 되자 뱀이 어린 왕자를 물었다.
When night came, the snake bit the Little Prince.
문법 포인트: 시간 조건 분기
예시 코드
time = "밤"
if time == "밤":
event = "뱀이 나타남"
elif time == "낮":
event = "사막을 걸음"
else:
event = "기다림"
print(event)
예상 출력
뱀이 나타남
None과 상태 표현
어린 왕자는 조용히 쓰러졌다.
The Little Prince quietly fell to the ground.
문법 포인트: None과 상태 표현
예시 코드
state = "standing"
state = None
print("현재 상태:", state)
예상 출력
현재 상태: None
검색 함수
다음 날 아침 그의 몸은 어디에서도 찾을 수 없었다.
The next morning, his body could not be found anywhere.
문법 포인트: 검색 함수
예시 코드
def find_body(places):
return "몸" in places
print(find_body(["모래", "별빛", "발자국"]))
예상 출력
False
데이터 클래스처럼 객체 표현
비행사는 어린 왕자가 자신의 별로 돌아갔다고 믿었다.
The pilot believed that the Little Prince had returned to his planet.
문법 포인트: 데이터 클래스처럼 객체 표현
예시 코드
class Belief:
def __init__(self, who, thought):
self.who = who
self.thought = thought
def __repr__(self):
return f"{self.who}의 믿음: {self.thought}"
print(Belief("비행사", "어린 왕자는 별로 돌아갔다"))
예상 출력
비행사의 믿음: 어린 왕자는 별로 돌아갔다
제너레이터
그 이후 비행사는 밤하늘의 별을 볼 때마다 어린 왕자를 떠올렸다.
After that, the pilot remembered the Little Prince whenever he looked at the stars.
문법 포인트: 제너레이터
예시 코드
def star_memory(n):
for i in range(1, n+1):
yield f"{i}번째 별: 어린 왕자를 떠올림"
for memory in star_memory(3):
print(memory)
예상 출력
1번째 별: 어린 왕자를 떠올림
2번째 별: 어린 왕자를 떠올림
3번째 별: 어린 왕자를 떠올림
JSON 형태 데이터
이 이야기는 사랑과 우정, 책임과 삶의 의미를 전하는 아름다운 작품으로 남았다.
This story remains a beautiful work that conveys love, friendship, responsibility, and the meaning of life.
문법 포인트: JSON 형태 데이터
예시 코드
import json
message = {"사랑": 1, "우정": 1, "책임": 1, "삶의 의미": 1}
print(json.dumps(message, ensure_ascii=False, indent=2))
예상 출력
{
"사랑": 1,
"우정": 1,
"책임": 1,
"삶의 의미": 1
}
데코레이터
가장 중요한 것은 눈에 보이지 않는다는 말은 작품 전체를 대표하는 메시지이다.
The saying that what is most important is invisible to the eye is the central message of the entire work.
문법 포인트: 데코레이터
예시 코드
def emphasize(func):
def wrapper():
return "★ " + func() + " ★"
return wrapper
@emphasize
def message():
return "가장 중요한 것은 눈에 보이지 않는다"
print(message())
예상 출력
★ 가장 중요한 것은 눈에 보이지 않는다 ★
파일 저장
네가 길들인 것에 대해 너는 영원히 책임이 있다는 말은 작품의 또 다른 핵심 가르침이다.
You become responsible forever for what you have tamed is another key lesson of the story.
문법 포인트: 파일 저장
예시 코드
lesson = "네가 길들인 것에 대해 너는 영원히 책임이 있다."
with open("little_prince_lesson.txt", "w", encoding="utf-8") as f:
f.write(lesson)
print("교훈을 파일에 저장했습니다.")
예상 출력
교훈을 파일에 저장했습니다.
마무리 학습
이제 같은 문장으로 변수명, 조건, 반복, 함수, 클래스, 파일 저장을 바꾸어 직접 응용해 보세요. 예를 들어 '장미'를 '별', '여우'를 '친구', '비행사'를 '나'로 바꾸면 나만의 이야기형 파이썬 학습 자료가 됩니다.
이제 같은 문장으로 변수명, 조건, 반복, 함수, 클래스, 파일 저장을 바꾸어 직접 응용해 보세요. 예를 들어 '장미'를 '별', '여우'를 '친구', '비행사'를 '나'로 바꾸면 나만의 이야기형 파이썬 학습 자료가 됩니다.