1
resposta

[Projeto] Aplicando conceitos da aula 6 - lista, tupla, range, enumerated e orientação a objeto numa Tabuada :)

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!

1 resposta

Olá Luis, como você está?

Peço desculpas pela demora em obter um retorno.

Parabéns pela iniciativa de exercitar os conceitos aprendidos na aula e criar uma classe para gerar a tabuada. É muito importante praticar para fixar o conteúdo e aprimorar nossas habilidades técnicas.

Se me permite, uma sugestão é permitir ao usuário a digitação do valor da tabuada que deseja obter e validar que apenas números sejam digitados. Podemos utilizar a função isdigit() que garante que apenas números inteiros sejam aceitos no código. Exemplo:

entrada_usuario = input("Digite o número que deseja obter a tabuada: ")

while not entrada_usuario.isdigit():
  entrada_usuario = input("Entrada inválida. Digite apenas números inteiros: ")

tab = Tabuada(int(entrada_usuario))
print(tab)

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!