Ejercicios en Python – POO
Recordemos haber repasado la sección sobre Paradigma de objetos. En este último apartado veremos los ejercicios en Python con respecto a POO es decir, orientado a la programación orientada a objetos. De igual modo, también tocaremos temas de Herencia y Polimorfismo.
Table of Contents
ToggleEjercicio 1
Realizar un programa que conste de una clase llamada Estudiante, que tenga como atributos el nombre y la nota del alumno. Definir los métodos para inicializar sus atributos, imprimirlos y mostrar un mensaje con el resultado de la nota y si ha aprobado o no.
class Estudiante():
def __init__(self , nombre , nota):
self.nombre=nombre
self.nota=nota
def imprimir(self):
print(f»Nombre:{self.nombre} \nNota: {self.nota}»)
def resultados(self):
if self.nota >= 7:
print(«Has APROBADO!»)
else:
print(«Has REPROBADO!»)
estudiante1=Estudiante(«Pedro» , 5)
estudiante1.imprimir()
estudiante1.resultados()
estudiante2=Estudiante(«Elizabeth» , 7)
estudiante2.imprimir()
estudiante2.resultados()
Ejercicio 2
Crea una clase “Persona”. Con atributos nombre y edad. Además, hay que crear un método “cumpleaños”, que aumente en 1 la edad de la persona cuando se invoque sobre un objeto creado con “Persona”.
Tendríamos que lograr ejecutar el siguiente código con la clase creada:
p=Persona(«Nombre», edad)
p.cumpleaños()
print(f»{p.nombre} cumple {p.edad} años»)
class Persona:
def __init__(self, n, e):
self.nombre=n
self.edad=e
def cumpleaños(self):
self.edad += 1
p=Persona(input(«Ingrese nombre:»),int(input(«Ingrese edad: «)))
p.cumpleaños()
p.cumpleaños()
print(f»{p.nombre} cumple {p.edad} años»)
Ejercicio 3
Realizar un programa en el cual se declaren dos valores enteros por teclado utilizando el método __init__. Calcular después la suma, resta, multiplicación y división. Utilizar un método para cada una e imprimir los resultados obtenidos. Llamar a la clase Calculadora.
class Calculadora():
def __init__(self, num1, num2):
self._num1=num1
self._num2=num2
def suma(self):
resultado=self._num1 + self._num2
print(f»El resultado de la suma es: {self._num1} + {self._num2}={resultado}»)
def resta(self):
resultado=self._num1 – self._num2
print(f»El resultado de la resta es: {self._num1} – {self._num2}={resultado}»)
def division(self):
resultado=self._num1 // self._num2
print(f»El resultado de la divisón es: {self._num1} // {self._num2}= {resultado}»)
def multiplicacion(self):
resultado=self._num1 * self._num2
print(f»El resultado de la multiplicación es: {self._num1} * {self._num2} = {resultado}»)
operacion=Calculadora(10, 5)
operacion.suma()
operacion=Calculadora(20, 5)
operacion.resta()
operacion=Calculadora(15, 3)
operacion.division()
operacion=Calculadora(8, 4)
operacion.multiplicacion()
Ejercicio 4
Crear una clase “Persona” que sea la clase padre de otra clase “Estudiante”. Por tanto:
En la clase “Persona” su método __init__() debe de estar preparado para recibir nombre y apellido. Además, esta clase , debe tener un método para mostrar nombre_completo() el cual debe mostrar el nombre acompañado del apellido.
La otra clase “Estudiante”, debe de poder heredar de “Persona”, y además recibir los argumentos nombre y edad. También la clase “Estudiante”, recibe el valor “carrera”, y además contar con un método mostrar_carrera(). Las dos clases son obligatorias.
class Persona():
def __init__(self,nom,ape):
self.nombre=nom
self.apellido=ape
def nombre_completo(self):
print(self.nombre +» «+self.apellido)
class Estudiante(Persona):
def __init__(self,nom,ape,carr):
super().__init__(nom,ape)
self.carrera=carr
def mostrar_carrera(self):
print(self.carrera)
Ejercicio 5
Crear una clase Fabrica que tenga los atributos de Llantas, Color y Precio; luego crear dos clases más que hereden de Fabrica, las cuales son Moto y Carro.
Crear métodos que muestren la cantidad de llantas, color y precio de ambos transportes. Por último, crear objetos para cada clase y mostrar por pantalla los atributos de cada uno.
class Fabrica():
def __init__(self, llantas, color, precio):
self._llantas=llantas
self._color=color
self._precio=precio
class Moto(Fabrica):
def cantidad(self):
print(«La cantidad de llantas: {}\nEl color es: {}\nEl precio es: {}».format(self._llantas,self._color,self._precio))
class Carro(Fabrica):
def cantidad(self):
print(«La cantidad de llantas: {}\nEl color es: {}\nEl precio es: {}».format(self._llantas,self._color,self._precio))
print(«OBJETO=moto»)
moto=Moto(2, «Gris», «$200»)
moto.cantidad()
print(«OBJETO=carro»)
carro=Carro(4 ,»Negro», «$600»)
carro.cantidad()
Ejercicio 6
Crear una clase llamada Marino(), con un método que sea hablar, en donde muestre un mensaje que diga «Hola, soy un animal marino!». Luego, crear una clase Pulpo() que herede Marino, pero modificar el mensaje de hablar por «Hola soy un Pulpo!».
Por último, crear una clase Foca(), heredada de Marino, pero que tenga un atributo nuevo llamado mensaje y que muestre ese mesjae como parámetro.
class Marino():
def hablar(self):
print(«Hola soy un animal marino!»)
class Pulpo(Marino):
def hablar(self):
print(«Hola soy un pulpo!»)
class Foca(Marino):
def hablar(self,mensaje):
self.mensaje=mensaje
print(mensaje)
marino=Marino()
marino.hablar()
pulpo=Pulpo()
pulpo.hablar()
foca=Foca()
foca.hablar(«Hola soy una foca!»)
Ejercicio 7
Desarrollar un programa con tres clases:
La primera debe ser Universidad, con atributos nombre (Donde se almacena el nombre de la Universidad). La segunda llamada Carerra, con los atributos especialidad (En donde me guarda la especialidad de un estudiante). Y por último, una llamada Estudiante, que tenga como atributos su nombre y edad. El programa debe imprimir la especialidad, edad, nombre y universidad de dicho estudiante con un objeto llamado persona.
class Universidad():
def __init__(self,Nombre):
self.Nombre=Nombre
class Carerra():
def carrera(self,especialidad):
self.especialidad=especialidad
class Estudiante(Universidad,Carerra):
def datos(self,nombre,edad):
self.nombre=nombre
self.edad=edad
print(f»El nombre del estudiante es {self.nombre}, tiene {self.edad} años, su especialidad es {self.especialidad}. Estudia en la Universidad {self.Nombre}»)
persona=Estudiante(«Hardvard»)
persona.carrera(«Ingeniería mecatronica»)
persona.datos(«Mike», 19)