ESTRUCTURAS DE CONTROL EN PYTHON · Tema 5: Manejo de excepciones y código robusto

Evaluación UT05 es un examen público disponible en TesIA Exam con preguntas de 1 bloques. Esta ficha pública reúne preguntas con respuesta correcta y explicación para estudiar por examen completo. Trabaja especialmente temas como Tema 5: Manejo de excepciones y código robusto. La referencia de centro o procedencia visible es CIFP Cesar Manrique.

15 preguntas Estructuras de Control en Python CIFP Cesar Manrique Referencia: Evaluación UT05

Qué puedes encontrar en este examen

Cada URL pública de examen sirve para localizar el contenido, entender qué bloques toca y revisar preguntas reales antes de abrir la práctica completa.

Tema 5: Manejo de excepciones y código robusto

Preguntas, respuestas y explicaciones del examen

Listado público de preguntas asociadas a este examen, con respuesta correcta y explicación cuando está disponible.

#1

Pregunta 6. Pydantic utiliza anotaciones de tipo para realizar validaciones automáticas de datos

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

A) Verdadero

Explicación:

La respuesta correcta es A. La respuesta correcta es Verdadero. Pydantic aprovecha los 'type hints' de Python para forzar el cumplimiento de tipos en tiempo de ejecución.

#2

Pregunta 8. Es una buena práctica silenciar errores usando "except pass" frecuentemente

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

B) Falso

Explicación:

La respuesta correcta es B. also. Silenciar excepciones sin gestionarlas es una de las peores prácticas en programación (conocida como 'swallowing exceptions').

#3

Pregunta 12. ¿Qué característica de las pruebas unitarias asegura que den el mismo resultado si el código no ha cambiado?

  1. A) Refactorización
  2. B) Rapidez
  3. C) Determinismo
  4. D) Aislamiento
Respuesta correcta

C) Determinismo

Explicación:

La respuesta correcta es C. l Determinismo. Esta propiedad garantiza que la ejecución de un test sea predecible y reproducible en cualquier entorno.

#4

Pregunta 14. ¿Cuál es la función de las "cláusulas de guarda" en el Clean Code?

  1. A) Asegurar que los archivos se cierren con gestores de contexto
  2. B) Obligar al uso de Type Hints en todas las variables
  3. C) Validar condiciones de error al inicio de una función para evitar anidamientos excesivos
  4. D) Permitir que una función realice múltiples responsabilidades (SRP)
Respuesta correcta

C) Validar condiciones de error al inicio de una función para evitar anidamientos excesivos

Explicación:

La respuesta correcta es C. La respuesta correcta es validar condiciones de error al inicio de la función. Las cláusulas de guarda permiten 'salir' de la función inmediatamente si los argumentos son inválidos, dejando el camino libre para la lógica.

#5

Pregunta 7. Empareja el archivo de logging con su configuración

Tipo: relacionar columnas.

Columna A

  • Filename
  • Filemode 'w'
  • Filemode 'a'
  • Format

Columna B

  • Ruta del archivo de registro
  • Sobrescribir el archivo
  • Añadir al final del archivo
  • Estructura del mensaje (fecha, nivel)
Respuesta correcta
  • Filename -> Ruta del archivo de registro
  • Filemode 'w' -> Sobrescribir el archivo
  • Filemode 'a' -> Añadir al final del archivo
  • Format -> Estructura del mensaje (fecha, nivel)
Explicación:

La respuesta correcta describe los parámetros de configuración del módulo 'logging' de Python. 'Filename' indica dónde se guardarán los registros físicamente. El modo 'w' borra el contenido previo al iniciar, mientras que 'a' (append) conserva los registros antiguos añadiendo los nuevos debajo. 'Format' define qué metadatos acompañarán al texto del log para facilitar su posterior análisis.

#6

Pregunta 2. Empareja la herramienta de prueba con su origen

Tipo: relacionar columnas.

Columna A

  • Pydantic
  • pytest
  • pdb

Columna B

  • Validación de datos y tipos
  • Framework de pruebas unitarias
  • Depurador nativo de Python
Respuesta correcta
  • Pydantic -> Validación de datos y tipos
  • pytest -> Framework de pruebas unitarias
  • pdb -> Depurador nativo de Python
Explicación:

La respuesta correcta asocia cada herramienta técnica con su función primordial dentro del ecosistema de Python. Pydantic se especializa en la validación de esquemas y tipos de datos mediante anotaciones. Pytest es el estándar de facto para escribir y ejecutar suites de pruebas unitarias de manera eficiente. Por su parte, pdb es el módulo integrado en la biblioteca estándar que permite inspeccionar el código paso a paso.

#7

Pregunta 3. Empareja el nivel de validación con su objetivo

Tipo: relacionar columnas.

Columna A

  • Format Validation
  • Business Logic
  • Type Validation
  • Domain Validation

Columna B

  • Estructura (Email, DNI)
  • Reglas de negocio complejas
  • Clase del dato (int, str)
  • Rangos y valores válidos
Respuesta correcta
  • Format Validation -> Estructura (Email, DNI)
  • Business Logic -> Reglas de negocio complejas
  • Type Validation -> Clase del dato (int, str)
  • Domain Validation -> Rangos y valores válidos
Explicación:

La respuesta correcta establece la jerarquía de comprobaciones necesarias para un código robusto. La validación de formato asegura que los strings sigan patrones como una dirección de correo. La validación de tipos confirma que el dato sea, por ejemplo, un entero antes de operar.

#8

Pregunta 4. ¿Qué procesos se consideran "sanitización" de datos en Python?

  1. A) Validar el rango con un if
  2. B) Capturar un ValueError con try
  3. C) Normalizar a minúsculas (lower)
  4. D) Eliminar espacios con strip()
Respuesta correcta
  • C) Normalizar a minúsculas (lower)
  • D) Eliminar espacios con strip()
Explicación:

La respuesta correcta es C y D. La respuesta correcta son las opciones C y D.
La sanitización consiste en limpiar o transformar la entrada para que sea uniforme, como quitar espacios extra o igualar mayúsculas.

#9

Pregunta 13. El uso de 'with' (Context Manager) garantiza que los recursos se liberen aunque ocurra una excepción

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

A) Verdadero

Explicación:

La respuesta correcta es A. La respuesta correcta es Verdadero. La sentencia 'with' invoca automáticamente los métodos especiales del protocolo de gestión de contexto (__enter__ y __exit__).

#10

Pregunta 1. En Python, "explícito es mejor que implícito", por lo que se deben capturar excepciones específicas

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

A) Verdadero

Explicación:

La respuesta correcta es A. La respuesta correcta es Verdadero.
Siguiendo la filosofía del Zen de Python (PEP 20), es fundamental que el programador sea preciso al gestionar errores para evitar que fallos inesperados queden ocultos.

#11

Pregunta 9. Seleccione las excepciones que se clasifican como "Excepciones de datos y tipos" o "Matemáticas" según la tabla de los apuntes

  1. A) FileNotFoundError
  2. B) TypeError
  3. C) ZeroDivisionError
  4. D) ValueError
Respuesta correcta
  • B) TypeError
  • C) ZeroDivisionError
  • D) ValueError
Explicación:

La respuesta correcta es B, C y D. La respuesta correcta incluye TypeError, ZeroDivisionError y ValueError. Estas excepciones ocurren cuando los datos no son del tipo esperado, se intenta una operación matemática imposible o el valor es inapropiado para una.

#12

Pregunta 15. El error de sintaxis ocurre exclusivamente en tiempo de ejecución

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

B) Falso

Explicación:

La respuesta correcta es B. also. Los errores de sintaxis (SyntaxError) son detectados por el intérprete de Python durante la fase de análisis (parsing) antes de que el programa comience a ejecutarse.

#13

Pregunta 5. Las pruebas unitarias deben ser deterministas, es decir, dar siempre el mismo resultado si el código no cambia

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

A) Verdadero

Explicación:

La respuesta correcta es A. La respuesta correcta es Verdadero. El determinismo es una propiedad esencial de los tests para garantizar que los fallos detectados se deban exclusivamente a cambios en la lógica del código.

#14

Pregunta 10. En la validación de un cajero automático, ¿qué errores se suelen lanzar con raise?

  1. A) ValueError (para cantidades negativas)
  2. B) RuntimeError (para fondos insuficientes)
  3. C) StopIteration (para fin de sesión)
  4. D) SyntaxError (para claves incorrectas)
Respuesta correcta
  • A) ValueError (para cantidades negativas)
  • B) RuntimeError (para fondos insuficientes)
Explicación:

La respuesta correcta es A y B. ValueError es adecuado para indicar que un dato (cantidad) no cumple con los requisitos lógicos. RuntimeError o una excepción personalizada son apropiados para estados de error durante la ejecución como.

#15

Pregunta 11. ¿Por qué se considera una mala práctica usar "except Exception" de forma genérica?

  1. A) Porque consume demasiada memoria del sistema.
  2. B) Porque obliga al programador a usar bloques try más grandes
  3. C) Porque atrapa incluso señales de control no deseadas como el CTRL+C
  4. D) Porque solo funciona para errores de tipo ValueError
Respuesta correcta

C) Porque atrapa incluso señales de control no deseadas como el CTRL+C

Explicación:

La respuesta correcta es C. La respuesta correcta es que atrapa señales de control como el atajo de teclado para interrumpir el programa. Al usar la clase base Exception, el programa puede volverse 'imparable' ante intentos legítimos de cierre por parte del.

Temas incluidos

Otros exámenes de Estructuras de Control en Python

Practicar este examen

Puedes abrir TesIA Exam y localizar este examen con el mismo nombre para practicarlo en modo estudio o examen, revisar respuestas y continuar tu progreso.