Python Fácil · Teoría

Comprende antes de memorizar

24 lecciones originales con ejemplos breves, puntos clave y referencias para profundizar.

01

Sintaxis, sangría y comentarios

Python ejecuta instrucciones en orden y usa la sangría para delimitar bloques tras cabeceras terminadas en dos puntos. Un comentario empieza con # y documenta una decisión sin formar parte de la ejecución.

Ejemplo
temperatura = 21  # grados Celsius
if temperatura > 20:
    print("Hace calor")

Puntos importantes

  • La sangría coherente forma parte de la sintaxis.
  • Los comentarios explican el porqué; no sustituyen nombres claros.
02

Nombres y asignación

Una asignación vincula un nombre con un objeto. El nombre puede volver a enlazarse y no declara por sí mismo un tipo fijo.

Ejemplo
puntos = 5
puntos = puntos + 3
print(puntos)

Puntos importantes

  • = asigna; == compara.
  • Usa nombres descriptivos en snake_case.
Practicar este concepto
03

Números enteros y decimales

int representa enteros de precisión arbitraria y float usa coma flotante binaria. Las operaciones producen nuevos objetos numéricos.

Ejemplo
entero = 7
decimal = 2.5
print(entero + decimal)

Puntos importantes

  • // realiza división entera hacia abajo.
  • % devuelve el resto asociado a esa división.
Practicar este concepto
04

Cadenas de texto

str representa texto Unicode inmutable. Las comillas simples y dobles crean el mismo tipo; las triples permiten varias líneas y las secuencias de escape representan caracteres especiales.

Ejemplo
saludo = "Buenos días"
print(saludo.upper())

Puntos importantes

  • Una cadena no cambia al aplicar un método.
  • len devuelve la cantidad de caracteres de la cadena.
Practicar este concepto
05

Booleanos y None

bool tiene los valores True y False. None es un objeto único que representa ausencia y se compara por identidad con is.

Ejemplo
resultado = None
print(resultado is None)

Puntos importantes

  • True y False llevan mayúscula inicial.
  • Usa is None, no == None.
06

Conversión explícita de tipos

int, float, str y bool construyen valores a partir de datos compatibles. Una conversión inválida puede lanzar ValueError.

Ejemplo
cantidad = int("12")
print(cantidad + 1)

Puntos importantes

  • Convertir es una decisión explícita.
  • bool de una cadena no vacía es True, incluso para 'False'.
07

Operadores aritméticos

Los operadores siguen reglas de precedencia: potencias, multiplicación y división se evalúan antes que suma y resta. Los paréntesis hacen explícita la intención.

Ejemplo
total = (3 + 2) * 4
print(total)

Puntos importantes

  • ** calcula potencias.
  • / siempre produce float.
Practicar este concepto
08

Comparaciones y lógica

Las comparaciones producen booleanos y pueden encadenarse. and, or y not combinan condiciones y realizan evaluación de cortocircuito.

Ejemplo
edad = 20
print(18 <= edad < 65)

Puntos importantes

  • Las comparaciones encadenadas evalúan el operando central una vez.
  • and y or devuelven uno de sus operandos.
09

Listas

Una lista es una colección ordenada y mutable. Admite elementos de tipos distintos, aunque los datos homogéneos suelen ser más fáciles de razonar.

Ejemplo
tareas = ["leer", "practicar"]
tareas.append("repasar")

Puntos importantes

  • append añade un elemento; extend consume un iterable.
  • Los índices comienzan en cero.
Practicar este concepto
10

Tuplas

Una tupla es una secuencia inmutable. Resulta útil para agrupar posiciones que forman un registro pequeño o para devolver varios valores.

Ejemplo
coordenada = (3, 5)
x, y = coordenada

Puntos importantes

  • La coma crea la tupla.
  • Una tupla de un elemento necesita coma final.
11

Diccionarios

Un diccionario asocia claves hashables con valores y conserva el orden de inserción. Acceder con [] exige que la clave exista; get permite un valor alternativo.

Ejemplo
perfil = {"nombre": "Ada", "activo": True}
print(perfil["nombre"])

Puntos importantes

  • Las claves son únicas.
  • in consulta claves, no valores.
Practicar este concepto
12

Conjuntos

Un set mantiene elementos hashables únicos y no promete acceso por índice. Sus operadores expresan unión, intersección y diferencia.

Ejemplo
lenguajes = {"Python", "JavaScript", "Python"}
print(len(lenguajes))

Puntos importantes

  • {} crea un diccionario vacío; set() crea un conjunto vacío.
  • Los elementos repetidos se eliminan.
13

Índices y slicing

Una secuencia acepta índices positivos y negativos. Un slice inicio:fin:paso produce otra secuencia y excluye la posición final.

Ejemplo
datos = [10, 20, 30, 40]
print(datos[1:3])

Puntos importantes

  • -1 señala el último elemento.
  • Omitir extremos usa el inicio o final de la secuencia.
Practicar este concepto
14

Mutabilidad y referencias

Dos nombres pueden referirse a la misma lista. Una mutación se observa desde ambos; una copia superficial crea otro contenedor pero comparte objetos anidados.

Ejemplo
original = [1, 2]
alias = original
alias.append(3)

Puntos importantes

  • Asignar no copia el objeto.
  • list(original) crea otra lista superficial.
15

Decisiones con if

if ejecuta un bloque cuando la condición es verdadera; elif prueba alternativas y else cubre el caso restante. Sólo se ejecuta la primera rama válida.

Ejemplo
nota = 8
if nota >= 5:
    print("aprobado")
else:
    print("revisar")

Puntos importantes

  • Cada cabecera termina en dos puntos.
  • Los bloques mantienen una sangría coherente.
Practicar este concepto
16

Funciones integradas esenciales

Python ofrece funciones disponibles sin importar módulos. print muestra valores; len mide colecciones; type informa del tipo; min, max, sum, abs y round resuelven operaciones frecuentes sin reimplementar bucles.

Ejemplo
notas = [7, 9, 6]
print(len(notas), min(notas), max(notas), sum(notas))

Puntos importantes

  • Consulta el contrato de cada función integrada antes de combinar tipos.
  • Una función integrada expresa mejor la intención que un bucle manual equivalente.
17

for, range y enumerate

for recorre los valores de un iterable. range genera una progresión perezosa de enteros y excluye el límite final; enumerate entrega a la vez cada posición y su valor.

Ejemplo
for posicion, nombre in enumerate(["Ana", "Leo"], start=1):
    print(posicion, nombre)

Puntos importantes

  • Usa range para progresiones numéricas y enumerate cuando también necesites la posición.
  • range(inicio, fin, paso) no materializa una lista.
Practicar este concepto
18

Bucle while

while repite un bloque mientras su condición sea verdadera. El estado debe avanzar hacia una condición falsa para evitar un bucle infinito.

Ejemplo
intentos = 3
while intentos > 0:
    intentos -= 1

Puntos importantes

  • Revisa la actualización de la condición.
  • Un while True necesita una salida deliberada.
19

break, continue y else

break termina el bucle y continue pasa a la siguiente iteración. El else de un bucle se ejecuta sólo si el recorrido termina sin break.

Ejemplo
for valor in [2, 4, 5]:
    if valor % 2:
        break
else:
    print("todos pares")

Puntos importantes

  • continue no termina el bucle.
  • El else pertenece al bucle, no al if.
20

Definir y llamar funciones

def crea una función reutilizable. Su cuerpo se ejecuta en cada llamada y puede recibir argumentos para separar datos de comportamiento.

Ejemplo
def saludar(nombre):
    return f"Hola, {nombre}"

print(saludar("Luz"))

Puntos importantes

  • Definir no ejecuta la función.
  • La llamada usa paréntesis.
Practicar este concepto
21

Parámetros predeterminados y argumentos con nombre

Los parámetros pueden tener valores predeterminados y una llamada puede asociar argumentos por nombre, como potencia(base=3, exponente=2). return finaliza la llamada y entrega un valor; sin return explícito, la función devuelve None.

Ejemplo
def potencia(base, exponente=2):
    return base ** exponente

print(potencia(base=3, exponente=3))

Puntos importantes

  • Los predeterminados se evalúan al definir la función.
  • Los argumentos con nombre hacen explícita la intención y no pueden preceder a argumentos posicionales.
Practicar este concepto
22

Alcance local y global

Los nombres asignados dentro de una función son locales salvo declaración explícita. Una función puede leer nombres globales, pero depender de ellos dificulta reutilizarla.

Ejemplo
iva = 0.21
def precio_final(base):
    return base * (1 + iva)

Puntos importantes

  • Cada llamada crea un ámbito local.
  • Prefiere parámetros frente a modificar estado global.
23

Capturar excepciones

try delimita una operación que puede fallar y except captura tipos concretos. Un bloque else se ejecuta cuando no hubo excepción.

Ejemplo
try:
    numero = int("12")
except ValueError:
    print("dato inválido")
else:
    print(numero)

Puntos importantes

  • Captura la excepción más específica posible.
  • No ocultes errores con except sin tipo.
Practicar este concepto
24

Interpolación y formato con f-strings

Una f-string antepone f a la cadena y evalúa expresiones entre llaves. Los especificadores tras : controlan alineación, decimales y otros formatos sin concatenar conversiones manuales.

Ejemplo
nombre = "Ada"
progreso = 0.875
print(f"{nombre}: {progreso:.1%}")

Puntos importantes

  • Las expresiones entre llaves se evalúan al crear la cadena.
  • El formato .2f fija dos decimales y .1% convierte una proporción en porcentaje.