Também senti falta de mais exercícios para treinar o aprendizado do curso por aqui. Então segui a sugestão dada em outro tópico dos exercícios do site PythonBrasil - Exercícios de Classes (https://wiki.python.org.br/ExerciciosClasses) e realizei o exercício 11 para a criação da Classe Carro.
Vou deixar abaixo o código que criei utilizando o que aprendi aqui no curso de classes. Acredito que esteja funcionando corretamente.
class Carro:
def __init__(self, consumo, kilometragem, capacidade_tanque):
self.__consumo = consumo # km/litro
self.__kilometragem = kilometragem # Km atual do carro
self.__capacidade_tanque = capacidade_tanque # definir quantidade de combustível que cabe no tanque
self.__combustivel_no_tanque = 0 # carro começa com tanque sem combustível
def __verifica_tanque(self, valor):
if ((self.__combustivel_no_tanque + valor) <= self.__capacidade_tanque): # verifica se o combustível vai caber no tanque
return valor
else: #se não couber, vai completar o tanque
return (self.__capacidade_tanque - self.__combustivel_no_tanque) #retorna o que ainda cabe no tanque
def abastecer(self, volume): # abastecer o carro com valor solicitado ou completar a capacidade
abastecer = self.__verifica_tanque(volume)
self.__combustivel_no_tanque += abastecer
print("Tanque abastecido com {} litros de combustível. Seu tanque agora tem {} litros".format(abastecer, self.__combustivel_no_tanque))
def __pode_andar(self, kilometragem): # verifica se a quantidade de combustível no tanque é suficiente para rodar os Km solicitados
consumo = (kilometragem / self.__consumo) # litros que serão gastos na quilometragem percorrida
return (self.__capacidade_tanque >= consumo)
def andar(self, km): #Roda os km e adiciona no odometro do carro / reduz o combustível do tanque
if (self.__pode_andar(km)):
self.__kilometragem += km
self.__combustivel_no_tanque -= (km / self.__consumo)
else:
print("Combustível insuficiente para andar {}Km".format(km))
def tanque(self): #imprime a quantidade de litros que tem no tanque
print("Restam {} litros no tanque de combustível".format(self.__combustivel_no_tanque))
#propriedades da Classe Carro
@property
def consumo(self):
return self.__consumo
@property
def capacidade_tanque(self):
return self.__capacidade_tanque
@property
def kilometragem(self):
return self.__kilometragem
@property
def combustiven_no_tanque(self):
return self.__combustivel_no_tanque
Aceito correções ou sugestões de melhorias se necessário. Fica aqui uma opção para que outros alunos também possam exercitar os conhecimentos do curso.
Obrigado e bons estudos