Referente ao curso Python 3: Avançando na orientação a objetos, estou com dificuldade em entender quando e como aplico a OO. Fiz o código abaixo para praticar e aparentemente esta funcionando corretamente. Mas ainda acho que não entendi a finalidade da OO para continuar o curso e aprender as outras funções da OO como henraça e demais. Gostaria de saber se estou indo no caminho certo ou se estou viajando na forma como escrevi. Se for isso, como seria o certo. Se neste caso não for necessário aplicar OO, teria como me mostrar um código em que a OO foi aplicado corretamente? É meu primeiro contato com programação e acho que estou perdido. O que me deixa mais na duvida é que meus códigos trazem o resultado esperado, mas não sei se estou fazendo da forma correta.
import statistics
class Estatistica:
def __init__(self, n_elementos):
self.__n_elementos = int(n_elementos)
self.numeros = []
self.media = 0
self.variancia = 0
self.desvio_padrao = 0
@property
def n_elementos(self):
return self.__n_elementos
@n_elementos.setter
def n_elementos(self,novo_n_elementos):
self.__n_elementos = int(novo_n_elementos)
def incluir_valores(self):
self.numeros = []
for x in range(0,self.n_elementos):
numero = int(input(f"Digite o {x + 1}º valor: "))
self.numeros.append(numero)
return self.numeros.sort()
def visualizar_valores(self):
return self.numeros
def calcular_media(self):
self.media = statistics.mean(self.numeros)
def calcular_variancia(self):
self.variancia = statistics.variance(self.numeros,self.media)
def calcular_desvio_padrao(self):
self.desvio_padrao = statistics.stdev(self.numeros,self.media)
continuar = False
while not continuar:
dados = Estatistica(int(input("Digite a quantidade de alunos: ")))
dados.incluir_valores()
dados.calcular_media()
dados.calcular_variancia()
dados.calcular_desvio_padrao()
print(f"Valores recebidos {dados.numeros}\nMédia: {dados.media}\nVariancia: {dados.variancia}\nDesvio Padrão: {dados.desvio_padrao}\n")
resposta = input("Responda SIM para continuar ou qualquer tecla para encerrar ")
resposta = resposta.upper().strip()
continuar = resposta != "SIM"