Examen del nivel 2 — reforzado

Examen — preguntas inéditas

2.1 · Recuerdo

1. ¿Qué estructura elegir para asociar un código de cliente con su información?

El dict es el directorio: acceso por clave, .get() sin KeyError, recorrido en .items().
2.1 · Aplicación

2. Nabil escribe «copia = ventas» y luego modifica «copia». ¿Qué ocurre?

= comparte, no copia: .copy() en superficie, deepcopy() para lo anidado.
2.1 · Arbitraje

3. Un colega busca cada cliente recorriendo una lista de 50 000 líneas cada vez. ¿Veredicto de Nabil?

Buscar por identificador = dict indexado; la lista queda para el orden y el recorrido.
2.2 · Recuerdo

4. ¿Por qué preferir los f-strings a la concatenación con +?

f"Total: {total:.2f} €»: variable, cálculo y formato en una línea legible.
2.2 · Aplicación

5. Nabil lee una exportación con acentos rotos y un archivo a veces bloqueado. ¿Qué corrige?

with lo cierra solo incluso en error; encoding utf-8 conserva los acentos; «w» sobrescribe, no lee.
2.2 · Aplicación

6. El resumen de Nabil debe sobrevivir al reinicio y seguir siendo intercambiable. ¿Qué formato?

JSON = listas y dicts persistentes, legibles por otras herramientas; módulo csv para las hojas de cálculo.
2.3 · Recuerdo

7. ¿Qué designa «self» en un método?

self se escribe en la definición, nunca en la llamada: cada objeto conserva su propio estado.
2.3 · Aplicación

8. Nabil crea VentaDescuento(Venta) con una tasa y super().__init__(). ¿Qué ha hecho?

Herencia para es-un, poco profunda; composición (tiene-unas) si no.
2.3 · Arbitraje

9. Un colega propone 6 niveles de herencia y dicts + funciones globales «para ir rápido». ¿Veredicto?

Datos + comportamientos en clase, herencia medida, __str__/__eq__ y @dataclass si conviene.
2.4 · Aplicación

10. Nabil convierte una entrada con float(). ¿Cómo fiabilizarla?

Arriesgado preciso enmarcado, tipo dirigido, tratamiento real — nunca except desnudo.
2.4 · Aplicación

11. Un monto negativo llega en Venta(...). ¿Dónde rechazarlo?

raise señala el invariante violado en la fuente; finally limpia, else continúa si OK.
2.4 · Arbitraje

12. Un colega quiere un «except: pass» general para «no ver más errores». ¿Veredicto de Nabil?

Silenciar entierra los bugs vivos: solo se atrapa lo que se sabe tratar.
¿Y ahora qué?
Volver a la guíaÍndice de la guía