Entendiendo la sintaxis de Python
Aprende las reglas fundamentales de la sintaxis de Python, incluyendo indentación, comentarios, convenciones de nombres y buenas prácticas de codificación.
Cristian Escalante
Última actualización: 17 de mayo de 2025
Entendiendo la sintaxis de Python
La sintaxis de Python es lo que hace que este lenguaje sea tan apreciado por su legibilidad y claridad. En esta lección, exploraremos las reglas fundamentales que definen cómo escribir código Python correctamente.
Indentación: La característica distintiva de Python
A diferencia de muchos otros lenguajes de programación que utilizan llaves {}
para definir bloques de código, Python utiliza la indentación (espacios al principio de una línea).
Importancia de la indentación
En Python, la indentación no es solo una cuestión de estilo, sino una parte fundamental de la sintaxis:
# Correcto: Indentación consistente
if edad >= 18:
print("Eres mayor de edad")
print("Puedes votar")
else:
print("Eres menor de edad")
print("No puedes votar")
# Incorrecto: Indentación inconsistente
if edad >= 18:
print("Eres mayor de edad")
print("Puedes votar") # Error: indentación inconsistente
Reglas de indentación
- Consistencia: Usa siempre la misma cantidad de espacios para cada nivel de indentación.
- PEP 8: La guía de estilo oficial de Python recomienda usar 4 espacios por nivel.
- No mezcles: No mezcles tabulaciones y espacios (esto puede causar errores difíciles de detectar).
Comentarios en Python
Los comentarios son texto que el intérprete de Python ignora. Se utilizan para explicar el código o para desactivar temporalmente ciertas partes.
Comentarios de una línea
Se crean con el símbolo #
:
# Esto es un comentario de una línea
edad = 25 # También puedes poner comentarios al final de una línea de código
Comentarios multilínea
Python no tiene una sintaxis específica para comentarios multilínea, pero se pueden crear de varias formas:
# Puedes usar múltiples líneas
# con el símbolo # en cada una
# como esta
"""
También puedes usar cadenas de texto de triple comilla
como comentarios multilínea, aunque técnicamente
son cadenas de texto que no se asignan a ninguna variable
"""
Docstrings
Los docstrings son un tipo especial de comentario utilizado para documentar módulos, clases, funciones y métodos:
def calcular_area_circulo(radio):
"""
Calcula el área de un círculo.
Args:
radio (float): El radio del círculo
Returns:
float: El área del círculo
"""
import math
return math.pi * radio ** 2
Instrucciones y líneas
Una instrucción por línea
Lo normal en Python es escribir una instrucción por línea:
x = 1
y = 2
z = 3
Múltiples instrucciones en una línea
Aunque no es recomendado por razones de legibilidad, puedes poner varias instrucciones en una misma línea separándolas con punto y coma:
x = 1; y = 2; z = 3
Instrucciones que abarcan múltiples líneas
Para dividir una instrucción larga en varias líneas, puedes usar:
- Paréntesis, corchetes o llaves implícitos:
mi_lista = [1, 2, 3, 4, 5,
6, 7, 8, 9, 10]
resultado = (valor1 + valor2 +
valor3 + valor4)
- Barra invertida (\):
resultado = valor1 + valor2 + \
valor3 + valor4
Convenciones de nombres
Python tiene convenciones para nombrar variables, funciones, clases y otros elementos:
Variables y funciones
Usa snake_case
(palabras en minúsculas separadas por guiones bajos):
nombre_usuario = "Ana"
edad_usuario = 25
def calcular_promedio(numeros):
# código aquí
Constantes
Usa MAYUSCULAS_CON_GUIONES
:
PI = 3.14159
VELOCIDAD_LUZ = 299792458
Clases
Usa PascalCase
(cada palabra comienza con mayúscula):
class PersonaUsuario:
# código aquí
Métodos y variables "privados"
Usa un guion bajo al principio:
class MiClase:
def __init__(self):
self._variable_interna = 10
def _metodo_interno(self):
# código aquí
Métodos "mágicos" o "dunder"
Usan doble guion bajo al principio y al final:
class MiClase:
def __init__(self):
# Constructor
def __str__(self):
# Representación en cadena
Palabras clave y palabras reservadas
Python tiene palabras reservadas que no puedes usar como identificadores (nombres de variables, funciones, etc.):
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
Operadores y expresiones
Operadores aritméticos
a + b # Suma
a - b # Resta
a * b # Multiplicación
a / b # División (siempre devuelve un float)
a // b # División entera
a % b # Módulo (resto de la división)
a ** b # Potencia
Operadores de asignación
x = 5 # Asignación básica
x += 3 # Equivalente a x = x + 3
x -= 2 # Equivalente a x = x - 2
x *= 4 # Equivalente a x = x * 4
x /= 2 # Equivalente a x = x / 2
x //= 3 # Equivalente a x = x // 3
x %= 3 # Equivalente a x = x % 3
x **= 2 # Equivalente a x = x ** 2
Operadores de comparación
a == b # Igual a
a != b # No igual a
a < b # Menor que
a <= b # Menor o igual que
a > b # Mayor que
a >= b # Mayor o igual que
Operadores lógicos
a and b # AND lógico
a or b # OR lógico
not a # NOT lógico
El Zen de Python
Python tiene una filosofía de diseño que puedes ver ejecutando:
import this
Algunos de sus principios incluyen:
- Hermoso es mejor que feo.
- Explícito es mejor que implícito.
- Simple es mejor que complejo.
- La legibilidad cuenta.
- Los errores nunca deberían pasar silenciosamente.
- En caso de ambigüedad, rechaza la tentación de adivinar.
PEP 8: La guía de estilo de Python
PEP 8 es la guía de estilo oficial para el código Python. Algunas recomendaciones clave:
- Indentación: 4 espacios por nivel.
- Longitud de línea: Máximo 79 caracteres.
- Líneas en blanco:
- 2 líneas en blanco alrededor de definiciones de clases y funciones de nivel superior.
- 1 línea en blanco alrededor de métodos dentro de una clase.
- Importaciones: En líneas separadas, agrupadas en orden: bibliotecas estándar, bibliotecas de terceros, importaciones locales.
- Espacios en blanco:
- No usar espacios extra dentro de paréntesis, corchetes o llaves.
- No usar espacios antes de una coma, punto y coma o dos puntos.
- Usar espacios alrededor de operadores.
Herramientas para verificar y formatear código
Existen herramientas que te ayudan a mantener un código limpio y consistente:
- flake8: Verifica que tu código cumpla con PEP 8.
- black: Formateador automático que aplica un estilo consistente.
- pylint: Analizador de código que detecta errores y problemas de estilo.
- isort: Organiza y formatea las importaciones.
Ejemplo de código bien formateado
Veamos un ejemplo que sigue las convenciones de Python:
#!/usr/bin/env python3
"""
Módulo de ejemplo que demuestra buenas prácticas de estilo en Python.
"""
import math
from datetime import datetime
class Circulo:
"""Clase que representa un círculo geométrico."""
def __init__(self, radio):
"""
Inicializa un círculo con el radio dado.
Args:
radio (float): El radio del círculo
"""
self.radio = radio
def calcular_area(self):
"""
Calcula y devuelve el área del círculo.
Returns:
float: El área del círculo
"""
return math.pi * self.radio ** 2
def calcular_perimetro(self):
"""
Calcula y devuelve el perímetro del círculo.
Returns:
float: El perímetro del círculo
"""
return 2 * math.pi * self.radio
def imprimir_info_circulo(circulo):
"""
Imprime información sobre un círculo.
Args:
circulo (Circulo): El círculo del que mostrar información
"""
print(f"Círculo con radio: {circulo.radio}")
print(f"Área: {circulo.calcular_area():.2f}")
print(f"Perímetro: {circulo.calcular_perimetro():.2f}")
def main():
"""Función principal del programa."""
radio = 5
mi_circulo = Circulo(radio)
print("Fecha y hora actual:", datetime.now())
print("-" * 30)
imprimir_info_circulo(mi_circulo)
if __name__ == "__main__":
main()
Resumen
- La indentación en Python es parte de la sintaxis, no solo del estilo.
- Los comentarios ayudan a documentar tu código y hacerlo más comprensible.
- Sigue las convenciones de nombres para hacer tu código más legible.
- PEP 8 proporciona directrices para escribir código Python limpio y consistente.
- Utiliza herramientas como flake8 y black para mantener un estilo consistente.
En la próxima lección, exploraremos en detalle los tipos de datos en Python y cómo trabajar con variables.