Aspectos generales de Python como lenguaje (A3C34B2D01)

Introducción

Cuando uno inicia su camino de aprendizaje en el mundo de la programación, una de las decisiones a tomar es “qué lenguaje de programación emplear”. Python puede ser una buena elección por varias razones: se trata de un lenguaje versátil, flexible, con una curva de aprendizaje relativamente suave en comparación con otros lenguajes, multiplataforma y totalmente gratuito.

En esta sección se introducirán los aspectos léxicos, sintácticos y semánticos de Python. Se presentará la estructura general de un programa en Python, introduciendo y familiarizando al estudiante con los diferentes niveles conceptuales que suelen verse en código Python. Finalmente, se discutirá el concepto de indentación en Python y la ausencia de llaves/sentencias para delimitar el alcance de instrucciones o estructuras de control.

Aspectos léxicos, sintácticos y semánticos de Python

Cuando se utiliza un lenguaje para expresarnos, se hace uso de las herramientas que proporciona como el alfabeto, el vocabulario con el conjunto de palabras que lo forman y su significado, y la gramática que representa el conjunto de reglas que determinan el orden en el que deben aparecer las palabras. En el caso de un lenguaje de programación, los elementos disponibles son similares.

El léxico de un lenguaje de programación, como Python, determina los símbolos y palabras que podemos emplear para construir las sentencias que se incluyen en los programas. El análisis léxico de Python desglosa un archivo (con el programa que hemos escrito) en tokens según reglas básicas que gobiernan el modo de escribir programas en este lenguaje.

A continuación, el analizador sintáctico de Python se encarga de analizar la estructura sintáctica del programa. Utiliza la salida del analizador léxico para construir un árbol de sintaxis abstracta (ASA) que representa la estructura sintáctica del programa de entrada. Con esta estructura, se pueden realizar varias tareas, la detección de errores sintácticos o la generación de código objeto.

Finalmente, el analizador semántico hace uso de la salida generada por el analizador sintáctico para detectar posibles errores que afectan a la semántica del lenguaje, como la verificación de tipos, acceso a variables y métodos, rango de valores, asignaciones válidas, variables no definidas u operaciones ilegales, entre otros.

Para que un programa en Python pueda ser ejecutado, éste debe estar libre de errores léxicos, sintácticos y semánticos.

Estructura general de un programa en Python

Un programa en Python suele tener la siguiente estructura general:

1 |  Comentarios: son líneas de texto que explican el propósito del programa y cómo funciona. Se trata de un elemento opcional, a criterio del programador, y es ignorado por el intérprete de Python. Por tanto, no produce ningún tipo de error.

# Este es un comentario en una línea
“””
Este es un comentario en varias líneas
utilizando comillas triples

“””

2 |  Declaración de importaciones: son líneas de código que permiten importar módulos o bibliotecas que contienen funciones y clases útiles para el programa.

import math
print(math.pi) # Imprime el valor de pi (3.141592653589793)

3 |  Definición de funciones: son bloques de código que realizan una tarea específica y pueden ser llamadas varias veces en el programa. Las funciones se definen utilizando la palabra clave “def” seguida del nombre de la función y los parámetros entre paréntesis.

def suma(a, b):
    resultado = a + b
    return resultado

4 |  Declaración de variables: son líneas de código que declaran y asignan valores a variables que se utilizarán en el programa. Estas variables pueden ser sencillas (almacenan un único valor) o estructuras de datos más complejas, como arrays, vectores, listas, o diccionarios, entre otros.

# Asignar valores a variables
numero = 10

nombre = “Jose Manuel”
es_activo = True

5 |  Bloque principal: es el cuerpo principal del programa donde se realizan las operaciones y se llaman a las funciones definidas anteriormente. Tanto en el bloque principal como en las funciones, se suelen emplear estructuras de control de flujo, como las condicionales y los bucles.

Indentación en Python

La indentación en Python es el uso de espacios o tabulaciones al comienzo de una línea de código para indicar la jerarquía y estructura del programa. En Python, las indentaciones son utilizadas para indicar el alcance de las estructuras de control de flujo (como condicionales y bucles) y de las funciones.

La ausencia de llaves o sentencias para delimitar el alcance de instrucciones o estructuras de control en Python es una característica distintiva del lenguaje. En lugar de utilizar llaves para delimitar el alcance, tal como se hace en muchos otros lenguajes de programación, se utilizan indentaciones. A continuación, se muestra un ejemplo en el que se representa, en primer lugar, un sencillo fragmento de código con el uso de llaves para delimitar el bloque, y su equivalente en Python empleando las indentaciones:

if x > 0: {
    print(“x es mayor a cero”)
}

Código en Python:

if x > 0:
    print(“x es mayor a cero”)

Atención

Las indentaciones en Python no son un aspecto puramente estético y, en el caso de no respetarlas, producirán errores de sintaxis. Se trata de una característica particular de Python que hace que el código sea más legible y fácil de comprender, facilitando, de forma clara, la visualización de la jerarquía y la estructura de los programas.