WeniVooks

검색

위니브 월드(학생용)

해골섬으로 향하는 라이캣

1. 챕터의 목표

변수: 변수를 할당할 수 있습니다.

출력: print()를 사용해 터미널에 값을 출력할 수 있습니다.

변수의 타입: type()을 통하여 변수의 타입을 확인할 수 있습니다.

2. 스토리

라이언 타운에 잠입을 성공한 캣은 빠르게 기반을 잡았습니다. 캣은 위니브월드에서 가장 고기가 많이 잡히는 해골 섬에서 고기를 잡을 수 있는 몇 안 되는 용감한 어부이기 때문이었어요. 그 이름에도 알 수 있듯이 해골 섬은 암초가 많고 물살이 거세 수많은 어부들이 목숨을 잃었던 곳이기도 했습니다.

해골 섬으로 향하는 라이캣

캣은 물고기의 움직임을 파악하고, 지도를 만들고, 암초에도 배가 침몰하지 않도록 아래 철판을 덧대고, 좀 더 좋은 실로 그물을 다시 만들었습니다.

"이제 출항이다냥!"

2.1 임무

미로를 피해 모든 물고기를 잡고, 잡은 물고기의 수를 **라이캣은 물고기 3마리를 잡았다!**와 같이 터미널에 출력해야 합니다!

2.2.1 사용 코드

아래 코드들을 조합하여 문제를 풀어주세요.

mission_start()
mission_end()
move()
turn_left()
repeat(2, move)
pick()
print('hello world!')
print('hello', 'world')
print(f'hello world')
item()
item()['fish-1']
mission_start()
mission_end()
move()
turn_left()
repeat(2, move)
pick()
print('hello world!')
print('hello', 'world')
print(f'hello world')
item()
item()['fish-1']
2.2.2 중급자의 사용 코드
if
while
in
character_data[0]['x']
character_data[0]['y']
item_data
if
while
in
character_data[0]['x']
character_data[0]['y']
item_data

3. 문제 풀이를 위한 개념

3.1 변수

변수는 어떤 값을 가리킬 때 사용합니다. 변수를 사용하기 위해서 이름을 정하고 = 기호를 이용하여 값을 할당하면 됩니다. =는 대입 연산자라고 합니다.

물고기의 개수를 나타낼 변수를 선언해보겠습니다. 이렇게 변수를 이용하면 값을 쉽게 가져올 수 있습니다.

count = 0
print(count)
count = 0
print(count)

반드시 알아야 하는 변수명 규칙

  1. 변수명은 한글, 영문자나 _ (언더스코어)로 시작해야 합니다.
  2. 대문자와 소문자는 다르게 구분합니다. 예를 들면, Apple 과 apple은 다른 변수명입니다.
  3. 파이썬에서 이미 사용되고 있는 변수나 키워드를 예약어라고 하는데 이 예약어를 사용하는 변수명을 사용해서는 안됩니다. 예를 들면, for나 def와 같은 이미 사용되고 있는 단어는 변수명으로 사용해선 안됩니다.
  4. 변수명에서 띄어쓰기는 허용하지 않습니다. 띄어쓰고 싶다면 언더바나(스네이크 표기법) 중간에 대문자를 사용하는 방식(카멜 표기법)으로 사용합니다. 파이썬에서는 언더바를 표준 스타일로 정하고 있습니다. (count_fish)
3.2 산술연산

이 문제에서는 잡은 물고기를 누적해야 하므로 산술연산을 알아야 합니다. 산술 연산은 더하기, 빼기, 곱하기, 나누기, 나머지에 관한 연산자입니다. 각 기능에 대해서는 주석으로 달아두도록 하겠습니다. 코드 오른쪽에 있는 # 뒤의 텍스트는 실행되지 않습니다. 이처럼 실행되지 않지만, 코드에 대한 설명을 추가할 때 넣는 텍스트를 주석이라고 합니다.

count = 10
print(count + 3)  # 더하기
print(count - 3)  # 빼기
print(count / 3)  # 나누기(실수)
print(count // 3) # 나누기(정수, 내림)
print(count * 3)  # 곱하기
print(count ** 3) # 승수
print(count % 3)  # 나머지
count = 10
print(count + 3)  # 더하기
print(count - 3)  # 빼기
print(count / 3)  # 나누기(실수)
print(count // 3) # 나누기(정수, 내림)
print(count * 3)  # 곱하기
print(count ** 3) # 승수
print(count % 3)  # 나머지

별표라고 표현하는 특수문자의 공식 이름은 애스터리스크(*)입니다. 애스터리스크가 1개이면 곱셈, 2개이면 승수가 됩니다. count가 현재 10이니 count ** 3 은 10을 3번 곱하는 10 * 10 * 10이 됩니다.

print(count * 3)  # 곱하기
print(count ** 3) # 승수
print(count * 3)  # 곱하기
print(count ** 3) # 승수

나누기에는 두 종류가 있습니다. 슬래시를 1개(/) 하게 되면 3.333…처럼 소수점까지 출력합니다. 이렇게 소수점이 있는 형태를 실수형(float, 플로트형)이라고 부릅니다. 슬래시가 2개(//) 있으면 3처럼 정수를 출력합니다. 이렇게 소수점이 없는 숫자를 정수형(int, 인트형)이라고 부릅니다.

print(count / 3)  # 나누기(실수)
print(count // 3) # 나누기(정수, 내림)
print(count / 3)  # 나누기(실수)
print(count // 3) # 나누기(정수, 내림)

각 타입은 아래와 같이 확인이 가능합니다.

print(type(3.33))
print(type(3))
print(type(3.33))
print(type(3))

나머지 연산으로 나눗셈의 나머지 값을 얻을 수 있습니다. 10을 3으로 나누었을 때 몫이 3이고 나머지가 1이므로 1이 출력됩니다. 나머지 연산은 생소하겠지만 앞으로도 많이 사용하게 되니 꼭 기억해 주세요.

print(count % 3) # 나머지
print(count % 3) # 나머지

다시 물고기 변수를 선언하던 코드로 돌아오도록 하겠습니다.

count = 0
count = 0

위 코드에서 물고기 1마리를 잡을 때마다 1개씩 증가시키려면 아래와 같은 코드가 필요합니다. 대입 연산(=)보다 더하기가 먼저 계산됩니다. 따라서 count + 1의 결과인 1이 count에 저장됩니다.

count = count + 1
count = count + 1

이 코드는 아래와 같이 줄일 수 있으나, 처음에는 이렇게 줄이는 코드가 익숙지 않으니 위 코드를 주로 사용하겠습니다. 다만 실무에서는 아래 형태의 코드를 더 많이 사용합니다.

count += 1
count += 1
2.2 라이캣의 탄생2.4 지금까지 이런 맛은 없었다