Boa noite, Apenas para praticar os conceitos importantes dessa aula, resolvi escrever uma classe que recebe um número e gera uma tabuada de multiplicar de 1 a 10 com o número informado. É claro que existem implementações mais fáceis para no final, termos uma simples tabuada, mas o objetivo aqui foi exercitar os conceitos da aula... Até aqui ela só faz a operação de multiplicação, de 1 até 10 e não há tratamento da entrada do usuário (espera-se que seja sempre um inteiro). Fica a critério dos colegas melhorar o programa...
Segue o código
class Tabuada:
def __init__(self, tabuada_de): #construtor recebe um número que servirá de base para a tabuada
self._tabuada_de = tabuada_de
def prepara_lista_base(self): #prepara a lista com o número repetido da tabuada que será utilizada no enumerate posteriormente
lista_base_int = []
for i in range(11):
lista_base_int.append(self._tabuada_de)
return lista_base_int
def prepara_tabuada(self):
tabuada = list(enumerate(self.prepara_lista_base())) #cria uma lista com as tuplas (enumerador, numero da tabuada)
tabuada.remove(tabuada[0]) #retiramos a primeira tupla da lista com enumerador 0 (nossa tabuada vai de 1 a 10 multiplicado por X)
return tabuada
def __str__(self): #imprime a tabuada aplicando a operação de multiplicação e tornando o objeto printável
linha =""
print(f'*** TABUADA DE {self._tabuada_de} DE MULTIPLICAR***')
for n1, n2 in self.prepara_tabuada():
linha = linha + f'{n2} x {n1} = {n1 * n2}\n'
return linha
tab = Tabuada(10)
print(tab)
Vamos praticar!