말하기

말하기

쉬움

소개

친구 Yaʻqūb은 마을에서 가장 붐비는 델리의 카운터에서 일해요. 끝없이 이어지는 배고픈 손님들의 주문을 받아 썰고, 무게를 재고, 포장하지요. 일이 막히지 않도록, 손님들은 도착할 때마다 번호표를 한 장씩 받아요.

다음 사람을 부를 차례가 되면, Yaʻqūb은 그 번호를 소리 내어 읽어요. 모두가 또렷하게 들을 수 있도록 언제나 숫자를 전부 영어 단어로 읽지요.

지침

숫자가 주어지면, 친구가 소리 내어 말하듯이 그 숫자를 영어 단어로 표현하는 것이 과제예요. Yaʻqūb은 0부터 999,999,999,999까지의 숫자를 사용할 예정이에요.

예시:

  • 0 → zero
  • 1 → one
  • 12 → twelve
  • 123 → one hundred twenty-three
  • 1,234 → one thousand two hundred thirty-four

예외 메시지

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

이 연습 문제에서는 say()에 입력한 숫자가 범위를 벗어나면 raise 문을 사용해 ValueError를 "던져야" 해요. 테스트는 exception을 raise하고 그와 함께 메시지도 포함해야만 통과해요.

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

# if the number is negative
raise ValueError("input out of range")

# if the number is larger than 999,999,999,999
raise ValueError("input out of range")
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Python Exercism

말하기 문제를 시작해 볼 준비가 됐나요?

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