http://dojopuzzles.com/problemas/exibe/encontre-o-telefone/
Para resolver o problema de conversão de telefones, apesar de ser um problema simples, optei por criar uma classe chamada PhoneConverter que contém um Dicionário com as letras->número. Vários motivos me levaram a abordar dessa maneira e não apenas criar métodos soltos no arquivo. Com o encapsulamento além de ser mais organizado é mais fácil implementar novas funções e/ou dar manutenção. A entrada para conversão é um arquivo chamado input.txt.
Para converter uma entrada existem três maneiras de utilização da classe:
1. PhoneConverter("MINHA-ENTRADA").convert()
# Inicializa a variável str_input no construtor e converte
2. PhoneConverter().convert("MINHA-ENTRADA")
# Seta a variável str_input e converte
3.obj = PhoneConverter()
# Cria o objeto, inicializa a variável de entrada e converte.
obj.set_input("MINHA-ENTRADA")
obj.convert()
Todos os modos de utilização têm o mesmo resultado.
As variáveis str_input e str_converted foram criadas para que os valores de entrada e saída sejam guardados e manipulados caso novas funcionalidades sejam acrescentadas a classe.
A solução foi feita em Python 3.4.x.
Basta acessar a pasta findphone e para rodar os testes digite o comando python tests.py
.
Para rodar a leitura do arquivo de entrada python main.py"
Para alterar a entrada basta editar o arquivo "input.txt"