Para não repetir cada pergunta, deixei dentro as marcações #[x], onde x representa o número do exercício e o código abaixo a resolução. .
Todas as classes estão no mesmo diretório
veiculo.py
#[1]
class Veiculo:
def __init__(self, marca, modelo):
self._marca = marca
self._modelo = modelo
self._ligado = False
@property
def funcionamento(self):
return 'Ligado' if self._ligado else 'Desligado'
#[2]
def __str__(self):
return f'{self._marca:<13}{self._modelo:<13}{self.funcionamento:<15}'
carro.py
#[3]
from veiculo import Veiculo
class Carro(Veiculo):
def __init__(self,marca, modelo,portas ):
super().__init__(marca, modelo)
self._portas = portas
#[4]
def __str__(self):
return f'{super().__str__()}{self._portas} portas'
moto.py
from veiculo import Veiculo
#[5]
class Moto(Veiculo):
def __init__(self,marca, modelo, tipo):
super().__init__(marca, modelo)
self._tipo = tipo
#[6]
def __str__(self):
return f'{super().__str__()}{self._tipo}'
main.py
#9.Exiba as Informações: Para cada instância, imprima no console as informações utilizando o método str.
#[7] e #[8]
from carro import Carro
from moto import Moto
carro1 = Carro('Mercedez','G 550', 4)
carro2 = Carro('Toyota','Cross', 4)
carro3 = Carro('Volkswagen','Amarok V6', 4)
moto1 = Moto('Honda', 'Hornet', 'Esportiva')
moto2 = Moto('kawasaki', 'Ninja', 'Esportiva')
moto3 = Moto('Yamaha', 'NMAX', 'Casual')
#[9]
def main():
print(f'{'MARCA':<13}{'MODELO':<13}{'STATUS':<15}{'CARACTERÍSTICA'}')
print('-'*50)
print(carro1)
print(carro2)
print(carro3)
print(moto1)
print(moto2)
print(moto3)
if __name__ == '__main__':
main()