밀알

밀알

쉬움

소개

옛날에 한 왕자의 목숨을 구한 지혜로운 신하가 있었어요. 왕은 신하가 원하는 것이 무엇이든 주겠다고 약속했어요. 왕이 체스를 좋아한다는 것을 알고, 신하는 밀알을 갖고 싶다고 왕에게 말했어요. 체스판의 첫 번째 칸에는 한 알, 그다음 칸부터는 알의 수를 두 배씩 늘려서요.

지침

체스판에 놓인 밀알의 개수를 계산해요.

체스판은 64개의 칸으로 이루어져 있어요. 1번 칸에는 밀알이 한 개, 2번 칸에는 두 개, 3번 칸에는 네 개가 놓이고, 그다음부터는 칸마다 두 배씩 늘어나요.

다음을 계산하는 코드를 작성해 봐요:

  • 주어진 칸에 있는 밀알의 개수
  • 체스판 전체에 있는 밀알의 총 개수

예외 메시지

때로는 예외를 발생시켜야 할 때가 있어요. 이때는 오류의 원인이 무엇인지 알려 주는 의미 있는 오류 메시지를 항상 함께 넣어야 해요. 그러면 코드가 더 읽기 쉬워지고 디버깅에 큰 도움이 돼요. 오류 원인이 특정 유형일 것이라고 알고 있는 상황이라면 내장 오류 유형 중 하나를 골라 발생시켜도 되지만, 이때도 의미 있는 메시지를 함께 넣어야 해요.

이 연습 문제에서는 입력한 칸이 범위를 벗어났을 때 ValueError를 "던지기" 위해 raise 문을 사용해야 해요. 테스트는 exception을 raise하고 그와 함께 메시지를 포함할 때만 통과해요.

메시지와 함께 ValueError를 발생시키려면, 메시지를 exception 타입의 인자로 적어요:

# when the square value is not in the acceptable range        
raise ValueError("square must be between 1 and 64")
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Python Exercism

밀알 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Python 트랙을 개념 17개연습 문제 146개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.