파이썬을 처음 배우면 if, else, while, 변수, 함수처럼 새로운 용어가 한꺼번에 등장합니다. 각 문법의 뜻을 읽을 때는 이해한 것 같지만, 막상 빈 코드 창을 보면 어떤 문법부터 사용해야 할지 떠올리기 어려울 수 있습니다.

문법은 외워야 할 단어가 아니라 문제를 해결하는 도구입니다. 캐릭터를 다섯 칸 이동시키고, 앞에 있는 슬라임을 공격하고, 표지판이 알려 준 방향을 선택하는 문제 속에서 사용하면 각 문법이 필요한 이유가 분명해집니다.

Codedash의 파이썬던전(Python Dungeon)은 같은 문제를 블록코딩과 파이썬 코드로 풀 수 있는 게임형 학습 환경입니다. 이 글에서는 다음 6개 레벨을 따라가며 파이썬의 핵심 문법을 살펴보겠습니다.

횃불이 켜진 던전에서 캐릭터가 목표 문을 바라보는 파이썬던전 게임 화면
파이썬던전캐릭터를 움직여 던전의 목표 지점까지 도달하는 게임형 학습 환경입니다.
레벨게임 미션핵심 문법
Chapter 1-1 첫 걸음오른쪽으로 다섯 칸 이동하기함수 호출과 실행 순서
Chapter 1-5 빙글빙글벽을 따라 반복 이동하기while 반복문과 변수
Chapter 2-1 슬라임의 습격적을 감지하고 공격하기조건 판단과 반복
Chapter 3-2 운명의 갈림길표지판에 따라 길 선택하기변수와 if/else
Chapter 4-2 덧셈의 문두 숫자를 더해 문 열기변수와 덧셈
Chapter 5-1 마법룬의 비밀2같은 경로를 두 번 순회하기while 반복문
EXAMPLE SOLUTIONS

이 글의 코드는 각 레벨을 이해하기 위한 예시 풀이입니다. 같은 목표를 달성하는 다른 코드도 작성할 수 있습니다.

BLOCK CONVERSION

아래 블록 화면 중 일부는 예시 파이썬 코드를 블록코딩 탭에서 자동 변환해 비교한 결과입니다. 레벨 진행 단계에 따라 기본 블록 목록에서 직접 꺼낼 수 있는 블록의 범위는 달라질 수 있습니다.

먼저 알아둘 파이썬 핵심 문법

01 / CALL

함수 호출

함수 이름 뒤에 괄호를 붙여 준비된 동작을 실행합니다.

move_right()
02 / VARIABLE

변수와 대입

실행 중 기억해야 하는 값을 이름과 함께 저장합니다.

steps = 0
03 / BRANCH

if/else

조건 결과에 따라 서로 다른 코드 중 하나를 실행합니다.

if is_enemy_right():
    attack_right()
else:
    move_right()
04 / LOOP

while

조건이 참인 동안 안쪽 코드를 계속 반복합니다.

steps = 0
while steps < 5:
    move_right()
    steps = steps + 1
05 / CONDITION

비교와 not

값을 비교하고 참·거짓을 반대로 바꿔 조건을 만듭니다.

not is_downstairs()
06 / INDENT

들여쓰기

조건문과 반복문에 포함되는 코드를 같은 깊이로 들여씁니다.

if is_enemy_right():
    attack_right()

블록코딩에서는 블록 안에 다른 블록을 끼워 넣는 구조가 파이썬 코드의 들여쓰기에 해당합니다. move_right() 같은 이동 함수는 파이썬 내장 함수가 아니라 파이썬던전에서 제공하는 전용 게임 함수입니다. 이제 실제 레벨에서 각 문법이 어떻게 사용되는지 살펴보겠습니다.

Chapter 1-1 첫 걸음: 함수 호출과 실행 순서

CHAPTER 1 · LEVEL 1

첫 레벨의 목표는 move_right()를 사용해 캐릭터를 골인 지점까지 보내는 것입니다. 시작 지점에서 골인 지점까지 다섯 칸을 이동해야 하므로 오른쪽 이동을 다섯 번 실행합니다.

Chapter 1-1 첫 걸음의 던전 맵과 블록코딩 풀이
Chapter 1-1 학습 화면다섯 개의 이동 블록이 위에서 아래로 연결된 실행 순서를 확인할 수 있습니다.
파이썬던전 Chapter 1 시작하기
BLOCK

블록으로 확인한 풀이

[코드 실행]
  └─ [오른쪽 이동]
      └─ [오른쪽 이동]
          └─ [오른쪽 이동]
              └─ [오른쪽 이동]
                  └─ [오른쪽 이동]
PYTHON

파이썬 코드 풀이

move_right()
move_right()
move_right()
move_right()
move_right()

블록을 위에서 아래로 연결하면 연결된 순서대로 캐릭터가 움직입니다. 파이썬 코드도 위에서 아래로 한 줄씩 실행됩니다. 이 레벨에서는 함수 호출, 괄호, 실행 순서를 확인할 수 있습니다.

Chapter 1-5 빙글빙글: while로 반복 이동하기

CHAPTER 1 · LEVEL 5

Chapter 1-5는 벽을 따라 위 6칸 → 오른쪽 5칸 → 아래 4칸 → 왼쪽 3칸 → 위 2칸 → 오른쪽 1칸 순서로 이동하는 레벨입니다.

같은 이동 함수를 여러 줄 반복해서 작성할 수도 있지만, while문과 이동 횟수를 저장하는 변수를 사용하면 "정해진 조건이 끝날 때까지 이동한다"는 구조를 코드로 표현할 수 있습니다.

Chapter 1-5 빙글빙글의 나선형 던전 맵과 while 반복 블록 풀이
Chapter 1-5 학습 화면이동 횟수를 비교하는 반복 블록과 방향별 이동 블록의 관계를 확인할 수 있습니다.
파이썬던전 Chapter 1 시작하기
BLOCK

블록으로 확인한 풀이

[steps를 0으로 정하기]
[steps < 6 동안 반복]
  ├─ [위로 이동]
  └─ [steps = steps + 1]

같은 구조로
오른쪽 5번
아래 4번
왼쪽 3번
위쪽 2번을 반복

[오른쪽 이동]
PYTHON

파이썬 코드 풀이

steps = 0
while steps < 6:
    move_up()
    steps = steps + 1

steps = 0
while steps < 5:
    move_right()
    steps = steps + 1

steps = 0
while steps < 4:
    move_down()
    steps = steps + 1

steps = 0
while steps < 3:
    move_left()
    steps = steps + 1

steps = 0
while steps < 2:
    move_up()
    steps = steps + 1

move_right()

이 레벨은 for ... in range(...)로도 풀 수 있습니다. 기본 블록 목록에서는 횟수 반복 블록으로 더 간단하게 구성할 수 있지만, 여기서는 while의 조건, 카운터 변수, 종료 시점을 한 번에 비교하기 위해 파이썬 코드를 블록으로 변환한 풀이를 사용했습니다.

Chapter 2-1 슬라임의 습격: 상황을 확인하고 공격하기

CHAPTER 2 · LEVEL 1

길 가운데에는 슬라임이 있습니다. 캐릭터가 무조건 이동만 하면 적에게 막히므로 오른쪽에 적이 있는지 확인하고, 적이 있다면 먼저 공격해야 합니다.

Chapter 2-1 슬라임의 습격 맵과 적 감지 조건 블록 풀이
Chapter 2-1 학습 화면적 감지, 공격, 이동을 조건문과 반복문 안에 배치하는 방법을 확인할 수 있습니다.
파이썬던전 Chapter 2 시작하기
BLOCK

블록으로 확인한 풀이

[계단에 도착하지 않은 동안 반복]
  ├─ [만약 오른쪽에 적이 있다면]
  │    └─ [오른쪽 공격]
  └─ [오른쪽 이동]
PYTHON

파이썬 코드 풀이

while not is_downstairs():
    if is_enemy_right():
        attack_right()
    move_right()

is_enemy_right()는 오른쪽에 적이 있는지 확인하고 참 또는 거짓을 돌려줍니다. if문은 결과가 참일 때만 attack_right()를 실행합니다. while문은 캐릭터가 골인 지점에 도착할 때까지 감지와 이동을 반복합니다.

WHAT DOES “NOT” MEAN?

not은 참과 거짓을 반대로 바꾸는 논리 연산자입니다. 따라서 not is_downstairs()는 "아직 골인 지점에 도착하지 않았다"는 조건으로 읽을 수 있습니다. 이 화면의 감지 조건 블록은 파이썬 풀이를 블록으로 변환해 표시했습니다.

고정된 이동·공격 명령을 순서대로 작성해도 이 레벨을 해결할 수 있지만, 조건문을 사용하면 적의 존재를 확인하고 대응하는 일반적인 문제 해결 구조를 만들 수 있습니다.

Chapter 3-2 운명의 갈림길: 변수와 if/else

CHAPTER 3 · LEVEL 2

이 레벨의 표지판은 실행할 때마다 "up" 또는 "down"을 알려줍니다. 한쪽 길만 고정해서 선택하면 표지판 결과에 따라 실패할 수 있으므로, 읽은 방향을 변수에 저장하고 if/else로 길을 선택해야 합니다.

Chapter 3-2 운명의 갈림길 맵과 if else 분기 블록 풀이
Chapter 3-2 학습 화면표지판 값을 변수에 저장하고 두 이동 경로로 나누는 블록 구조를 확인할 수 있습니다.
파이썬던전 Chapter 3 시작하기
BLOCK

블록으로 확인한 풀이

[오른쪽 3칸 이동]
[direction = 표지판 값]
[만약 direction == "up"]
  ├─ [위 1칸 이동]
  ├─ [오른쪽 4칸 이동]
  └─ [아래 1칸 이동]
[아니면]
  ├─ [아래 1칸 이동]
  ├─ [오른쪽 4칸 이동]
  └─ [위 1칸 이동]
[오른쪽 1칸 이동]
PYTHON

파이썬 코드 풀이

move_right(3)
direction = read_signpost()

if direction == "up":
    move_up()
    move_right(4)
    move_down()
else:
    move_down()
    move_right(4)
    move_up()

move_right()
  1. direction 변수에 표지판 결과를 저장합니다.
  2. == 비교 연산자로 값이 "up"인지 확인합니다.
  3. if/else로 위쪽 길과 아래쪽 길 중 하나만 실행합니다.

블록의 두 갈래 구조와 파이썬의 들여쓰기를 비교하면 else가 어느 if에 연결되는지 직관적으로 확인할 수 있습니다.

Chapter 4-2 덧셈의 문: 두 값을 더해 사용하기

CHAPTER 4 · LEVEL 2

던전에는 숫자가 적힌 스크롤 두 개와 잠긴 문이 있습니다. 두 스크롤의 숫자는 실행할 때 달라질 수 있으므로 답을 미리 적어 둘 수 없습니다. 각각의 값을 변수에 저장하고 두 수를 더한 결과로 문을 열어야 합니다.

Chapter 4-2 덧셈의 문 맵과 변수 덧셈 블록 풀이
Chapter 4-2 학습 화면두 스크롤 값을 변수에 저장하고 덧셈 블록의 결과를 문 열기 함수에 전달합니다.
파이썬던전 Chapter 4 시작하기
BLOCK

블록으로 확인한 풀이

[오른쪽 3칸 이동]
[a = 스크롤 값]
[오른쪽 2칸 이동]
[b = 스크롤 값]
[오른쪽 1칸 이동]
[result = a + b]
[result 값으로 문 열기]
[오른쪽 2칸 이동]
PYTHON

파이썬 코드 풀이

move_right(3)
a = read_scroll()

move_right(2)
b = read_scroll()

move_right()
result = a + b
unlock_door(result)
move_right(2)

a + b에서 +는 두 숫자를 더하는 산술 연산자입니다. 계산 결과를 result 변수에 저장한 뒤 unlock_door(result)에 전달합니다.

INPUT → STORE → CALCULATE → USE

이 레벨에서는 단순히 덧셈식을 계산하는 데 그치지 않고, 입력값 읽기 → 변수 저장 → 계산 → 함수에 결과 전달이라는 프로그램의 기본 흐름을 경험할 수 있습니다.

Chapter 5-1 마법룬의 비밀2: while로 같은 경로 반복하기

CHAPTER 5 · LEVEL 1

Chapter 5-1에서는 직사각형 둘레의 마법룬을 각각 두 번 밟아야 합니다. 둘레를 도는 이동 경로는 같고 반복 횟수만 두 번이므로, 한 바퀴의 동작을 while문 안에 넣을 수 있습니다.

Chapter 5-1 마법룬의 비밀2 맵과 while 반복 블록 풀이
Chapter 5-1 학습 화면한 바퀴의 이동 경로를 while 블록 안에 넣어 같은 동작을 두 번 실행합니다.
파이썬던전 Chapter 5 시작하기
BLOCK

블록으로 확인한 풀이

[오른쪽 3칸 이동]
[lap을 0으로 정하기]
[lap < 2 동안 반복]
  ├─ [위 4칸 이동]
  ├─ [오른쪽 4칸 이동]
  ├─ [아래 4칸 이동]
  ├─ [왼쪽 4칸 이동]
  └─ [lap = lap + 1]
[아래 2칸 이동]
[오른쪽 4칸 이동]
PYTHON

파이썬 코드 풀이

move_right(3)

lap = 0
while lap < 2:
    move_up(4)
    move_right(4)
    move_down(4)
    move_left(4)
    lap = lap + 1

move_down(2)
move_right(4)

lap은 현재 몇 바퀴를 돌았는지 저장합니다. 한 바퀴가 끝날 때마다 1을 더하고, lap < 2가 거짓이 되면 반복을 종료합니다. 이 레벨도 for로 풀 수 있지만, 조건을 검사하며 반복을 끝내는 while의 구조를 설명하기 위해 카운터 변수를 사용했습니다.

블록코딩과 파이썬 코드를 함께 보면 좋은 이유

01 / STRUCTURE

실행 구조가 눈에 보입니다

블록코딩에서는 if의 조건 영역, else의 실행 영역, while 안에서 반복되는 동작이 공간적으로 구분됩니다.

02 / TRANSLATE

같은 문제를 실제 문법으로 표현합니다

블록의 포함 관계가 파이썬에서는 :과 들여쓰기로, 함수 호출은 이름과 괄호로 표현되는 과정을 비교할 수 있습니다.

03 / PURPOSE

문법을 사용할 이유가 생깁니다

룬을 활성화하기 위해 반복문을 사용하고, 무작위 표지판 결과에 맞는 길을 선택하기 위해 조건문을 사용합니다.

04 / FEEDBACK

실행 결과를 즉시 확인합니다

코드를 실행하면 이동, 공격, 문 열기 결과가 게임 화면에 나타나며 예상과 다르면 수정하고 다시 실행할 수 있습니다.

Codedash는 별도의 파이썬 실행 환경을 설치하지 않고 브라우저에서 실행됩니다. 블록코딩과 텍스트 코딩을 서로 다른 과정으로 배우는 대신 같은 문제의 두 가지 표현으로 비교할 수 있습니다.

수업에서는 클래스 기능을 활용할 수 있습니다

CLASSROOM WORKFLOW

강사는 Codedash 클래스에서 학생별 현재 레벨과 클리어 진행도를 확인할 수 있습니다. 학생이 레벨을 클리어하기 전에 도움요청을 누르면 현재 코드가 제출되고, 레벨을 클리어하면 최종 코드가 제출됩니다. 강사는 이 코드를 열어보고 실행해 조건문이나 반복문의 어느 부분에서 막혔는지 확인하고 지도할 수 있습니다.

블록코딩으로 구조를 설명한 뒤 학생이 같은 문제를 파이썬 코드로 다시 풀게 하거나, 서로 다른 풀이를 비교하는 방식으로 수업을 진행할 수 있습니다.

지금 파이썬 핵심 문법을 게임으로 확인해 보세요

Chapter 1과 Chapter 2의 총 10개 레벨은 로그인이나 결제 없이 시작할 수 있습니다. 첫 레벨에서는 함수 호출과 실행 순서를 확인하고, 이후 반복, 적 감지, 조건 분기, 변수, 계산처럼 해결해야 할 문제가 단계적으로 추가됩니다.

파이썬던전 Chapter 1 시작하기

Chapter 2는 Chapter 1의 5개 레벨을 완료하면 열립니다.

이후 챕터도 바로 건너뛸 수 없고 앞 챕터를 완료해야 열립니다. 개인 이용자가 Chapter 3 이후를 직접 이용하려면 로그인 후 구매하거나 리딤코드로 이용 권한을 받아야 합니다. 직접 구매한 이용 권한은 결제일로부터 365일 동안 사용할 수 있습니다.

자주 묻는 질문

블록코딩만으로 모든 레벨을 풀어야 하나요?

아닙니다. 파이썬던전에서는 블록코딩 탭과 파이선 탭을 전환할 수 있습니다. 블록으로 구조를 먼저 확인하거나 파이썬 코드를 직접 작성할 수 있습니다.

이 글의 코드만이 정답인가요?

아닙니다. 같은 목표를 달성하는 코드는 여러 가지가 될 수 있습니다. 이 글에서는 각 레벨의 핵심 문법을 설명하기 좋은 풀이를 선택했습니다.

forwhile은 어떻게 다른가요?

반복 횟수가 정해져 있을 때는 for가 간결한 경우가 많고, 특정 조건이 참인 동안 계속 반복해야 할 때는 while이 적합합니다. 같은 레벨을 두 방식으로 풀어 보고 코드 구조를 비교할 수도 있습니다.

Chapter 3 이후 레벨도 무료인가요?

아닙니다. 현재 Chapter 1과 Chapter 2는 로그인 없이 무료로 이용할 수 있습니다. 개인 이용자가 Chapter 3 이후 유료 챕터를 직접 이용하려면 로그인과 구매 또는 리딤으로 받은 이용 권한이 필요하며, 앞 챕터도 먼저 완료해야 합니다. 직접 구매한 이용 권한은 결제일로부터 365일 동안 사용할 수 있습니다.