Files

66 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://docs.python.org/3/tutorial/errors.html#raising-exceptions). 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](https://docs.python.org/3/library/exceptions.html#base-classes), mas deves continuar a incluir uma mensagem significativa.
Este exercício em particular exige que uses a [instrução raise](https://docs.python.org/3/reference/simple_stmts.html#the-raise-statement) 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`:
```python
# 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