해골섬으로 향하는 라이캣
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)
반드시 알아야 하는 변수명 규칙
- 변수명은 한글, 영문자나 _ (언더스코어)로 시작해야 합니다.
- 대문자와 소문자는 다르게 구분합니다. 예를 들면, Apple 과 apple은 다른 변수명입니다.
- 파이썬에서 이미 사용되고 있는 변수나 키워드를 예약어라고 하는데 이 예약어를 사용하는 변수명을 사용해서는 안됩니다. 예를 들면, for나 def와 같은 이미 사용되고 있는 단어는 변수명으로 사용해선 안됩니다.
- 변수명에서 띄어쓰기는 허용하지 않습니다. 띄어쓰고 싶다면 언더바나(스네이크 표기법) 중간에 대문자를 사용하는 방식(카멜 표기법)으로 사용합니다. 파이썬에서는 언더바를 표준 스타일로 정하고 있습니다. (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