HDP115

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.

CE

Cristian Escalante

Última actualización: 17 de mayo de 2025

python
programación
sintaxis

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

  1. Consistencia: Usa siempre la misma cantidad de espacios para cada nivel de indentación.
  2. PEP 8: La guía de estilo oficial de Python recomienda usar 4 espacios por nivel.
  3. 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:

  1. Paréntesis, corchetes o llaves implícitos:
mi_lista = [1, 2, 3, 4, 5,
            6, 7, 8, 9, 10]

resultado = (valor1 + valor2 +
             valor3 + valor4)
  1. 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:

  1. Indentación: 4 espacios por nivel.
  2. Longitud de línea: Máximo 79 caracteres.
  3. 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.
  4. Importaciones: En líneas separadas, agrupadas en orden: bibliotecas estándar, bibliotecas de terceros, importaciones locales.
  5. 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:

  1. flake8: Verifica que tu código cumpla con PEP 8.
  2. black: Formateador automático que aplica un estilo consistente.
  3. pylint: Analizador de código que detecta errores y problemas de estilo.
  4. 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.

Escribiendo la primera aplicación
Aprende a escribir, ejecutar y entender tu primer programa e...
Variables y tipos de datos
Aprende los diferentes tipos de datos en Python y cómo traba...
Referencias
Python.org. PEP 8 – Style Guide for Python Code. https://peps.python.org/pep-0008/
Python.org. The Zen of Python. https://www.python.org/dev/peps/pep-0020/
Real Python. Python Code Quality: Tools & Best Practices. https://realpython.com/python-code-quality/

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de GIT

Aprende los conceptos básicos de GIT

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025