Files
exercism_puzzles/python/say

Diz

Bem-vindo ao Diz no percurso Python do Exercism. Se precisares de ajuda para correr os testes ou para submeter o teu código, consulta o HELP.md.

Introduction

O teu amigo Yaʻqūb trabalha ao balcão da delicatessen mais movimentada da cidade, a cortar, a pesar e a embrulhar encomendas para uma fila infindável de clientes com fome. Para as coisas não pararem, cada cliente tira uma senha numerada quando chega.

Quando é altura de chamar a pessoa seguinte, o Yaʻqūb lê o número em voz alta, sempre por palavras completas em inglês, para garantir que toda a gente o ouve com clareza.

Instructions

Dado um número, a tua tarefa é escrevê-lo por palavras em inglês, exatamente como o teu amigo o diria em voz alta. Yaʻqūb espera usar números de 0 até 999 999 999 999.

Exemplos:

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

Mensagens de exceção

Por vezes é necessário lançar uma exceção. Quando o fazes, deves incluir sempre uma mensagem de erro significativa que indique qual é a origem do erro. Isto torna o teu código mais legível e ajuda bastante na depuração. Nos casos em que sabes que a origem do erro será de um determinado tipo, podes optar por lançar um dos tipos de erro incorporados, mas deves continuar a incluir uma mensagem significativa.

Este exercício em particular exige que uses a instrução raise para "lançar" um ValueError se o valor de entrada de say() estiver fora do intervalo. Os testes só passam se fizeres raise da exception e incluíres uma mensagem com ela.

Para lançar um ValueError com uma mensagem, escreve a mensagem como argumento do tipo 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")

Source

Created by

  • @behrtam

Contributed to by

  • @AndrejTS
  • @cmccandless
  • @csabella
  • @Dog
  • @fortrieb
  • @gabriellhrn
  • @ikhadykin
  • @mandel01
  • @N-Parsons
  • @pheanex
  • @pranasziaukas
  • @tqa236
  • @tsamoglou

Based on

A variation on the JavaRanch CattleDrive, Assignment 4 - https://web.archive.org/web/20240907035912/https://coderanch.com/wiki/718804