Enunciado y solución de ejercicios resueltos en Python: programación funcional (estructurada) y uso de excepciones (captura de errores). Se incluye la descarga del código fuente completo de los ejercicios en Python.

Ejercicio resuelto Python 1: programación funcional (estructurada)

Enunciado ejercicio 1

Desarrolla un programa en Python que realice las siguientes acciones:

  • El programa debe solicitar al usuario por consola que introduzca una frase.
  • El programa debe solicitar al usuario por consola que introduzca una palabra o carácter a buscar.
  • El programa debe solicitar al usuario por consola que introduzca una palabra o carácter a reemplazar.
  • Se realizará una función llamada ReemplazarCadena a la que se le pasen tres argumentos strings con los siguientes nombres:
    • cadena: para la cadena de texto (la frase completa).
    • palReemplazar: la palabra o carácter que se reemplazará en dicha cadena (la que se buscará para reemplazar).
    • palNueva: la palabra o carácter por la que se reemplazará la palReemplazar.
  • La función ReemplazarCadena debe devolver la cadena de texto con todas las apariciones de palReemplazar reemplazadas por palNueva.

El programa mostrará por pantalla la frase resultante con el reemplazo de todas las coincidencias de palReemplazar en cadena, reemplazadas por palNueva.

Por otro lado, a continuación, se definirá una lista en el programa llamada listaNumeros, con los siguientes valores:

[“uno”, “dos”, “tres”, “cuatro”, “cinco”, «seis», «siete», «ocho», «nueve», «diez»]

Se le aplicará la función ReemplazarCadena, quitándole el carácter «o» y aplicando la función ReemplazarCadena sobre dicha lista con un iterador de orden superior (map). La aplicación mostrará el resultado por pantalla.

Pista: para la segunda parte del ejercicio, modifica la función ReemplazarCadena, añadiendo al argumento palReemplazar el valor por defecto «o» y al argumento palNueva el valor «» (vacío). De esta forma la función ReemplazarCadena te servirá para ambos casos.

Solución ejercicio 1 en Python

La solución propuesta al ejercicio 1, como ejemplo de uso de programación estructurada (funcional) y de iteradores de orden superior (map), podría ser:

Ejemplo de ejecución del ejercicio 1 en Python

La compilación del ejercicio 1, introduciendo los siguientes valores:

Introduzca una frase: Esto es una prueba de reemplazo de palabra
Introduzca la palabra/carácter a buscar: a
Introduzca la palabra/carácter con el que se reemplazará:

En este ejemplo de ejecución, buscaremos el carácter «a» en la frase introducida y lo reemplazaremos por «» (vacío).

Hacemos una segunda ejecución del programa, con los siguientes valores introducidos:

Introduzca una frase: Segunda prueba de reemplazo en Python
Introduzca la palabra/carácter a buscar: reemplazo
Introduzca la palabra/carácter con el que se reemplazará: sustitución

En este caso, reemplazará todas las veces que aparezca la palabra «reemplazo» por la palabra «sustitución».

La aplicación Python también devolverá la lista de elementos original y la lista de elementos sin el carácter «o»:

[‘uno’, ‘dos’, ‘tres’, ‘cuatro’, ‘cinco’]
[‘un’, ‘ds’, ‘tres’, ‘cuatr’, ‘cinc’]

Ejercicio resuelto Python 2: excepciones (captura de errores)

Enunciado ejercicio 2

Dada la clase Persona, con la siguiente definición y redefinición del método __str__:

Se pide que se instancie la clase Persona, pasándole unos valores a sus atributos DNI, nombre y apellidos. El programa, en el constructor de la clase Persona, debe comprobar si se ha introducido un dato diferente de string (texto) para los atributos nombre y apellidos, si es así, mostrará un error.

El alumno debe realizar una captura de excepciones, creando una clase propia para personalizar el texto de la excepción. Si en el atributo nombre o en el atributo apellidos se introduce un tipo de datos diferente de string, forzará la excepción correspondiente, mostrando al usuario un texto personalizado.

Solución ejercicio 2 en Python

Una posible solución al ejercicio Python de ejemplo de captura de errores (excepciones), en el constructor de una clase, podría ser:

Ejemplo de ejecución del ejercicio 2 en Python

Al ejecutar el programa, podremos comprobar que devolverá la persona instanciada con sus atributos DNI, nombre y apellidos, de forma correcta y, a continuación, también devolverá un error porque se ha introducido el nombre en tipo de datos numérico:

Persona: DNI: 5252525K, Nombre: Alonso, Apellidos: Proyecto A
Error al introducir el nombre o los apellidos: Tipo de dato no válido para el nombre o los apellidos
Persona: DNI: 5252525K, Nombre: , Apellidos:

Descarga de los ficheros Python con los ejercicios resueltos

En el siguiente enlace os proporcionamos la descarga del código fuente completo en Python con la solución de los dos ejercicios: