66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# 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 |