Sintaxis básica de Python

gato programador

Python es un lenguaje de programación muy popular y versátil que se utiliza para diversos fines, como desarrollo web, análisis de datos, inteligencia artificial y más. Una de las ventajas de Python es que tiene una sintaxis muy simple y clara, que facilita la lectura y escritura del código. En este artículo, vamos a repasar la Sintaxis básica de Python que debes conocer para empezar a programar en Python.

Repasando la Sintaxis básica de Python

Indentación

La indentación es el espacio que se deja al principio de cada línea de código. En Python, la indentación es muy importante, ya que define el bloque de código al que pertenece cada línea. Por ejemplo, si tenemos una estructura de control como un if o un for, debemos indentar el código que va dentro de esa estructura para indicar que forma parte de ella. Si no lo hacemos, Python nos dará un error de sintaxis de Python.

Veamos un ejemplo:

# Esto es correcto

if x > 10:
    print("x es mayor que 10")
else:
    print("x es menor o igual que 10")

# Esto es incorrecto

if x > 10:
print("x es mayor que 10")
else:
    print("x es menor o igual que 10")

Como puedes ver, en el primer caso, el código está bien indentado y se ejecuta sin problemas. En el segundo caso, el código no está bien indentado y Python nos dice que hay un error en la línea 2.

La indentación se puede hacer con espacios o con tabuladores, pero lo más recomendable es usar cuatro espacios por cada nivel de indentación. Además, debemos ser consistentes y usar siempre el mismo tipo y cantidad de indentación en todo el código.

Comentarios

Los comentarios son líneas de texto que no se ejecutan como código, sino que sirven para explicar o documentar lo que hace el código. En Python, los comentarios se escriben con el símbolo # al principio de la línea. Todo lo que va después del # se ignora por el intérprete de Python.

Veamos un ejemplo:

# Esto es un comentario de una sola línea
print("Hola, mundo!")  # También puedes poner comentarios al fin

Comentarios de varias líneas: Se crean utilizando tres comillas simples ''' o tres comillas dobles """ para abrir y cerrar el comentario. Aquí tienes un ejemplo:

'''
Esto es un comentario
de varias líneas
'''
print("Hola, mundo!")

Declaración de variables

Una variable es un nombre que se utiliza para referirse a un valor o a un objeto en el programa. Para declarar una variable en Python, basta con asignarle un valor con el operador =. Por ejemplo:

x = 10
nombre = "Ana"

Esto crea dos variables, x e nombre, y les asigna los valores 10 y “Ana” respectivamente. Python es un lenguaje de tipado dinámico, lo que significa que no hay que especificar el tipo de dato de las variables al declararlas. Python infiere el tipo de dato según el valor asignado.

Las reglas para nombrar las variables en Python son las siguientes:

  • Las variables deben empezar por una letra o un guión bajo (_), pero no por un número.
  • Pueden contener letras, números y guiones bajos, pero no otros caracteres especiales como espacios o signos de puntuación.
  • Las variables son sensibles a mayúsculas y minúsculas, es decir, x e X son dos variables distintas.
  • No pueden coincidir con palabras reservadas del lenguaje, como if, for o print. Estas palabras tienen un significado especial para Python y no se pueden usar como nombres de variables.

Tipos de datos

Los tipos de datos son las categorías que clasifican los valores u objetos según sus características. Los tipos de datos básicos en Python son los siguientes:

  • Enteros (int): Son los números enteros, como 1, -5 o 1000. Se pueden realizar operaciones aritméticas con ellos.
  • Cadenas (str): Son secuencias de caracteres entre comillas simples o dobles, como “Hola” o ‘Python’. Se pueden concatenar, indexar o modificar con métodos especiales.
  • Flotantes (float): Son los números reales con decimales, como 3.14, -2.5 o 1.0e6. También se pueden realizar operaciones aritméticas con ellos.
  • Booleanos (bool): Son los valores lógicos True (verdadero) o False (falso). Se utilizan para expresar condiciones o resultados de comparaciones.

Operadores

Los operadores son símbolos que se utilizan para realizar operaciones entre valores u objetos. Los operadores más comunes en Python son los siguientes:

Operadores aritméticos: Son los que realizan operaciones matemáticas entre números. Los más habituales son:

  •   +: Suma dos números.
  •   -: Resta dos números.
  •   *: Multiplica dos números.
  •   /: Divide dos números.
  •   **: Eleva un número a la potencia de otro.
  •   %: Calcula el resto de la división entre dos números.
  •   //: Calcula la división entera entre dos números.

Operadores de comparación: Son los que comparan dos valores u objetos y devuelven un valor booleano. Los más habituales son:

  •   ==: Comprueba si dos valores u objetos son iguales.
  •   !=: Comprueba si dos valores u objetos son distintos.
  •   <: Comprueba si un valor u objeto es menor que otro.
  •   >: Comprueba si un valor u objeto es mayor que otro.
  •   <=: Comprueba si un valor u objeto es menor o igual que otro.
  •   >=: Comprueba si un valor u objeto es mayor o igual que otro.

Operadores lógicos: Son los que combinan valores u objetos booleanos y devuelven otro valor booleano. Los más habituales son:

  • and: Devuelve True si ambos operandos son True, y False en caso contrario.
  •   or: Devuelve True si al menos uno de los operandos es True, y False en caso contrario.
  •   not: Devuelve el valor contrario del operando.

Estructuras de control de flujo

Las estructuras de control de flujo son las que permiten modificar el orden de ejecución de las instrucciones del programa según ciertas condiciones o repeticiones. Las más comunes en Python son las siguientes:

Declaraciones if, else y elif: Son las que permiten ejecutar un bloque de código si se cumple una condición, y otro bloque de código si no se cumple o se cumple otra condición. La sintaxis es la siguiente:

  if condicion:
    # bloque de código si se cumple la condición
  elif otra_condicion:
    # bloque de código si se cumple otra condición
  else:
    # bloque de código si no se cumple ninguna condición

  Por ejemplo:

  edad = int(input("Introduce tu edad: "))
  if edad < 18:
    print("Eres menor de edad")
  elif edad == 18:
    print("Acabas de cumplir la mayoría de edad")
  else:
    print("Eres mayor de edad")

Bucles for: Son los que permiten repetir un bloque de código un número determinado de veces, recorriendo una secuencia de elementos. La sintaxis es la siguiente:

  for elemento in secuencia:
    # bloque de código que se repite para cada elemento

Por ejemplo:

  lista = [1, 2, 3, 4, 5]
  for numero in lista:
    print(numero ** 2)

Bucles while: Son los que permiten repetir un bloque de código mientras se cumpla una condición. La sintaxis es la siguiente:

  while condicion:
    # bloque de código que se repite mientras se cumpla la condición

Por ejemplo:

  contador = 1
  while contador <= 10:
    print(contador)
    contador += 1

Funciones

Una función es un bloque de código que realiza una tarea específica y que se puede reutilizar en diferentes partes del programa. Para definir una función en Python, se utiliza la palabra reservada def, seguida del nombre de la función y entre paréntesis los argumentos o parámetros que recibe. Al final de la línea se pone el símbolo : y en las líneas siguientes se escribe el cuerpo de la función. Para devolver un valor desde la función, se utiliza la palabra reservada return. La sintaxis es la siguiente:

def nombre_funcion(argumentos):
  # cuerpo de la función
  return valor

Por ejemplo:

def suma(a, b):
  # devuelve la suma de dos números
  return a + b

Para llamar o invocar una función, se escribe el nombre de la función seguido de los argumentos entre paréntesis. Por ejemplo:

resultado = suma(3, 5)
print(resultado)

Listas y tuplas

Las listas y las tuplas son estructuras de datos que almacenan una colección ordenada de elementos. La diferencia principal entre ellas es que las listas son mutables, es decir, se pueden modificar, mientras que las tuplas son inmutables, es decir, no se pueden cambiar una vez creadas. Las listas se crean con corchetes [] y las tuplas con paréntesis (). Por ejemplo:

lista = [1, 2, 3, 4, 5] # Una lista de números
tupla = ("a", "b", "c", "d", "e") # Una tupla de letras

Para acceder a los elementos de una lista o una tupla, se utiliza el operador de indexación [], que recibe un número entero que indica la posición del elemento. El primer elemento tiene el índice 0, el segundo el índice 1, y así sucesivamente. También se puede usar índices negativos para acceder a los elementos desde el final, siendo el último elemento el índice -1, el penúltimo el índice -2, y así sucesivamente. Por ejemplo:

print(lista[0]) # Imprime el primer elemento de la lista, 1
print(tupla[-1]) # Imprime el último elemento de la tupla, e

# Para modificar los elementos de una lista, se puede usar el operador de asignación = con el índice correspondiente. Por ejemplo:

lista[0] = 10 # Cambia el primer elemento de la lista por 10
print(lista) # Imprime [10, 2, 3, 4, 5]

# Sin embargo, si se intenta hacer lo mismo con una tupla, se obtiene un error:

tupla[0] = "z" # Intenta cambiar el primer elemento de la tupla por z
print(tupla) # No se ejecuta porque hay un error

Las listas y las tuplas tienen algunos métodos útiles para trabajar con ellas. Por ejemplo, el método len() devuelve la longitud o número de elementos de una lista o una tupla. El método count() devuelve el número de veces que un elemento aparece en una lista o una tupla. El método index() devuelve la posición de la primera ocurrencia de un elemento en una lista o una tupla. Por ejemplo:

print(len(lista)) # Imprime 5
print(tupla.count("a")) # Imprime 1
print(lista.index(3)) # Imprime 2

Las listas tienen algunos métodos adicionales que permiten modificarlas. Por ejemplo, el método append() añade un elemento al final de una lista. El método insert() inserta un elemento en una posición determinada de una lista.

El método pop() elimina y devuelve el último elemento de una lista.

El método remove() elimina la primera ocurrencia de un elemento en una lista. El método sort() ordena los elementos de una lista. Por ejemplo:

lista.append(6) # Añade el número 6 al final de la lista
print(lista) # Imprime [10, 2, 3, 4, 5, 6]

lista.insert(0, 0) # Inserta el número 0 en la posición 0 de la lista
print(lista) # Imprime [0, 10, 2, 3, 4, 5, 6]

ultimo = lista.pop() # Elimina y devuelve el último elemento de la lista
print(ultimo) # Imprime 6
print(lista) # Imprime [0, 10, 2, 3, 4, 5]

lista.remove(10) # Elimina la primera ocurrencia del número 10 en la lista
print(lista) # Imprime [0, 2, 3, 4, 5]

lista.sort() # Ordena los elementos de la lista
print(lista) # Imprime [0, 2, 3, 4, 5]

Diccionarios

Los diccionarios son estructuras de datos que almacenan una colección de pares clave-valor. Cada clave es única y se utiliza para acceder al valor asociado. Los diccionarios se crean con llaves {} y cada par clave-valor se separa por dos puntos :. Por ejemplo:

diccionario = {"nombre": "Ana", "edad": 25, "profesion": "programadora"} # Un diccionario con datos personales

Para acceder a los valores de un diccionario, se utiliza el operador de indexación [] con la clave correspondiente. Si la clave no existe en el diccionario, se obtiene un error. Por ejemplo:

print(diccionario["nombre"]) # Imprime Ana
print(diccionario["altura"]) # No se ejecuta porque hay un error

# KeyError: 'altura'

Para modificar los valores de un diccionario, se puede usar el operador de asignación = con la clave correspondiente. Si la clave no existe en el diccionario, se crea un nuevo par clave-valor. Por ejemplo:

diccionario["edad"] = 26 # Cambia el valor de la clave "edad" por 26
print(diccionario) # Imprime {"nombre": "Ana", "edad": 26, "profesion": "programadora"}

diccionario["altura"] = 170 # Crea un nuevo par clave-valor con la clave "altura" y el valor 170
print(diccionario) # Imprime {"nombre": "Ana", "edad": 26, "profesion": "programadora", "altura": 170}

Los diccionarios tienen algunos métodos útiles para trabajar con ellos. Por ejemplo, el método keys() devuelve una vista de las claves del diccionario. El método values() devuelve una vista de los valores del diccionario. El método items() devuelve una vista de los pares clave-valor del diccionario. Estas vistas se pueden convertir en listas usando el constructor list(). Por ejemplo:

print(diccionario.keys()) # Imprime dict_keys(['nombre', 'edad', 'profesion', 'altura'])
print(list(diccionario.keys())) # Imprime ['nombre', 'edad', 'profesion', 'altura']

print(diccionario.values()) # Imprime dict_values(['Ana', 26, 'programadora', 170])
print(list(diccionario.values())) # Imprime ['Ana', 26, 'programadora', 170]

print(diccionario.items()) # Imprime dict_items([('nombre', 'Ana'), ('edad', 26), ('profesion', 'programadora'), ('altura', 170)])
print(list(diccionario.items())) # Imprime [('nombre', 'Ana'), ('edad', 26), ('profesion', 'programadora'), ('altura', 170)]

Otros métodos interesantes son el método get(), que devuelve el valor de una clave si existe o un valor por defecto si no existe. El método setdefault(), que devuelve el valor de una clave si existe o lo asigna a un valor por defecto si no existe. El método update(), que actualiza el diccionario con otro diccionario o con pares clave-valor. El método pop(), que elimina y devuelve el valor de una clave si existe o un valor por defecto si no existe. El método clear(), que elimina todos los elementos del diccionario. Por ejemplo:

print(diccionario.get("nombre")) # Imprime Ana
print(diccionario.get("color", "azul")) # Imprime azul

print(diccionario.setdefault("color", "verde")) # Imprime verde
print(diccionario) # Imprime {"nombre": "Ana", "edad": 26, "profesion": "programadora", "altura": 170, "color": "verde"}

diccionario.update({"pais": "España", "ciudad": "Madrid"}) # Actualiza el diccionario con dos nuevos pares clave-valor
print(diccionario) # Imprime {"nombre": "Ana", "edad": 26, "profesion": "programadora", "altura": 170, "color": "verde", "pais": "España", "ciudad": "Madrid"}

Estos métodos son muy útiles para manipular y modificar los diccionarios de forma sencilla y eficiente. Los diccionarios son estructuras de datos muy versátiles y potentes que nos permiten almacenar y acceder a información de forma rápida y organizada. En este post hemos visto cómo crear, acceder, modificar y eliminar elementos de un diccionario en Python, así como algunos métodos interesantes que nos facilitan su uso. Esperamos que este post te haya sido de ayuda y que hayas aprendido algo nuevo sobre los diccionarios en Python.

Cadenas de caracteres

Una cadena de caracteres es una secuencia de caracteres entre comillas simples o dobles. Por ejemplo, ‘Hola’ y “Mundo” son cadenas de caracteres. Python ofrece varias operaciones y métodos para trabajar con cadenas, como:

  • Concatenación: Es la unión de dos o más cadenas con el operador +. Por ejemplo, ‘Hola’ + ‘ ‘ + ‘Mundo’ da como resultado ‘Hola Mundo’.
  • Repetición: Es la multiplicación de una cadena por un número entero con el operador *. Por ejemplo, ‘Hola’ * 3 da como resultado ‘HolaHolaHola’.
  • Indexación: Es la obtención de un carácter específico de una cadena mediante su posición o índice. Los índices empiezan en 0 y se indican entre corchetes. Por ejemplo, ‘Hola'[0] da como resultado ‘H’.
  • Rebanado: Es la extracción de una subcadena de una cadena mediante un rango de índices. Los rangos se indican entre corchetes con dos puntos. Por ejemplo, ‘Hola'[1:3] da como resultado ‘ol’.
  • Formato: Es la inserción de valores en una cadena mediante marcadores de posición. Los marcadores se indican con llaves y se reemplazan por los valores al usar el método format. Por ejemplo, ‘Hola {0}’.format(‘Mundo’) da como resultado ‘Hola Mundo’.
  • Métodos: Son funciones que se aplican a las cadenas mediante un punto. Algunos métodos útiles son:
  •   – lower(): Convierte todos los caracteres a minúsculas. Por ejemplo, ‘Hola’.lower() da como resultado ‘hola’.
  •   – upper(): Convierte todos los caracteres a mayúsculas. Por ejemplo, ‘Hola’.upper() da como resultado ‘HOLA’.
  •   – strip(): Elimina los espacios en blanco al inicio y al final de la cadena. Por ejemplo, ‘ Hola ‘.strip() da como resultado ‘Hola’.
  •   – replace(): Reemplaza todas las ocurrencias de una subcadena por otra. Por ejemplo, ‘Hola Mundo’.replace(‘Mundo’, ‘Python’) da como resultado ‘Hola Python’.
  •   – split(): Divide la cadena en una lista de subcadenas separadas por un delimitador. Por ejemplo, ‘Hola Mundo’.split(‘ ‘) da como resultado [‘Hola’, ‘Mundo’].

Entrada y salida

La entrada y salida son operaciones que permiten interactuar con el usuario o con otros programas mediante el uso de la consola o terminal. Para obtener la entrada del usuario se usa la función input, que devuelve una cadena con lo que el usuario escribió. Por ejemplo:

nombre = input('¿Cómo te llamas? ')
print('Hola', nombre)

Este código le pregunta al usuario su nombre y luego lo saluda.

Para imprimir resultados en la consola se usa la función print, que acepta uno o más argumentos separados por comas y los muestra en una línea separada por espacios. Por ejemplo:

print('Hola', 'Mundo')
print(2 + 3)

Este código imprime dos líneas: una con las cadenas ‘Hola’ y ‘Mundo’, y otra con el resultado de la suma 2 + 3.

Importación de módulos

Un módulo es un archivo que contiene definiciones y declaraciones de variables, funciones, clases u otros objetos que se pueden usar en otros programas. Python tiene muchos módulos integrados que ofrecen funcionalidades útiles, como el módulo math, que contiene funciones matemáticas, o el módulo random, que permite generar números aleatorios. Para usar un módulo se debe importar con la instrucción import, seguida del nombre del módulo. Por ejemplo:

import math
import random

print(math.pi) # Imprime el valor de pi
print(random.randint(1, 10)) # Imprime un número entero aleatorio entre 1 y 10

También se puede importar solo una parte de un módulo con la instrucción from … import …, seguida del nombre del módulo y el nombre de lo que se quiere importar. Por ejemplo:

from math import pi
from random import randint

print(pi) # Imprime el valor de pi
print(randint(1, 10)) # Imprime un número entero aleatorio entre 1 y 10

Convenciones de estilo

Las convenciones de estilo son reglas o recomendaciones para escribir código Python legible y consistente. Estas reglas no afectan al funcionamiento del código, pero sí a su apariencia y comprensión. Algunas convenciones de estilo son:

  • Usar nombres descriptivos y en minúsculas para las variables, funciones y módulos, separando las palabras con guiones bajos. Por ejemplo: nombre_usuario, calcular_area, mi_modulo.
  • Usar nombres descriptivos y en mayúsculas para las constantes, separando las palabras con guiones bajos. Por ejemplo: PI, MAXIMO_INTENTOS.
  • Usar nombres descriptivos y en formato CamelCase para las clases, sin separar las palabras. Por ejemplo: MiClase, Calculadora.
  • Usar cuatro espacios por nivel de indentación.
  • Usar espacios alrededor de los operadores y después de las comas, pero no alrededor de los paréntesis. Por ejemplo: a = b + c, f(x, y, z).
  • Usar líneas en blanco para separar las secciones de código y facilitar la lectura. Por ejemplo: dejar una línea en blanco después de las definiciones de funciones o clases, o entre bloques lógicos de código.
  • Usar comentarios para explicar el propósito o el funcionamiento del código, pero no para repetir lo que ya se puede ver. Por ejemplo: usar un comentario para indicar qué hace una función, pero no para describir cada línea de código dentro de ella.
  • Usar cadenas de documentación (docstrings) para describir el propósito, los parámetros y el valor de retorno de las funciones y los métodos. Por ejemplo: “””Calcula el área de un círculo dado su radio.”””
  • Seguir las recomendaciones del documento PEP 8, que es la guía de estilo oficial para el código Python. Este documento contiene más detalles y ejemplos sobre las convenciones de estilo mencionadas anteriormente y otras más.

Esperamos que este artículo te haya proporcionado una comprensión sólida de la sintaxis básica de Python. Dominar la sintaxis básica de Python es un paso crucial para convertirse en un programador eficaz en Python. Recuerda, la práctica constante es la clave para familiarizarte con la sintaxis básica de Python.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *