Update Python Ofensivo
This commit is contained in:
parent
bb39d2366f
commit
818ec91771
81
python-ofensivo/05_proyecto_flota_vehiculos/exercise.py
Normal file
81
python-ofensivo/05_proyecto_flota_vehiculos/exercise.py
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# /usr/bin/env python3
|
||||||
|
|
||||||
|
class Vehiculo:
|
||||||
|
|
||||||
|
def __init__(self, matricula, modelo):
|
||||||
|
|
||||||
|
self.matricula = matricula
|
||||||
|
self.modelo = modelo
|
||||||
|
self.disponible = True
|
||||||
|
|
||||||
|
def alquilar(self):
|
||||||
|
|
||||||
|
if self.disponible:
|
||||||
|
self.disponible = False
|
||||||
|
return
|
||||||
|
|
||||||
|
print(
|
||||||
|
f"\n[!] El vehículo con matrícula {self.matricula} no está disponible")
|
||||||
|
|
||||||
|
def devolver(self):
|
||||||
|
|
||||||
|
if not self.disponible:
|
||||||
|
self.disponible = True
|
||||||
|
return
|
||||||
|
|
||||||
|
print(
|
||||||
|
f"\n[!] El vehículo con matrícula {self.matricula} no está alquilado")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
|
||||||
|
return f" Vehículo(mat={self.matricula}, mod={self.modelo}, disp={'Sí' if self.disponible else 'No'})"
|
||||||
|
|
||||||
|
|
||||||
|
class Flota:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
|
||||||
|
self.vehiculos = []
|
||||||
|
|
||||||
|
def agregar_vehiculo(self, vehiculo):
|
||||||
|
|
||||||
|
self.vehiculos.append(vehiculo)
|
||||||
|
|
||||||
|
def mostrar_vehiculos(self):
|
||||||
|
|
||||||
|
for vehiculo in self.vehiculos:
|
||||||
|
print(vehiculo)
|
||||||
|
|
||||||
|
def alquilar_vehiculo(self, matricula):
|
||||||
|
|
||||||
|
for vehiculo in self.vehiculos:
|
||||||
|
if vehiculo.matricula == matricula:
|
||||||
|
vehiculo.alquilar()
|
||||||
|
|
||||||
|
def devolver_vehiculo(self, matricula):
|
||||||
|
|
||||||
|
for vehiculo in self.vehiculos:
|
||||||
|
if vehiculo.matricula == matricula:
|
||||||
|
vehiculo.devolver()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
|
||||||
|
return "\n".join([str(vehiculo) for vehiculo in self.vehiculos])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
flota = Flota()
|
||||||
|
|
||||||
|
flota.agregar_vehiculo(Vehiculo('1234ABC', 'Ford Fiesta'))
|
||||||
|
flota.agregar_vehiculo(Vehiculo('5678DEF', 'Renault Clio'))
|
||||||
|
|
||||||
|
print(f"\n[+] Flota inicial:\n{flota}")
|
||||||
|
|
||||||
|
flota.alquilar_vehiculo('1234ABC')
|
||||||
|
|
||||||
|
print(f"\n[+] Flota después de alquilar el Ford Fiesta:\n{flota}")
|
||||||
|
|
||||||
|
flota.devolver_vehiculo('1234ABC')
|
||||||
|
|
||||||
|
print(f"\n[+] Flota después de devolver el Ford Fiesta:\n{flota}")
|
Loading…
Reference in New Issue
Block a user