StudyToCert

Lecciones en español / PCEP / Hoja de repaso · English

Hoja de repaso de PCEP PCEP-30-02

Cada consejo para el examen y término clave de las lecciones gratuitas de PCEP, por dominio. Usa la opción Imprimir de tu navegador para guardarla como PDF.

Dominio 1: Computer programming and Python fundamentals (18%)

Consejos para el examen

Términos clave

Source code (código fuente)
El texto del programa, legible por humanos, que escribes; en Python se guarda como un archivo .py de texto plano.
Compiler (compilador)
Un programa que traduce todo el código fuente a código máquina por adelantado, produciendo un ejecutable separado.
Interpreter (intérprete)
Un programa que lee y ejecuta el código fuente cada vez que se ejecuta, instrucción por instrucción; CPython es el intérprete de referencia de Python.
Lexis (léxico)
El vocabulario de un lenguaje: las palabras y símbolos válidos que reconoce.
Syntax (sintaxis)
Las reglas gramaticales para combinar los elementos léxicos en instrucciones válidas.
Semantics (semántica)
Las reglas que deciden si una instrucción bien formada tiene sentido y qué significa.
Keyword (palabra clave)
Una palabra reservada con significado fijo, como if, for o def, que no puede usarse como identificador.
Block (bloque, suite)
El grupo de instrucciones indentadas que pertenece a una línea de encabezado que termina en dos puntos.
Comment (comentario)
Texto después de # hasta el final de la línea, que el intérprete ignora.
IndentationError
La subclase de SyntaxError que se lanza cuando la indentación falta, es inesperada o es inconsistente.
Literal
Un valor escrito directamente en el código fuente, cuya forma determina su tipo.
Scientific notation (notación científica)
Notación de float que usa e o E para una potencia de diez, como en 6.02e23; siempre produce un float.
bool
El tipo booleano con los valores True y False, una subclase de int donde True equivale a 1 y False a 0.
str
El tipo de texto de Python, escrito entre comillas simples, dobles o triples.
0b prefix (prefijo 0b)
Marca un literal entero binario (base 2), que usa solo los dígitos 0 y 1.
0o prefix (prefijo 0o)
Marca un literal entero octal (base 8), que usa los dígitos del 0 al 7.
0x prefix (prefijo 0x)
Marca un literal entero hexadecimal (base 16), que usa del 0 al 9 y de la A a la F.
bin(), oct(), hex()
Funciones integradas que devuelven una representación en cadena de un entero en base 2, 8 o 16, con prefijo.
Variable
Un nombre vinculado a un valor mediante asignación; el valor, no el nombre, es el que tiene un tipo.
Identifier (identificador)
Cualquier nombre que creas; debe usar letras, dígitos y guiones bajos, y no debe empezar con un dígito ni ser una palabra clave.
PEP 8
La guía de estilo oficial de Python, que recomienda snake_case para variables y funciones y UPPER_CASE para constantes.
Shadowing a built-in (ocultar una función integrada)
Asignar un valor a un nombre integrado como list o str, lo que oculta la función original en ese ámbito.
True division (/) (división real)
División que siempre devuelve un float, incluso para resultados exactos como 4 / 2 = 2.0.
Floor division (//) (división entera)
División redondeada hacia abajo, hacia menos infinito; int con dos ints, float en otro caso.
Modulo (%) (módulo)
El resto que acompaña a la división entera; en Python toma el signo del divisor.
Exponentiation (**) (exponenciación)
Eleva el operando izquierdo a la potencia del operando derecho.
Concatenation (concatenación)
Unir dos cadenas con +, lo que produce una cadena nueva.
Replication (replicación)
Repetir una cadena (o lista) con * y un número entero de veces.
Compound assignment (asignación compuesta)
Un operador como += o //= que aplica una operación y vuelve a vincular la variable al resultado.
Chained assignment (asignación encadenada)
Vincular varios nombres a un mismo valor en una sola instrucción, como en a = b = 0.
Priority (precedence) (prioridad, precedencia)
La regla que decide qué operadores se aplican primero en una expresión.
Binding (associativity) (asociatividad)
El orden en que se aplican los operadores de igual prioridad, normalmente de izquierda a derecha.
Right-to-left binding (asociatividad de derecha a izquierda)
El comportamiento de **, de modo que a ** b ** c significa a ** (b ** c).
Unary operator (operador unario)
Un operador con un solo operando, como -x, +x o ~x.
Bitwise AND (&) (AND a nivel de bits)
Produce 1 en cada posición de bit donde ambos operandos tienen 1.
Bitwise XOR (^) (XOR a nivel de bits)
Produce 1 en cada posición de bit donde los operandos son diferentes.
Bitwise NOT (~) (NOT a nivel de bits)
Invierte todos los bits; para los ints de Python, ~x es igual a -x - 1.
Shift (<< >>) (desplazamiento)
Mueve los bits a la izquierda o a la derecha, multiplicando o haciendo división entera por potencias de dos.
Relational operator (operador relacional)
Un operador como ==, != o <= que compara dos valores y devuelve True o False.
Chained comparison (comparación encadenada)
Una expresión como 0 <= x < 5, equivalente a dos comparaciones unidas por and.
Floating-point error (error de punto flotante)
La pequeña imprecisión causada por almacenar fracciones decimales en binario, como en 0.1 + 0.2.
Banker's rounding (redondeo bancario)
La regla de round() de enviar las mitades exactas al entero par más cercano.
Type casting (conversión de tipos)
Convertir explícitamente un valor a otro tipo con una función como int() o str().
Truncation (truncamiento)
Descartar la parte fraccionaria hacia cero, como hace int() con los floats.
Truthiness (veracidad)
La regla que usa bool(): el cero, lo vacío y None son False; todo lo demás es True.
ValueError
Se lanza cuando una función de conversión recibe el tipo correcto pero un valor inutilizable, como int("3.7").
sep=
Argumento de palabra clave de print() que indica la cadena insertada entre los argumentos; por defecto es un solo espacio.
end=
Argumento de palabra clave de print() que indica la cadena impresa después del último argumento; por defecto es un salto de línea.
input()
Función integrada que lee una línea del usuario y siempre la devuelve como cadena.
Prompt (mensaje de aviso)
La cadena opcional que se pasa a input() y se muestra antes de que el usuario escriba.

Dominio 2: Control flow: conditional blocks and loops (29%)

Consejos para el examen

Términos clave

if statement (instrucción if)
Ejecuta su bloque indentado solo cuando su condición es verdadera.
elif
Una condición adicional que se prueba solo si todas las condiciones anteriores de la misma instrucción fueron falsas.
else
La rama que se ejecuta cuando ninguna condición if o elif anterior fue verdadera; no lleva condición.
Overlapping conditions (condiciones superpuestas)
Condiciones que pueden ser verdaderas al mismo tiempo, lo que hace que el orden de las ramas elif sea importante.
Truthy (verdadero en contexto booleano)
Cualquier valor que cuenta como verdadero en una condición, como los números distintos de cero y las colecciones no vacías.
Falsy (falso en contexto booleano)
Un valor que cuenta como falso: False, None, el cero y las cadenas o colecciones vacías.
Short-circuit evaluation (evaluación en cortocircuito)
and y or dejan de evaluar en cuanto se conoce el resultado.
Logical operator (operador lógico)
and, or o not, usados para combinar o invertir condiciones.
Nested conditional (condicional anidada)
Una instrucción if dentro del bloque de otra rama condicional.
Indentation level (nivel de indentación)
La columna en la que empieza una línea; define a qué bloque pertenece la línea.
Dangling else (else colgante)
La pregunta de a qué if pertenece un else; en Python, al que está a la misma indentación.
pass
Una instrucción (palabra clave) que no hace nada, usada donde la sintaxis requiere una instrucción.
Stub (esqueleto)
Una función o bloque de relleno, a menudo con cuerpo pass, que se completará más adelante.
Empty block error (error de bloque vacío)
IndentationError: expected an indented block, que se lanza cuando un encabezado con dos puntos no tiene cuerpo.
while loop (bucle while)
Un bucle que repite su cuerpo mientras su condición sea verdadera, comprobándola antes de cada iteración.
Iteration (iteración)
Una ejecución del cuerpo de un bucle.
Infinite loop (bucle infinito)
Un bucle cuya condición nunca se vuelve falsa, así que se ejecuta hasta que se interrumpe o se sale de él con break.
KeyboardInterrupt
La excepción que se lanza cuando el usuario presiona Ctrl+C, usada para detener un programa descontrolado.
range()
Función integrada que produce enteros desde start hasta stop sin incluirlo, avanzando de step en step.
Step (paso)
La cantidad que se suma cada vez; los pasos negativos cuentan hacia abajo y 0 no está permitido.
Empty range (rango vacío)
Un rango que no produce valores, como range(5, 2), así que un bucle sobre él se ejecuta cero veces.
Loop variable (variable del bucle)
El nombre que toma cada valor sucesivo en un bucle for.
Iterable
Un objeto cuyos elementos se pueden tomar uno a la vez, como una cadena, lista, tupla, dict o range.
enumerate()
Función integrada que produce pares (índice, elemento) mientras se itera.
Accumulator (acumulador)
Una variable que se prepara antes de un bucle y se actualiza en cada iteración para construir un total o un resultado.
break
Sale de inmediato del bucle más interno que lo contiene.
continue
Salta el resto de la iteración actual y empieza la siguiente del bucle más interno.
Flag variable (variable bandera)
Un booleano que se asigna dentro de un bucle para señalar un evento, como found = True, y que se comprueba después para detener un bucle exterior.
Loop else clause (cláusula else de un bucle)
Un bloque después de un bucle for o while que se ejecuta solo si el bucle terminó sin break.
Normal termination (terminación normal)
Un bucle que termina porque su condición se volvió falsa o porque se acabaron sus elementos.
Search loop (bucle de búsqueda)
Un bucle que busca un elemento y hace break cuando lo encuentra, a menudo acompañado de else para el caso de no encontrado.
Nested loop (bucle anidado)
Un bucle colocado dentro del cuerpo de otro bucle; el bucle interior se completa por entero en cada iteración exterior.
Outer loop (bucle exterior)
El bucle que contiene al otro, y que controla cuántas veces se inicia el bucle interior.
Iteration count (número de iteraciones)
El total de veces que se ejecuta el cuerpo de un bucle, que se obtiene multiplicando o sumando por cada pasada exterior.
Loop variable scope (ámbito de la variable del bucle)
En Python, la variable de un bucle for sigue definida después del bucle, con su último valor.
Last assigned value (último valor asignado)
Para range(n), la variable del bucle termina en n - 1, no en n.
NameError
Se lanza si usas una variable de bucle que nunca se asignó porque el bucle se ejecutó cero veces.

Dominio 3: Data collections: tuples, dictionaries, lists and strings (25%)

Consejos para el examen

Términos clave

List (lista)
Una secuencia ordenada y mutable escrita entre corchetes.
Index (índice)
La posición de un elemento, empezando en 0; los índices negativos cuentan desde el final, siendo -1 el último.
Slice (rebanada)
Una sublista tomada con [start:stop:step], que incluye start y excluye stop.
IndexError
Se lanza cuando un índice está fuera del rango válido de una secuencia.
append()
Agrega un elemento al final de una lista, en el lugar.
insert(i, x)
Inserta x antes de la posición i, desplazando a la derecha los elementos posteriores.
remove(x) vs del
remove elimina el primer valor que coincide; del elimina por índice o rebanada.
sort() vs sorted()
sort() ordena la lista en el lugar y devuelve None; sorted() devuelve una lista nueva ordenada.
in / not in
Operadores de pertenencia que comprueban si un valor es (o no es) un elemento de una secuencia.
List comprehension (lista por comprensión)
Una expresión como [x * 2 for x in data] que construye una lista nueva a partir de un iterable.
Filter clause (cláusula de filtro)
El if final de una comprensión, que incluye solo los elementos que cumplen la condición.
Alias
Un segundo nombre vinculado al mismo objeto, creado con una asignación simple como b = a.
Shallow copy (copia superficial)
Una lista exterior nueva cuyos elementos son los mismos objetos que los de la original, creada con a[:], list(a) o a.copy().
is vs ==
is comprueba si dos nombres se refieren al mismo objeto; == comprueba si sus valores son iguales.
Mutation (mutación)
Cambiar un objeto en el lugar, lo cual es visible a través de todos sus alias.
Nested list (lista anidada)
Una lista que contiene otras listas como elementos.
Matrix (matriz)
Una cuadrícula rectangular de valores, representada en Python como una lista de listas-fila de igual longitud.
Double indexing (doble indexación)
grid[r][c]: el primer índice elige la fila, el segundo elige el elemento en esa fila.
Shared-row trap (trampa de filas compartidas)
[[0] * n] * m repite m veces una misma lista interior, así que todas las filas cambian juntas.
Tuple (tupla)
Una secuencia ordenada e inmutable, creada con comas y normalmente con paréntesis.
One-item tuple (tupla de un elemento)
Una tupla con un solo valor, que necesita una coma final: (5,).
Immutability (inmutabilidad)
La propiedad de que el contenido de un objeto no se puede cambiar después de crearlo.
Tuple unpacking (desempaquetado de tuplas)
Asignar los elementos de una tupla a varios nombres a la vez, como en x, y = point.
Dictionary (diccionario)
Una colección mutable de claves únicas asociadas a valores, escrita {key: value}.
Key (clave)
El identificador único e inmutable que se usa para buscar un valor.
KeyError
Se lanza cuando indexas o eliminas una clave que no está en el diccionario.
get()
Devuelve el valor de una clave, o None o un valor por defecto indicado si la clave no existe.
keys()
Devuelve una vista de las claves de un diccionario.
values()
Devuelve una vista de los valores de un diccionario.
items()
Devuelve una vista de tuplas (clave, valor), práctica para desempaquetar en un bucle for.
Membership on a dict (pertenencia en un diccionario)
key in d comprueba solo las claves, nunca los valores.
String immutability (inmutabilidad de las cadenas)
Los caracteres de una cadena no se pueden cambiar en el lugar; las operaciones devuelven cadenas nuevas.
[::-1]
La rebanada que invierte una secuencia recorriéndola completa hacia atrás.
Lexicographic order (orden lexicográfico)
Un orden como el de un diccionario que compara cadenas carácter por carácter según su punto de código.
ord() y chr()
ord() da el punto de código de un carácter; chr() da el carácter correspondiente a un punto de código.
Escape character (carácter de escape)
La barra invertida, que le da al carácter siguiente un significado especial en un literal de cadena.
Escape sequence (secuencia de escape)
Una combinación con barra invertida, como \n, \t, \\ o \', que representa un solo carácter.
Triple-quoted string (cadena con comillas triples)
Una cadena delimitada por ''' o """ que puede ocupar varias líneas y contener comillas libremente.
Raw string (cadena cruda)
Un literal con el prefijo r en el que las barras invertidas no se tratan como escapes.
split()
Devuelve una lista de subcadenas, dividiendo por espacios en blanco por defecto o por un separador indicado.
join()
Se llama sobre una cadena separadora; devuelve una sola cadena formada a partir de un iterable de cadenas.
strip()
Devuelve una copia sin los espacios en blanco (o los caracteres indicados) al inicio y al final.
find() vs index()
Ambos localizan una subcadena; find() devuelve -1 si no está, index() lanza ValueError.

Dominio 4: Functions and exceptions (28%)

Consejos para el examen

Términos clave

Decomposition (descomposición)
Dividir un programa en funciones más pequeñas, cada una resolviendo una parte del problema.
Function (función)
Un bloque de código con nombre y reutilizable, definido con def y ejecutado al llamarlo.
Abstraction (abstracción)
Usar una función por lo que hace, sin necesidad de saber cómo lo hace.
Top-down design (diseño de arriba hacia abajo)
Planear primero los pasos principales como llamadas a funciones y después implementar cada función.
def
La palabra clave que inicia la definición de una función.
Invocation (call) (invocación, llamada)
Ejecutar una función escribiendo su nombre seguido de paréntesis y argumentos.
Function object (objeto función)
El valor creado por def y vinculado al nombre de la función; se puede referenciar sin llamarlo.
NameError
Se lanza cuando una llamada ocurre antes de que se haya ejecutado la instrucción def de la función.
return
Termina una función y devuelve un valor (o None) a quien la llamó.
None
El valor especial que significa sin valor; lo devuelven las funciones que no devuelven ninguna otra cosa.
Tuple packing on return (empaquetado de tupla en return)
return a, b devuelve una sola tupla (a, b), que quien llama puede desempaquetar.
yield / generator (generador)
yield convierte una función en un generador que produce valores uno por uno, pausándose entre ellos.
Recursion (recursión)
Una función que se llama a sí misma para resolver una versión más pequeña del mismo problema.
Base case (caso base)
La condición bajo la cual una función recursiva devuelve un resultado sin llamarse a sí misma.
Recursive case (caso recursivo)
La rama que vuelve a llamar a la función con una entrada más cercana al caso base.
RecursionError
Se lanza cuando la recursión supera la profundidad máxima de Python, normalmente porque nunca se alcanza el caso base.
Parameter (parámetro)
Un nombre en la definición de una función que recibe un valor cuando se llama a la función.
Argument (argumento)
El valor real que se proporciona en una llamada a función.
Positional argument (argumento posicional)
Un argumento que se asocia a un parámetro según su posición en la llamada.
Keyword argument (argumento por palabra clave)
Un argumento que se asocia por nombre, escrito name=value en la llamada.
Default parameter value (valor por defecto de un parámetro)
Un valor dado en la definición con name=value, que se usa cuando quien llama omite ese argumento.
Required parameter (parámetro obligatorio)
Un parámetro sin valor por defecto, que toda llamada debe proporcionar.
Non-default argument follows default argument
El SyntaxError que se lanza cuando un parámetro obligatorio se coloca después de uno con valor por defecto.
Mutable default trap (trampa del valor por defecto mutable)
Un valor por defecto de tipo lista o diccionario se crea una sola vez y lo comparten todas las llamadas que lo usan.
Scope (ámbito)
La región del código en la que un nombre es visible, como local o global.
Shadowing (ocultamiento)
Un nombre local que oculta, dentro de una función, a un nombre global o integrado escrito igual.
global keyword (palabra clave global)
Declara que un nombre usado en una función se refiere a la variable global, de modo que las asignaciones la cambian.
UnboundLocalError
Se lanza cuando se lee una variable local antes de asignarla en esa función; es una subclase de NameError.
BaseException
La clase raíz de todas las excepciones de Python.
Exception
La clase base de los errores ordinarios; excluye SystemExit y KeyboardInterrupt.
ArithmeticError
Clase base de los errores numéricos como ZeroDivisionError y OverflowError.
LookupError
Clase base de IndexError y KeyError, lanzadas por índices o claves no válidos.
KeyboardInterrupt
Se lanza cuando el usuario presiona Ctrl+C; deriva de BaseException, no de Exception.
ZeroDivisionError
Se lanza al dividir o calcular un residuo entre cero.
IndexError vs KeyError
IndexError: índice de secuencia fuera de rango; KeyError: clave de diccionario inexistente.
TypeError
Una operación recibió un valor de un tipo incorrecto, como sumar str e int.
ValueError
Un valor tiene el tipo correcto pero un contenido inaceptable, como int("abc").
try-except
Una instrucción que ejecuta el código de try y, si ocurre una excepción que coincide, ejecuta el bloque except correspondiente.
Exception tuple (tupla de excepciones)
except (A, B): maneja cualquiera de varios tipos de excepción en una sola rama.
Bare except (except solo)
except: sin tipo; captura todas las excepciones, incluidas SystemExit y KeyboardInterrupt, y debe ir al final.
finally
Un bloque que siempre se ejecuta después de try, haya ocurrido una excepción o no.
First match rule (regla de la primera coincidencia)
Python ejecuta solo la primera cláusula except cuyo tipo coincide con la excepción o con uno de sus padres.
Unreachable handler (manejador inalcanzable)
Una cláusula except que nunca puede ejecutarse porque una cláusula anterior captura una clase padre.
Specific to general (de lo específico a lo general)
El orden recomendado: las subclases antes que sus clases base, Exception al final.
Propagation (propagación)
Una excepción no manejada que sale de la función actual y pasa a quien la llamó, subiendo por la cadena de llamadas.
Traceback
El informe que Python imprime para una excepción no manejada, con la cadena de llamadas y el error.
raise
Una instrucción que lanza una excepción; un raise solo dentro de un bloque except vuelve a lanzar la excepción actual.
Call stack (pila de llamadas)
La cadena de llamadas a funciones activas a través de la cual se propaga una excepción.
Estudia PCEP gratis
Plan semana a semana con lecciones, cuestionarios, simulaciones de examen y práctica, en español.
Abrir el plan de estudio