Sintaxis de Python: variables, condicionales, bucles y listas
La sintaxis de Python se apoya en la indentación: los bloques de código se delimitan con espacios al inicio de la línea, no con llaves, y por convención se usan cuatro espacios. Las variables se crean escribiendo un nombre, el signo igual y el valor, sin declarar el tipo. Los condicionales usan if, elif y else terminando la línea con dos puntos. Los bucles for recorren una secuencia elemento por elemento y los while repiten mientras se cumpla una condición. Para guardar varios valores hay tres estructuras principales: la lista, que se escribe con corchetes y se puede modificar; la tupla, con paréntesis y no modificable; y el diccionario, con llaves y pares de clave y valor.
Tabla de contenidos
Respuesta rápida: La sintaxis de Python se apoya en la indentación: los bloques de código se delimitan con espacios al inicio de la línea, no con llaves, y por convención se usan cuatro espacios. Las variables se crean escribiendo un nombre, el signo igual y el valor, sin declarar el tipo. Los condicionales usan if, elif y else terminando la línea con dos puntos. Los bucles for recorren una secuencia elemento por elemento y los while repiten mientras se cumpla una condición. Para guardar varios valores hay tres estructuras principales: la lista, que se escribe con corchetes y se puede modificar; la tupla, con paréntesis y no modificable; y el diccionario, con llaves y pares de clave y valor.
La indentación: lo primero que sorprende
En casi todos los lenguajes los bloques de código se marcan con llaves. En Python se marcan con espacios al inicio de la línea, y eso no es un detalle estético: es sintaxis obligatoria.
if edad >= 18:
print("Es mayor de edad")
print("Puede votar")
print("Esta línea corre siempre")Las dos líneas indentadas pertenecen al if. La tercera, sin indentar, está fuera y se ejecuta pase lo que pase. Si te equivocas con los espacios, cambias el significado del programa o recibes un error de indentación.
La convención son cuatro espacios. Y una advertencia práctica: no mezcles espacios con tabuladores. Se ven igual en pantalla y Python los trata distinto, así que produce errores que no puedes ver mirando el código. Cualquier editor decente lo maneja solo si lo configuras una vez.
La ventaja de todo esto: el código de Python se ve ordenado por obligación, y por eso se lee tan bien.
Variables y tipos de datos
Una variable se crea escribiendo el nombre, el igual y el valor. No se declara el tipo: Python lo deduce.
nombre = "Ana"
edad = 28
precio = 19.90
activo = True| Tipo | Qué guarda | Ejemplo |
|---|---|---|
| int | Números enteros | 28 |
| float | Números con decimales | 19.90 |
| str | Texto, entre comillas | "Ana" |
| bool | Verdadero o falso | True o False |
El error de principiante más frecuente sale de aquí: el número 28 y el texto "28" no son lo mismo. Al primero le puedes sumar, al segundo no. Si intentas "28" + 5, Python da error. Se convierte con int("28") o str(28).
Es exactamente el mismo problema que en Excel cuando una columna no suma porque los números están guardados como texto. Lo desarrollo junto a los conceptos de programación en cómo aprender programación desde cero.
Condicionales: if, elif y else
nota = 15
if nota >= 18:
print("Excelente")
elif nota >= 14:
print("Bueno")
elif nota >= 11:
print("Aprobado")
else:
print("Desaprobado")Se evalúa de arriba abajo y se detiene en la primera condición verdadera. Por eso el orden importa: si pusieras primero la de 11, una nota de 18 caería ahí y nunca llegaría a "Excelente".
Los operadores de comparación son == para igual, != para distinto, y los habituales mayor y menor. Ojo con el doble igual: un solo igual asigna, dos iguales comparan. Confundirlos es de los errores más comunes al empezar.
Para combinar condiciones se usan las palabras and, or y not, que se leen literalmente como en inglés y hacen el código muy legible.
Bucles: for y while
El for recorre una secuencia elemento por elemento:
for producto in ["café", "té", "azúcar"]:
print(producto)Se lee tal cual: "para cada producto en esta lista, imprímelo". No hay contador ni índice, y eso es lo que hace el for de Python más simple que el de otros lenguajes.
Si necesitas repetir un número fijo de veces, range genera la secuencia:
for i in range(5):
print(i) # imprime 0, 1, 2, 3, 4Detalle que confunde: range empieza en 0 y no incluye el último número. range(5) da del 0 al 4, cinco valores.
El while repite mientras una condición sea verdadera:
intentos = 0
while intentos < 3:
print("Intento", intentos)
intentos = intentos + 1El riesgo del while es el bucle infinito: si olvidas la línea que modifica la condición, el programa nunca termina. Por eso la regla práctica es usar for cuando sabes cuántas veces y while cuando dependes de una condición.
Dentro de cualquier bucle, break lo corta por completo y continue salta a la siguiente vuelta.
Listas, tuplas y diccionarios
| Estructura | Se escribe con | ¿Se puede modificar? | Cuándo la usas |
|---|---|---|---|
| Lista | Corchetes [] | Sí | Colección que va a cambiar |
| Tupla | Paréntesis () | No | Valores fijos que no deben cambiar |
| Diccionario | Llaves {} | Sí | Pares de clave y valor |
ventas = [120, 340, 90] # lista
coordenadas = (10.5, -77.2) # tupla
cliente = {"nombre": "Ana", "ciudad": "Lima"} # diccionarioEn una lista accedes por posición y la primera posición es la 0, no la 1. ventas[0] da 120. También puedes usar índices negativos: ventas[-1] devuelve el último elemento, que es un atajo que se usa muchísimo.
En un diccionario accedes por clave: cliente["ciudad"] da "Lima". Es la estructura que más vas a usar en análisis de datos, porque así llega la información de las APIs y así se organiza internamente un DataFrame.
La tupla existe para valores que no deben cambiar. Que sea inmutable no es una limitación: es una garantía de que nadie los va a modificar por accidente.
Funciones: empaquetar lo que repites
def calcular_igv(monto):
return monto * 0.18
impuesto = calcular_igv(1000)
print(impuesto) # 180.0Tres partes: def declara la función, el paréntesis lleva los parámetros que recibe, y return devuelve el resultado. Todo lo que va indentado debajo es el cuerpo.
Un cuidado: si olvidas el return, la función devuelve None, que es el "nada" de Python. La función se ejecuta, hace lo suyo, pero no te entrega nada. Es una de esas fallas silenciosas que cuesta encontrar.
Puedes darle valores por defecto a los parámetros, y así el que llama puede omitirlos: def calcular_igv(monto, tasa=0.18) funciona con uno o con dos argumentos.
Manejo de errores con try except
Cuando algo puede fallar y no quieres que el programa entero se detenga:
try:
resultado = 100 / divisor
except ZeroDivisionError:
print("No se puede dividir entre cero")
resultado = 0Python intenta ejecutar lo que está en try. Si ocurre el error indicado, ejecuta el except en vez de detenerse.
El consejo que doy siempre: captura errores específicos, no todos. Un except genérico sin nombre de error atrapa cualquier cosa, incluidos errores tuyos de escritura, y los esconde. Terminas con un programa que no falla y tampoco funciona, que es peor que uno que falla claramente.
Preguntas frecuentes
¿Por qué Python usa indentación?
Porque los bloques de código se delimitan con espacios al inicio de la línea en lugar de llaves. La convención son cuatro espacios. No conviene mezclar espacios con tabuladores porque se ven igual en pantalla y Python los trata distinto, produciendo errores invisibles.
¿Cuáles son los tipos de datos en Python?
Los básicos son int para números enteros, float para números con decimales, str para texto entre comillas y bool para verdadero o falso. El número 28 y el texto "28" no son lo mismo: al primero le puedes sumar y al segundo no.
¿Cuál es la diferencia entre for y while en Python?
El for recorre una secuencia elemento por elemento y se usa cuando sabes cuántas veces vas a repetir. El while repite mientras se cumpla una condición y se usa cuando no lo sabes de antemano. El riesgo del while es el bucle infinito si olvidas modificar la condición.
¿Qué diferencia hay entre lista, tupla y diccionario?
La lista usa corchetes y se puede modificar. La tupla usa paréntesis y no se puede modificar, lo que garantiza que nadie cambie esos valores. El diccionario usa llaves y guarda pares de clave y valor, y es la estructura que más aparece en análisis de datos.
¿Para qué sirve elif en Python?
Permite encadenar varias condiciones alternativas después de un if. Se evalúan de arriba abajo y se detiene en la primera verdadera, por eso el orden importa: las condiciones más restrictivas van primero.
¿Qué hace return en una función?
Devuelve el resultado de la función a quien la llamó. Si lo olvidas, la función se ejecuta pero devuelve None, que es el "nada" de Python. Es una falla silenciosa que suele costar encontrar.
Aprender por tutoriales sueltos te deja a medias
Los tutoriales te enseñan comandos, no criterio. En el curso de SQL + Python vas de cero a analizar datos de verdad, con proyectos, datasets reales y alguien que te corrige. En vivo, desde S/420.
Formate con Gera
¿Quieres aprender datos?
Cursos en vivo de SQL, Python y Power BI con Gera. Clases por Zoom, datos reales y feedback directo. Tambien hacemos capacitacion in-company.
Ver cursos de datos