arrow_backVolver a field notes
PYTHON Publicado 4 ago 2026

Programación para el examen: respuestas de Python que puntúan

Cómo escribir código Python en exámenes que efectivamente obtiene la puntuación completa — estructura, casos límite y gestión del tiempo bajo presión.

Los correctores de exámenes no ejecutan tu código a través de un debugger durante veinte minutos. Lo leen una vez, quizás dos, y lo verifican contra una rúbrica. Una solución que funciona pero ignora la rúbrica puede perder puntos, mientras que una ligeramente más tosca que cumple cada punto de control puede puntuar más alto. Escribir Python para un examen es una habilidad diferente a escribir Python para un proyecto real, y vale la pena practicarla por separado.

Lee la rúbrica antes de leer el problema dos veces

La mayoría de exámenes de programación — preguntas de respuesta libre estilo AP CS A, exámenes parciales universitarios, evaluaciones de bootcamps de codificación — publican reglas de crédito parcial. Una línea típica de rúbrica se ve así: "1 punto por estructura de bucle correcta, 1 punto por valor de retorno correcto, 1 punto por manejar el caso de lista vacía." Si escribes una densa línea única que obtiene la respuesta correcta pero omite un bucle explícito, algunos correctores te descontarán puntos incluso aunque el resultado sea correcto.

Antes de escribir nada, identifica las piezas que un corrector probablemente verificará por separado:

  • La firma de función coincide exactamente con lo solicitado (nombre, orden de parámetros, tipo de retorno)
  • Caso base y caso recursivo, si se espera recursión
  • Límites del bucle (los errores off-by-one son la pérdida de puntos más común)
  • Casos límite: entrada vacía, entrada de un elemento, números negativos, duplicados

Escribe estos como comentarios primero. # handle empty list, # base case: n == 0. Esto cuesta diez segundos y garantiza que no olvides el caso que un corrector específicamente busca.

Estructura el código para que el crédito parcial sea visible

Compara dos respuestas a "escribe una función que devuelva el segundo número más grande en una lista":

def second_largest(nums):
    return sorted(nums)[-2]
def second_largest(nums):
    if len(nums) < 2:
        return None
    largest = second = float('-inf')
    for n in nums:
        if n > largest:
            second = largest
            largest = n
        elif n > second and n != largest:
            second = n
    return second

La primera es correcta para entrada bien formada pero falla en una lista con menos de dos elementos y da una respuesta incorrecta en duplicados como [5, 5, 3] (devuelve 5, posiblemente incorrecto dependiendo de la especificación). La segunda es más larga pero cada línea de rúbrica — caso límite, lógica correcta, retorno correcto — es explícita y obtiene su propia línea que un corrector puede verificar. En un examen cronometrado, la segunda versión puntúa más alto casi siempre, aunque tarde más en escribir.

No optimices prematuramente, tampoco dejes errores obvios sin resolver

Las preguntas de examen raramente prueban conocimiento de Big-O a menos que lo digan directamente. Si el enunciado dice "escribe una función que encuentre duplicados," un bucle anidado en O(n²) está bien a menos que el enunciado especifique entrada grande o pida una solución eficiente. Gastar tiempo de examen convirtiendo a un enfoque basado en set O(n) cuando no se pidió es tiempo que no recuperas.

Dicho esto, algunos errores siempre te costarán puntos independientemente de la rúbrica:

  • Usar == en lugar de is de manera inconsistente causando errores de lógica (raro en exámenes de Python pero aparece en preguntas pesadas en comparaciones)
  • Mutar una lista mientras iteras sobre ella — for x in lst: lst.remove(x) es una trampa clásica de examen que produce resultados silenciosamente incorrectos
  • Olvidar return e imprimir en su lugar — muchos autograders verifican valores de retorno, no stdout
  • Off-by-one en range()range(len(nums)) vs range(len(nums) - 1) vale la pena verificar cada vez que lo escribas

Traza tu código a mano antes de enviar

En exámenes en papel y la mayoría de exámenes de codificación en navegador, no puedes ejecutar el código. Elige un pequeño ejemplo y trázalo línea por línea, escribiendo los valores de las variables conforme avanzas. Esto atrapa quizás el 80% de errores de lógica en menos de dos minutos, y es la cosa de mayor valor que puedes hacer con tiempo restante.

Para funciones recursivas específicamente, traza al menos dos niveles de profundidad y escribe explícitamente el caso base alcanzado. Los correctores frecuentemente dan un punto solo por demostrar que el caso base termina correctamente, separado del punto por el caso recursivo siendo correcto.

Gestiona el reloj como un recurso, no como una ocurrencia tardía

Si una sección de respuesta libre vale 9 puntos entre tres subpreguntas, presupuesta tiempo aproximadamente igual y continúa si quedas atrapado pasado ese presupuesto — una parte (b) medio escrita pero casi correcta vale más puntos brutos que una parte (a) perfecta y una parte (c) en blanco. Escribe una función esqueleto con la firma correcta y un pass o una suposición incluso si no puedes terminar la lógica; una firma correcta sola a veces vale un punto de rúbrica por sí sola.

Para más información sobre escribir Python limpio y comprobable fuera del aula, y sobre estructuras de datos que aparecen constantemente en estas preguntas, revisa los segmentos relacionados de Python y Ciencias de la Computación en Korra Studio.

Escrito con asistencia de IA, revisado y publicado por Michal Pilch (CISSP), Korra Studio.

¿Listo para ir más allá?

Esta es una nota de la base de conocimiento de Korra Studio — la plataforma combina cada tema con mentoría 1 a 1.

Empezar gratisarrow_forward