Fundamentos de Programación y Python
¿Por qué aprender Python?
Introducción a Python
Conceptos Básicos de Programación
Práctica: Te doy la bienvenida a los ejercicios interactivos
Manipulación de Cadenas de Texto en Python
Enteros, Flotantes y Booleanos
Todo lo que Debes Saber sobre print en Python
Operaciones Matemáticas en Python
Operaciones de Entrada/Salida en Consola
Colección y Procesamiento de Datos en Python
Listas
Método slice
Listas de más dimensiones y Tuplas
Aplicación de Matrices
Diccionarios
Comprehension Lists en Python (CLASE NUEVA)
Control de Flujo en Python
Estructuras condicionales
Bucles y Control de Iteraciones
Generadores e Iteradores
Funciones y Manejo de Excepciones en Python
Uso de Funciones en Python
Funciones Lambda y Programación Funcional en Python
¿Cómo realizar una función recursiva en Python?
Manejo de Excepciones y Uso de Pass (CLASE NUEVA)
Programación Orientada a Objetos en Python
Fundamentos de Programación Orientada a Objetos en Python
Ejercicio Biblioteca con POO
Herencia en POO con Python
Objetos heredados
Los 4 pilares de la programacion orientada a objetos
Uso de super() en Python (CLASE NUEVA)
Superando los Fundamentos de Programación Orientada a Objetos en Python
Lectura y escritura de archivos
Manejo de Archivos .TXT (CLASE NUEVA)
Manejo de Archivos CSV (CLASE NUEVA)
Manejo de Archivos JSON (CLASE NUEVA)
Biblioteca estándar de Python
Librería Statistics y Análisis Estadístico (CLASE NUEVA)
Biblioteca estándar en Python (CLASE NUEVA)
Librería Os, Math y Random (CLASE NUEVA)
Proyecto final: Guerra naval
Conceptos avanzados de Python
Recapitulación de lo aprendido hasta ahora
Escribir código Pythonico y profesional
Comentarios y Docstrings en Python
Scope y closures: variables locales y globales
Anotaciones de tipo
Validación de tipos en métodos
Librería Collections y Enumeraciones
Decoradores
Decoradores en Python
Decoradores anidados y con parámetros
Uso de Decoradores en clases y métodos
Métodos y estructura de clases en Python
Métodos mágicos
Sobrecarga de operadores
Implementación de `if __name__ == "__main__":`
Metaprogramación en Python
Uso de *args y **kwargs
Métodos privados y protegidos
Gestión avanzada de propiedades
Métodos estáticos y de clase avanzados
Programación concurrente y asíncrona
Introducción a la concurrencia y paralelismo
Threading y multiprocessing en Python
Asincronismo con asyncio
Asincronismo y concurrencia
Creación de módulos y paquetes
Creación de módulos en Python
Gestión de paquetes
Publicación de paquetes en PyPI
Proyecto final
Implementación de un sistema completo
Implementación de un Sistema Completo
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Carli Code
El concepto de herencia en programación permite que una clase derive atributos y métodos de otra, facilitando la reutilización de código y la creación de estructuras jerárquicas lógicas. En este ejercicio, se aplica herencia para modelar una concesionaria que vende autos, bicicletas y camiones.
Primero, se define una clase base llamada Vehículo
, que contiene atributos comunes como marca, modelo, precio y disponibilidad. Los métodos básicos incluyen verificar disponibilidad, obtener el precio y vender el vehículo.
class Vehículo:
def __init__(self, marca, modelo, precio):
self.marca = marca
self.modelo = modelo
self.precio = precio
self.disponible = True
def vender(self):
if self.disponible:
self.disponible = False
print(f"El vehículo {self.marca} ha sido vendido.")
else:
print(f"El vehículo {self.marca} no está disponible.")
def estado(self):
return self.disponible
def get_price(self):
return self.precio
Las clases Auto
, Bicicleta
y Camión
heredan de Vehículo
. Cada una puede personalizar métodos específicos según sus necesidades.
class Auto(Vehículo):
def start(self):
if self.disponible:
return f"El motor del coche {self.marca} está en marcha."
else:
return f"El coche {self.marca} no está disponible."
def stop(self):
if self.disponible:
return f"El motor del coche {self.marca} se ha detenido."
else:
return f"El coche {self.marca} no está disponible."
Se crean instancias de Auto
, Cliente
y Concesionaria
para manejar el inventario y las ventas.
class Cliente:
def __init__(self, nombre):
self.nombre = nombre
self.autos = []
def comprar_auto(self, auto):
if auto.estado():
self.autos.append(auto)
auto.vender()
else:
print(f"El auto {auto.marca} no está disponible.")
class Concesionaria:
def __init__(self):
self.inventario = []
self.clientes = []
def añadir_auto(self, auto):
self.inventario.append(auto)
def registrar_cliente(self, cliente):
self.clientes.append(cliente)
def mostrar_disponibles(self):
for auto in self.inventario:
if auto.estado():
print(f"{auto.marca} {auto.modelo} está disponible por {auto.get_price()}.")
Finalmente, se crean instancias y se realizan operaciones para mostrar la funcionalidad del sistema.
# Crear autos
auto1 = Auto("Toyota", "Corolla", 20000)
auto2 = Auto("Honda", "Civic", 22000)
auto3 = Auto("Ford", "Mustang", 30000)
# Crear cliente
cliente = Cliente("Carlos")
# Crear concesionaria
concesionaria = Concesionaria()
concesionaria.añadir_auto(auto1)
concesionaria.añadir_auto(auto2)
concesionaria.añadir_auto(auto3)
concesionaria.registrar_cliente(cliente)
# Mostrar autos disponibles
concesionaria.mostrar_disponibles()
# Comprar auto
cliente.comprar_auto(auto1)
# Mostrar autos disponibles después de la compra
concesionaria.mostrar_disponibles()
Aportes 38
Preguntas 3
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?