Bienvenido a un nuevo post, en esta ocasión hablaremos sobre Python. Python es un lenguaje de programación versátil y poderoso conocido por su simplicidad y facilidad de aprendizaje. Si estás interesado en explorar Python desde cero, esta guía te proporcionará una visión general de sus características clave, así como algunos recursos para profundizar en sus múltiples aplicaciones.
Una vez hayas finalizado de leer este post, posiblemente querrás seguir aprendiendo más sobre la programación con Python, ya que este es uno de los lenguajes con la curva de aprendizaje más sencilla para empezar, principalmente para alguien que apenas empieza en este mundo tan versátil de la programación.
Historia y Filosofía de Python
Antes de empezar a crear tus primeros programas en Python, es importante entender y conocer su origen y propósito. Por tanto, es útil conocer un poco sobre su historia y la filosofía detrás de su creación. Aunque no profundizaré en todos los detalles históricos, te proporcionaré una visión general. Para más información, puedes visitar Wikipedia, donde encontrarás una historia completa y detallada de Python desde sus inicios hasta la actualidad.
Historia de Python
- Su nacimiento: Guido van Rossum comenzó a trabajar en Python durante sus vacaciones de Navidad en 1989 (mientras yo nacía), como un proyecto personal para mantenerse ocupado durante la semana entre Navidad y año nuevo. El objetivo era crear un lenguaje que llenara el hueco entre C y el shell de Unix, y que permitiera la escritura de código de alta calidad.
- Su lanzamiento: Python fue lanzado al público por primera vez en 1991 como la versión 0.9.0. Desde entonces, ha pasado por muchas actualizaciones, y la versión 3.0 fue lanzada en 2008.
- Su desarrollo: Python ha sido desarrollado y mantenido por una comunidad de voluntarios y una organización sin fines de lucro llamada la Python Software Foundation (PSF). El desarrollo es conducido por un proceso de mejora de Python (PEP) que dirige la evolución del lenguaje.
Actualidad de Python: Actualmente a fecha de creación de este post, Python se encuentra en su versión 3.12.4.
Nuevas características de Python 3.12.4:
- Mejoras en la velocidad de ejecución de código.
- Actualizaciones de seguridad importantes.
- Correcciones de errores en módulos específicos.
Filosofía de Python
Ahora que conocemos un poco sobre la historia de Python, es importante entender la filosofía que guía su diseño y desarrollo. Cuando nos referimos a «filosofía», estamos dando a entender que es básicamente la forma en que determinado lenguaje de programación nos facilita la vida a la hora de tomarlo como lenguaje principal para el desarrollo de determinado proyecto de software.
- Legibilidad: La legibilidad y la simplicidad son el punto fuerte de Python. Esto se refleja en las reglas de estilo del lenguaje, como la Guía de Estilo de Python (PEP 8), y en características del lenguaje como la indentación significativa.
- The Zen of Python: Es una colección de 19 «afirmaciones» que capturan la filosofía de diseño de Python. Algunos de estos principios incluyen: «Bello es mejor que feo«, «Explícito es mejor que implícito«, y «La simplicidad es mejor que la complejidad«, entre otros.
- Baterías incluidas: Python adopta una filosofía de «baterías incluidas», lo que significa que viene con una biblioteca estándar grande y versátil que permite a los programadores realizar muchas tareas sin tener que buscar bibliotecas externas.
- Legibilidad del código: Python alienta a los programadores a escribir código que sea explícito y comprensible, evitando la ambigüedad y la complejidad innecesaria.
- Reutilizacion: Se fomenta la utilización de comentarios y documentación para explicar el propósito y funcionamiento del código, facilitando su mantenimiento y comprensión por parte de otros desarrolladores.
Instalación de Python
Con una comprensión básica de la historia y la filosofía de Python, estás listo para comenzar con la instalación del lenguaje en tu sistema. A continuación, te mostraré los pasos para descargar e instalar Python en los diferentes sistemas operativos
Descarga de Python
El primer paso será ir al sitio oficial de Python para su posterior descarga
- Ve al sitio web oficial de Python: python.org.
- Selecciona la versión de Python que deseas instalar. Si eres nuevo en Python, es probable que desees instalar la versión más reciente.
Windows
- Ejecuta el instalador descargado.
- Asegúrate de marcar la casilla «Add Python X.Y to PATH» (donde X.Y es la versión de Python) en la primera pantalla del instalador para agregar Python a tu PATH automáticamente.
- Sigue las instrucciones en pantalla para completar la instalación:
Al ejecutar el instalador se te presentara esta ventana de inicio, antes de darle clic a “Install Now” cerciórate que está marcada la casilla “Add python.exe to PATH” (Agregar Python a las variables de entorno) y dale clic en instalar.

Luego de esperar unos segundo a que se instale, te aparecerá otra ventana como la siguiente:

A este punto la instalación habrá finalizado, simplemente dale a Close, para confirmar la correcta instalación de Python vamos a corroborarlo, abre la línea de comandos o CMD. y ejecuta python3 --versión o en su defecto, simplemente escribe python –-version y si se instalo correctamente te debería aparecer así:

MacOS:
Ejecuta el instalador descargado y sigue las instrucciones en pantalla. Es común que en Mac OS venga preinstalada la versión de Python 2.7, pero es recomendable instalar la versión más reciente. Para la instalación de Python en Mac OS basta con ejecutar el comando python3 y se instalará.
Linux:
- Python generalmente viene preinstalado en la mayoría de las distribuciones de Linux.
- Si necesitas instalar o actualizar Python, puedes usar el gestor de paquetes de tu distribución, como apt para Ubuntu o Debian, o yum para Fedora o CentOS.
- Por ejemplo, en Ubuntu o Debian, puedes instalar Python 3 con el siguiente comando:
sudo apt-get install python3
Espera a que se descarga e instale y luego realizamos la verificación
Abre una terminal.
- Escribe python o python3 y presiona Enter. Esto debería abrir el intérprete de Python y mostrar la versión instalada.
Instalación del IDE o editor de código (Opcional)
Una vez instalado Python el siguiente paso es instalar algún editor de código o IDE, (Entorno de Desarrollo Integrado) ya que será indispensable si lo que pretendes es empezar a programar en Python. Además, es recomendable la actualización del gestor de paquetes de Python pip.
- IDEs y Editores de código: Considera instalar un entorno de desarrollo integrado (IDE) que sea amigable con Python, como PyCharm o Visual Studio Code.
- Gestor de Paquetes: Python viene con un gestor de paquetes llamado
pip. Asegúrate de que esté actualizado, ejecutandopython -m pip install --upgrade pipen la terminal.
Es posible que al instentar actualizar pip te salga un resultado como el siguiente:

Esto se debe a que el sistema o distribución que estás utilizando gestiona la instalación de paquetes por sí mismo, generalmente esto ocurre en distribuciones basadas en Debian y si es tu caso, esta es la razón de esa salida en la terminal, pero tranquilo, ya que esto ocurre por seguridad y estabilidad del propio sistema, ya que por medio de la gestión mediante pip se pueden instalar muchos paquetes que de cierta forma podrían afectar el buen funcionamiento del sistema operativo.
Instalación de Librerías y Frameworks
Utiliza pip para instalar librerías y frameworks que necesites. Por ejemplo, para instalar la biblioteca requests, ejecuta:
pip install requests
Recuerda que de lo contrario, tendrás que gestionar la instalación de paquetes mediante el gestor de la distribución que estés utilizando. Ahora pasamos a una de las partes fundamentales a la hora de empezar con Python, y es su sintaxis.
Sintaxis básica de Python
Una vez realizados los pasos anteriores, corresponde conocer un poco sobre la sintaxis básica de Python.
Luego de la instalación de Python correctamente en tu sistema, es hora de familiarizarte con su sintaxis básica. Python es conocido por su simplicidad y legibilidad, lo que lo convierte en un lenguaje ideal para principiantes. A continuación, te presento algunos conceptos fundamentales para empezar a programar en Python.
Veamos un ejemplo comparativo entre Python y Java para que puedas notar la diferencia:
Así se crea una función en Java
public class Calculadora {
// Método para sumar dos números enteros
public int sumar(int a, int b) {
return a + b;
}
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
int resultado = calculadora.sumar(5, 3);
System.out.println("El resultado es: " + resultado); // Debería imprimir "El resultado es: 8"
}
}
Así se crea una función en Python:
def sumar(a, b):
return a + b
# Probando la función
resultado = sumar(5, 3)
print("El resultado es:", resultado) # Debería imprimir "El resultado es: 8"
Como puedes ver, este es un pequeño vistazo de lo que es Python en comparación con otros lenguajes. Pero mejor empecemos desde el inicio con respecto a la sintaxis de Python.
Variables y asignación de variables
Las variables en Python son contenedores que reservan un espacio en memoria para almacenar diferentes tipos de datos, desde simples valores numéricos hasta estructuras de datos más complejas. A continuación, veremos cómo declarar y utilizar variables en Python
Sintaxis
En Python no es necesario declarar el tipo de dato antes de crear una variable, ya que es un lenguaje de tipado dinámico (no es necesario declarar el tipo de variable), por lo tanto, cuando se crea una variable únicamente declaramos su nombre y su valor, del tipo de dato se encarga Python de forma automática.
nombre_variable = valor
Declaración y asignación de variables
# Declarando y asignando valor entero
a = 55
# Declarando y asignando cadena de texto (String)
x = "nombre"
# Declarando y asignando valor decimal o de punto flotante
y = 3.1416
Reglas para nombrar variables en Python
Si aspiras a ser un programador eficiente en Python, es importante seguir ciertas recomendaciones al declarar tus variables. Estas no sólo deben ser claras, sino también descriptivas. Un buen nombramiento previene conflictos futuros, y hace que tu código sea más legible y fácil de mantener.
Declaraciones válidas:
miVariable_privadocontador123A1B2_C3nombre_largo_con_muchos_subrayados
Declaraciones no válidas:
1inicio(comienza con un número)mi-variable(contiene un guion)import(es una palabra reservada)mi variable(contiene un espacio)@email(contiene un carácter especial@)
Tipos de datos
Como dijimos antes, no es necesario indicar el tipo de dato en Python. Simplemente declaramos la variable y asignamos el tipo de dato. Veamos los distintos tipos de datos disponibles en Python.
# valor entero
edad = 66
# valor decimal
decimal = 18.5
# cadena de texto
cadena = "Mohamed"
# listas
productos = ["Reloj","Smarphone","Gorra","Tenis","Chaqueta"]
# dicionarios
persona = {"nombre:", "Franco", "edad:", 34}
# Tuplas
frutas = ("Fresa","Sandilla","Naranja","Melon")
Operaciones con variables
Con Python también podemos realizar desde operaciones aritméticas muy básicas, hasta operaciones más complejas.
Suma de enteros
# suma dos enteros
numero1 = 20
numero2 = 30
suma = numero1 + numero2
print(suma)
# imprimiria 50 como resultado
Suma de decimales
# suma de decimales
float1 = 5.5
float2 = 2.5
suma_float = float1 + float2
print(suma_float)
# imprimiria 8.0 como resultado
Resta
# resta de dos enteros
numero1 = 55
numero2 = 40
resta = numero1 - numero2
print(resta)
# imprimiria 15 como resultado
Multiplicación
# multiplicacion de dos enteros
numero1 = 28
numero2 = 45
multiplicacion = numero1 * numero2
print(multiplicacion)
# imprimiria 1,260 como resultado
Division
# division de dos enteros
numero1 = 20
numero2 = 5
division = numero1 / numero2
print(division)
# imprimiria 4 como resultado
Residuo o módulo
# residuo de division (modulo)
numero1 = 20
numero2 = 3
modulo = numero1 % numero2
print(modulo)
# imprimiria 2 como resultado
División entera
# division entera
numero1 = 20
numero2 = 3
division_entera = numero1 // numero2
print(division_entera)
# imprimiria 6 como resultado
Exponente de una potencia
# exponente de una potencia
numero1 = 2
numero2 = 3
exponente = numero1 ** numero2
print(exponente)
# imprimiria 8 como resultado
Convenciones en Python
Las convenciones en Python se refieren a las pautas y estándares recomendados para escribir código en este lenguaje de programación. Estas convenciones son seguidas por la comunidad de desarrolladores de Python con el objetivo de crear un código legible, consistente y fácil de mantener.
A continuación, te mencionaré algunas de las convenciones más comunes en Python:
- Nombres de variables: Los nombres de variables deben ser descriptivos y escritos en minúsculas. Si el nombre de la variable contiene múltiples palabras, se recomienda separarlas por guiones bajos. Por ejemplo:
nombre, edad, lista_de_numeros. - Indentación: Python utiliza la indentación para determinar la estructura del código. Por convención, se recomienda utilizar indentación de 4 espacios para cada nivel de estructura (bloques de código, bucles, condicionales, etc.).
- Comentarios: Los comentarios son una parte importante del código para hacerlo más legible. Se recomienda utilizar comentarios para explicar el propósito del código, así como cualquier detalle importante.
- Constantes: Los nombres de las constantes deben estar completamente en mayúsculas. Por ejemplo:
PI = 3.1416, MAXIMO_INTENTOS = 5. - Nombres de funciones: Los nombres de las funciones también deben ser descriptivos y escritos en minúsculas. Si el nombre de la función contiene múltiples palabras, se recomienda separarlas por guiones bajos. Por ejemplo:
calcular_promedio,obtener_valor_maximo. - Usar snake Case: En Snake Case, todas las letras son minúsculas y las palabras se separan con guiones bajos. Ejemplo:
nombre_de_usuario. Esta es una convención comúnmente aceptada en la comunidad de Python, especialmente para nombres de variables y funciones, sin embargo, no es estrictamente una regla, ya que puedes usar otras nomenclaturas comoPascalCaseocamelCase - Nombres de módulos: Los nombres de módulos deben ser descriptivos y escritos en minúsculas. Si el nombre del módulo contiene múltiples palabras, se recomienda separarlas por guiones bajos. Por ejemplo:
mi_modulo. - Nombres de paquetes: Al igual que los modulos, los nombres de paquetes deben ser descriptivos y escritos en minúsculas. Si el nombre del paquete contiene múltiples palabras, se recomienda separarlas por guiones bajos. Por ejemplo:
mi_paquete. - Nombres de paquetes de terceros: Los nombres de paquetes de terceros deben seguir las convenciones de nomenclatura del autor del paquete.
- Nombres de archivos: Los nombres de archivos deben ser descriptivos y escritos en minúsculas. Si el nombre del archivo contiene múltiples palabras, deben seguir las mismas convenciones de módulos y paquetes. Por ejemplo:
mi_archivo.py. - Nombres de directorios: Los nombres de directorios también deben seguir las mismas convenciones anteriores. Por ejemplo:
mi_directorio - Los nombres de variables no públicos: Los nombres de variables no públicas, como las variables de instancia y las variables de clase, a menudo se escriben en minúsculas y con guiones bajos para indicar que no son accesibles desde el exterior de la clase o el módulo. Por ejemplo:
mi_variable_privada
Te he listado una serie de convenciones, quizás de las más utilizadas en la programación en Python. Si te interesa profundizar aún más, puedes encontrar una lista más completa en la guía PEP 8, la cual es el documento oficial que establece las pautas de estilo para el código en Python.
Estructuras de control
Las estructuras de control en Python permiten ejecutar una serie de instrucciones, las cuales pueden ser controladas en su ejecución a través de flujos de control, estas estructuras están compuestas por condicionales como if else o elif, y por estructuras repetitivas como los bucles for y while, de igual forma por estructuras de transferencia de flujo como break, continue y pass
Condicionales
Las estructuras condicionales controlan el flujo de un programa condicionando su resultado a través de estructuras que determinan si una condición es verdadera (true) o falsa (false).
Dependiendo de esto, se ejecutará la condición de una u otra forma, o en su defecto, no se ejecutará ninguna.
Veamos un ejemplo de estas estructuras condicionales:
Ejemplos con if, elif, else
La sentencia if evaluará la expresión. Si esta es verdadera, ejecutará el código correspondiente. De no ser así, pasará a evaluar la condición del elif. Si esta se cumple, será ejecutada. De lo contrario, si ninguna de las dos se cumple, se pasa a ejecutar la tercera condición, es decir, else.
nota = 100
if nota > 99:
print("Eres el mejor")
elif nota > 0: # Nota entre 1 y 99
print("Buen esfuerzo")
else: # Nota es 0
print("No te has esforzado")
Siendo un principiante, es normal que se generen lagunas de confusión y que no comprendas al primer intento alguna parte (o todo) el ejercicio.
Pero estoy aquí para guiarte, por esa razón te explicaré en detalle lo que ocurrió en este ejercicio. Aunque no lo parezca y por muy sencillo que se vea, lleva una cierta lógica, la cual un principiante en programación aún no tiene desarrollada.
Aquí tienes la explicación del ejercicio:
Comenzamos declarando una variabe de tipo entero llamada
nota, (nota = 100), luego, la sentenciaifcomienza evaluando la condición (if nota > 99). Si esta condición es verdadera, (true), entonces se ejecuta el bloque de código que sigue inmediatamente después, (print("Eres el mejor")). Si no es verdadera,(false), se pasa al siguiente bloqueelif.La sentencia
elifse usa para verificar múltiples condiciones después de unif. Si la condición en elifes falsa, se evaluará la condición en elelifo sea, (elif nota > 0:). Si la condición en elelifes verdadera, se ejecutará su bloque de código correspondiente, en este caso,print("Buen esfuerzo")La sentencia
elsees un bloque opcional que se ejecutará si ninguna de las condiciones anteriores, niif, nielif, son verdaderas. Por lo tanto, se asigna implícitamente una condición, entonces lo que saldría en pantalla seríaprint("No te has esforzado")
Si eres muy principiante en Python, quizás te estés preguntando algo como: «Pero, si elif nota > 0: también se cumple, entonces se tendría que ejecutar junto a la primera condición que también es verdadera?». La respuesta es no. Toma en cuenta que la condición del elif nota > 0: es verdadera ya que la nota es 99.
Sin embargo, esta condición es válida cuando la nota es cualquier número entero que esté entre 1 y 98, es decir, que la nota podría ser un 80, 75, 91, 97, etc. Ya que la primera condición se cumplirá SOLO si la nota es > 99, de no ser así, la salida en pantalla sería: print("Buen esfuerzo"), dando a entender que no te sacaste 100, pero lo intentaste.
Vuelvo y repito, debes entender que la segunda condición se ejecutará solo si la primera no se cumple, es decir, si resulta verdadero que nota NO es mayor que 99, ahí se ejecutará «Buen esfuerzo». Espero que te haya quedado claro, quizás pueda parecer redundante en algo tan simple, pero créeme, si tú que lees el post tienes alguna experiencia, no verás las cosas del mismo modo que las verá un principiante.
Dos cosas importantes a mencionar son;
- Es posible tener múltiples condiciones
elifen un mismo bloque de código.- «
elif» es una manera de abreviar «else if«, así funciona en Python.
Resumeniendo el ejercicio diremos que:
- Si
notaes mayor que 99, imprimirá «Eres el mejor». - Si
notano es mayor que 99 pero es mayor que 0, imprimirá «Buen esfuerzo». - Si ninguna de las condiciones anteriores es verdadera (lo que significa que
notaes 0), imprimirá «No te has esforzado»
Ciclos repetitivos o iterativos
Recuerdas que las estructuras de control repetitivas o iterativas, son las que ejecutan una operacion de forma repetida un determinado numero de veces o hasta que la condición se ha cumplido. Entre estas estructuras tenemos el bucle for y el bucle while
Bucle while
El bucle o ciclo while ejecuta un bloque de código mientras la condición sea verdadera. Este tipo de bucle se utiliza cuando no se conoce cuantas veces se repetirá el bloque de código. Por último, debes saber que la condición es evaluada al inicio de la iteración.
Sintaxis
while condición
# cuerpo del bucle
Ejemplo 1
Un ejemplo típico utilizando el ciclo while sería el de un contador el cual inicializamos a 0 y evaluamos la condición mientras contador sea menor a 10. Luego de eso, imprimiremos el resultado e incrementaremos el contador.
contador = 10
while contador < 10:
print(contador)
contador += 1
Este código inicializa un contador en 10 y en cada iteración del ciclo while, imprimirá el valor del contador y luego lo incrementará, ya que este iniciaría desde 0. El ciclo se detendrá cuando el contador llegue a 9, ya que el 0 también va incluido.
Bucle for
El bucle for en Python funciona de manera diferente que en otros lenguajes de programación, ya que se utiliza para iterar sobre un conjunto de secuencias como listas, tuplas, diccionarios, cadenas o conjuntos. Básicamente, el bucle for se basa en una lista de elementos para su iteración.
Es importante comentar que hay una particularidad en Python con respecto al bucle for, ya que cuenta con otras variaciones como for anidado, for enumerate() y for range(). Cada uno cumple una función específica. A continuación veamos su sintaxis y cómo se crea cada una de estas variaciones:
Bucle for estándar
for elemento in lista:
# Código a ejecutar para cada elemento
Ejemplo
datos = ["nombre","apellido","edad"]
for dato in datos:
print(dato)
Destrocemos en partes este sencillo ejemplo y veamos lo que pasó:
primero, creamos una lista de nombre «datos«, asignamos valores a esa lista; "nombre", "apellido", "edad"
datos = ["nombre", "apellido", "edad"]
Segundo, creamos un bucle for, for dato in datos, la variable «dato«. Iterará cada elemento de las lista «datos«, tomando un elemento en cada iteración, comenzando por «nombre» y terminando en «edad».
for dato in datos:
Tercero, imprimimos el resultado a través de la función print(), la cual mostrará los datos de la lista
print(dato)
Y el resultado daria como salida lo siguiente:
nombre
apellido
edad
Bucle for con la función enumerate()
El bucle for cuando se utiliza con la función enumerate(), permite iterar sobre un objeto iterable. este tipo de función enumerate() devuelve un objeto enumerado que, al iterarse, produce tuplas que contienen un contador y el valor del elemento iterable.
En cada iteración del bucle, estas tuplas son asignadas a las variables cuando las especificamos en la declaración del bucle for.
Ejemplo
Supongamos que estamos iterando sobre una lista de asistentes de un evento, podríamos hacer la declaración de la siguiente forma:
for i, asistente in enumerate(asistentes):
En este caso, i sería la variable que almacenaría el índice, mientras que asistente almacenaría el valor correspondiente en la lista de asistentes.
Básicamente este es el funcionamiento del bucle for. A medida que practiques y conozcas más a fondo su funcionamiento, te irás familiarizando más con él.
Su sintaxis es muy simple.
for i, elemento in enumerate(secuencia):
# cuerpo del bucle
Ejemplo ampliado
Para ilustrar el concepto anterior, pondremos el ejemplo anterior un poco más ampliado y práctico. Imagina que estás a cargo de un evento y necesitas llevar un registro preciso de las personas que asisten. Tu objetivo es contar cuántas personas están presentes y también tener un registro de quiénes son.
Esta información te permitirá tener un control completo sobre la asistencia al evento. Ahora veremos cómo llevar a cabo esta ejemplo.
Primero, empecemos por definir la lista de asistentes:
# definiendo la lista de asistentes
asistentes = ["Melissa","Sandra","Argentina","Maria","Yosaura","Mario","Franco"]
Ahora, obtenemos la lista de asistentes, para eso utilizamos enumerate()
# crear bucle for con enumerate() para obtener la lista de asistentes
for contador, asistente in enumerate(asistentes, start=1):
Por último, se imprime en pantalla la lista de asistentes al avento.
print(f"{contador }. { asistente }")
En este ejemplo, enumerate() se usa para agregar un número de orden a cada asistente en la lista. El argumento start=1 (argumento opcional) hace que la numeración comience en 1 en lugar de 0, lo que hace que la lista numerada sea más legible.
Esto podría ser útil para imprimir etiquetas o listas de asistencia, o para cualquier otro propósito donde necesites rastrear la posición de los elementos en una lista en un contexto real.
Bucle for con la función range()
El ciclo for también cuenta con la función range(), que es una variante con la cual podemos generar una secuencia de números que servirán para iterar en el mismo ciclo for. Al igual que el ciclo anterior, su sintaxis es muy simple.
for variable in range(inicio, fin, pasos)
# código a iterar
Donde:
inicio: es el valor inicial de la secuencia. Por defecto es 0.fin: es el valor final de la secuencia.pasos/saltos:es el incremento entre los valores de la secuencia. Por defecto es 1.
Ejemplo
Supongamos que se requiere mostrar los números del 0 al 9
Es tan simple como definir el bucle e imprimir la variable definida en la declaración del bucle. Luego, pasamos el valor hasta donde se va a iterar, en este caso 10, a la función range(). Por último, se imprime el resultado:
for contador in range(10):
print(f"Iteracián: { contador }")
Porque 10?, te estarás preguntando, si el ejercicio dice que es del 0 al 9, pues es muy sencillo de contestar, el contador comenzará en 0 cuando se lance la primera iteración.
Salida:
Iteracion: 0
Iteracion: 1
Iteracion: 2
Iteracion: 3
Iteracion: 4
Iteracion: 5
Iteracion: 6
Iteracion: 7
Iteracion: 8
Iteracion: 9
Veamos un ejemplo más, supongamos que ahora queremos contar hacia atrás los primeros diez números, en este caso sería necesario pasarle parámetros a la función range(). Veamos cómo hacerlo
Ejemplo 2
for contador in range(9, -1, -1):
print(f"Iteracion: {contador}")
Como puedes ver, a la función range(), le hemos pasado los argumentos (9, -1, -1), con esto, le indicamos al programa que este será un conteo en reversa, y que empezará la iteración a partir de 9, determinado por el primer argumento (9). Luego, el segundo argumento (-1), terminará la iteración antes de llegar este valor, ya que no se incluye en la última iteración en la secuencia.
Por último, indicamos que irá decrementando el contador en (-1), tercer argumento. De esta forma dará como salida los números del 9 al 0 hacia atrás. La secuencia de pasos en reversa está determinada por el tercer argumento, (-1).
Como punto final, con respecto a cómo funciona la función range(), mencionar que las iteraciones generadas por range() son inmutables, lo cual quiere decir que no cambiará la secuencia de iteraciones actual del programa.
Bucle for anidado
Un bucle for anidado es una estructura de control que permite iterar un conjunto de instrucciones de forma simultánea. Estas instrucciones pueden ser una colección de dos o más datos. Funciona de manera que el bucle interno se repetirá una vez por cada vez que se repita el bucle externo.
La sintaxis de un bucle for anidado es la siguiente:
for variable_bucle_externo in iterable_externo:
variable_bucle_interno in iterable_interno:
# Bloque de instrucciones
Ejemplo
Veamos con un pequeño ejercicio el funcionamiento del ciclo for anidado.
matriz = [[1,2,3],[1,2,3],[1,2,3]]
for fila in matriz:
for columna in fila:
print(columna)
Este ejercicio define una matriz de tres filas y tres columnas, y luego utiliza un ciclo for para iterar sobre cada fila de la matriz. Dentro del ciclo for, hay otro ciclo for que itera sobre cada columna de la fila actual.
En cada iteración del bucle interno, la variable columna se asigna al elemento actual de la columna. Luego, la variable columna se imprime en la consola, y presenta la siguiente salida:
1
2
3
4
5
6
7
8
9
En resumen el bucle anidado itera de la siguiente forma:
- La variable
matrizestá definida con tres filas y tres columnas. - El bucle for externo itera una por una las filas de la matriz.
- El bucle for interno itera sobre cada columna de la fila actual.
- En cada iteración del bucle interno, la variable
columnaes asignada al elemento actual de la columna. - La variable
columnaes la que se imprimirá como salida del programa.
Bucle for con la función zip()
Cuando utilizamos el bucle for con la función zip(), se toma uno o más objetos iterables, esos objetos llamados iterables se toman como argumentos, devolviendo un iterable de tuplas.
Estos objetos se agruparan basándose en la posición de los elementos en los iterables. utilizando la variable de iteración del bucle for para acceder a los elementos de cada tupla durante cada iteración del bucle.
La sintaxis básica es la siguiente:
for variable1, variable2, ... in zip(iterable1, iterable2, ...):
# código a ejecutar en cada iteración
Ejemplo 1
Veamos un par de ejemplos para entender mejor cómo funciona esta función
Definimos dos listas
lista_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista_2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
Utilizamos el ciclo for y la función zip() para crear los objetos iterables
for numero, letra in zip(lista_1, lista_2):
print(f'Numero: {numero}, Letra: {letra}')
La salida mostraría lo siguiente:
Numero: 1, Letra: a
Numero: 2, Letra: b
Numero: 3, Letra: c
Numero: 4, Letra: d
Numero: 5, Letra: e
Numero: 6, Letra: f
Numero: 7, Letra: g
Numero: 8, Letra: h
Numero: 9, Letra: i
Numero: 10, Letra: j
En este primero, hemos creado dos listas: lista_1 y lista_2.
lista_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista_2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
lista_1 es una lista de números enteros y contiene números del (1 – 10), mientras que lista_2 es una lista de caracteres y contiene letras (a – j).`
Como segundo paso, utilizamos la función zip() para que haga su trabajo, en este caso tomará dos objetos iterables (lista_1 y lista_2) y devolverá un iterador de tuplas. Cada tupla contiene objetos iterables de entrada, cada uno con su respectiva pareja, es decir, que en cada iteración del bucle for, la función zip() producirá una tupla donde el primer elemento (numero) se obtendrá desde lista_1, mientras que el segundo elemento (letra) se obtendrá desde lista_2.
La iteración continuará hasta que finalice uno de los dos iterables (el menor de los dos). En este caso, ambos iterables son del mismo tamaño, por lo que finalizarán al mismo tiempo hasta que se complete el recorrido.
for numero, letra in zip(lista_1, lista_2):
Por último, se imprime el resultado en pantalla, a través de la función print(), la cual mostrará el número actual y la letra actual con el formato: «Número: x, Letra: y».
print(f'Numero: {numero}, Letra: {letra}')
Ejemplo 2
En este segundo ejemplo, es algo similar, pero ahora, en lugar de números y letras, utilizamos «Nombres» y «Edades»
nombres = ['María', 'Martha', 'Robert']
edades = [45, 80, 47]
for nombre, edad in zip(nombres, edades):
print(nombre, 'tiene', edad, 'años')
Esto producirá la siguiente salida:
María tiene 45 años
Martha tiene 80 años
Robert tiene 47 años
En este ejemplo, la función zip(nombres, edades) combina los elementos correspondientes de las listas nombres y edades en tuplas, que luego se asignan en las variables nombre y edad. Dentro del bucle, puedes realizar cualquier operación que desees con estas variables combinadas.
Por último, veamos algunos puntos finales sobre el bucle for:
- El bucle for en Python itera sobre cualquier secuencia o colección iterable como listas, tuplas, diccionarios, cadenas, conjuntos, entre otros.
- No es necesario llevar un control manual del índice como en otros lenguajes. Python realiza la iteración de forma automática sobre los elementos de la secuencia.
- La variable de iteración toma el valor de cada elemento en cada paso del bucle.
- Se utiliza cuando se conoce previamente el número de iteraciones o los elementos a recorrer.
- El funcionamiento se basa en obtener los elementos de la secuencia iterable, no en incrementar y verificar un contador como en otros lenguajes.
- La sintaxis es simple, solo especificando la variable de iteración y la secuencia:
Funciones
En todo lenguaje de programación, las funciones facilitan mucho la vida del programador, haciendo que la realización de algunas tareas específicas tanto simples como complejas, se hagan más sencillas, tanto, que de no utilizar funciones, las mismas se volverían un completo caos.
Esta simplicidad se logra gracias a la modularización que permite una función, de esta forma, nuestros programas se vuelven más manejables, reutilizables y sostenibles en el tiempo, especialmente en proyectos grandes o a gran escala.
Definamos una función
La definición de una función en Python es muy simple. Comenzamos declarando la palabra clave def, seguida del nombre de la función. Luego añadimos un par de paréntesis, dentro de los cuales irán los parámetros de la función (los parámetros son opcionales o si los requiere).
Posteriormente, dentro del cuerpo de la función, no se agregan llaves ni nada por el estilo. Basta con aplicar indentación, que es lo que caracteriza a un lenguaje como Python, que carece del uso de llaves.
Su sintaxis es la siguiente:
def nombre_funcion(parametro1,.. parametroN)
print("BlogDevelopers")
# para el llamado de la funcion se utiliza el mismo nombre con que la definimos seguido de parentesis.
nombre_funcion()
Ejemplo
def producto(x,y)
total = x * y
return total
# Llamar a la función e imprimir el resultado
print(producto(5, 4)) # imprimiria 20
En este ejemplo creamos una función llamada producto(), la cual contiene dos parámetros (x, y), seguida de la declaración y asignación de la variable total, la cual almacena el resultado de la multiplicación. Luego le indicamos que retorne el valor de total.
Posteriormente se realiza la llamada a la función mediante los argumentos 5 y 4 dentro de la función print() y por medio del mismo, realizamos la llamada a la función producto(5, 4) que dará el resultado (20).
Es importante notar que la variable total solo existe dentro del ámbito de la función producto. No podemos acceder a ella fuera de la función
Ejemplo 2
Otro ejemplo podría ser si queremos imprimir una cadena de texto. Primero definiríamos la función, y luego definimos el parámetro. En este ejemplo, será «lenguaje«. Como paso siguiente, haríamos el llamado a la función y, por último, imprimiríamos el resultado. Veamos cómo quedaría.
def saludo(lenguaje):
print(f"Hola mundo desde {lenguaje}")
saludo("Python")
Lo que hicimos en este ejercicio fue crear una funcion llamada saludo(), le pasamos un parametro de nombre, (lenguaje), luego utilizamos la funcion print() para mostrar el mensaje, print(f"Hola mundo desde {lenguaje}"), seguidamente mandamos a llamar a la funcion y le pasamos el argumento, en este caso «Python», saludo("Python") dicho argumento sera de tipo string ya que estamos tratando con cadenas de texto.
La «f» al inicio de la cadena de texto (f"Hola mundo desde") es lo que en Python se denomina f-string y se utiliza para insertar expresiones dentro de cadenas de texto utilizando llaves, es decir, que cuando utilizamos la «f» al inicio de una cadena de texto, se le indica al interprete de Python que evalúe esa cadena de texto y reemplace los valores dentro de esas llaves por sus respectivos valores.
En este caso, Python evalúa el parámetro que definimos al inicio, que es {lenguaje}. Esto es como si la «f» enviara instrucciones a Python para que reemplace el valor de la llave por su valor real.
Se dice «real» porque el parámetro dentro de la cadena de texto actúa como un placeholder, es decir, un valor que solo es visible además de ser una parte fundamental en el funcionamiento de las f-strings y la inserción de valores y expresiones dentro de una cadena de texto. En este caso, ya no será «Hola mundo desde lenguaje«, sino «Hola mundo desde Python«, como salida del programa.
Creo que la ampliación sobre cómo funcionan las f-strings no está de más en esta parte del post, ya que es fundamental que conozcas y manejes esta potente característica de Python, comentarte que los f-strings se encuentran disponibles a partir de la versión 3.6 de Python.
Desafíos de codificación
Ahora que ya conoces los conceptos básicos de Python, debes prepararte para poner en práctica lo hasta ahora aprendido. Esta sección del post consistirá en una serie de desafíos de codificación que pondrán a prueba tus habilidades y conocimientos adquiridos asi, te asegurarás de afianzar los conceptos de una forma práctica y efectiva.
Además, practicar te permitirá internalizar lo aprendido, lo cual es fundamental para un aprendizaje sólido y duradero.
Ejercicios propuestos de Python
- Ejercicio 1 – conversor de temperatura: crea un programa que convierta grados Celsius a Fahrenheit. El programa debe pedir al usuario que introduzca una temperatura en Celsius y luego imprimir el equivalente en Fahrenheit.
- Ejercicio 2 – calculadora de IMC: Crea un programa que calcule el Índice de Masa Corporal (IMC). Debe pedir al usuario su peso en kg y su altura en metros, y luego imprimir su IMC.
- Ejercicio 3 – verificador de año bisiesto: crea una función que decida si un año dado es bisiesto o no. El programa debe pedir al usuario que introduzca un año y luego imprimir si es bisiesto o no.
- Ejercicio 4 – generador de tablas de multiplicar: Crea un programa que genere la tabla de multiplicar de un número introducido por el usuario. Debe imprimir la tabla del 1 al 10 para ese número.
- Ejercicio 5 – contador de vocales: Escribe un programa que cuente el número de vocales en una cadena de texto introducida por el usuario. Debe imprimir el número total de vocales encontradas.
- Ejercicio 6 – calculadora de factorial: Crea una función que calcule el factorial de un número introducido por el usuario. El programa debe imprimir el resultado.
- Ejercicio 7 – invertir una lista: Crea un programa que invierta el orden de los elementos en una lista. El programa debe crear una lista, invertirla e imprimir tanto la lista original como la invertida.
- Ejercicio 8 – suma de números pares: Crea un programa que calcule la suma de todos los números pares del 1 al 100 utilizando un bucle for y la función range().
- Ejercicio 9 – adivina el número: Implementa un juego donde el programa elija un número aleatorio entre 1 y 100, y el usuario tenga que adivinarlo. El programa debe dar pistas de «demasiado alto» o «demasiado bajo» hasta que el usuario adivine el número.
- Ejercicio 10 – pirámide de números: Crea un programa que imprima una pirámide de números. El usuario debe introducir el número de filas y el programa debe imprimir la pirámide correspondiente.
Conclusion
Para finalizar te quiero recordar que Python es un lenguaje de programación bastante asequible tanto si eres principiantes como si eres profesional. a modo de resumen, a lo largo de este post, vimos los fundamentos esenciales de Python, desde su sintaxis básica, instalación hasta las estructuras de control, bucles y funciones. También vimos cómo la simplicidad de Python, ejemplificada en su uso de indentación y convenciones de nombrado, facilita la escritura de código limpio y legible.
Aunque me falto incluir varios temas, pero claro que vendrán en otro post, tienes la suficiente base para profundizar en las características más avanzadas del lenguaje y abordar proyectos más complejos en el futuro.
Para profundizar aún más en Python, te invito a suscribirte a nuestro boletín donde comparto ademas de los posts que voy publicando, tutoriales avanzados, retos de codificación y las últimas noticias sobre desarrollo web y programación. Además, puedes explorar los otros posts, alguno de ellos podría interesarte.
Espero que esta breve introducción a Python Guía Para Principiantes te haya aportado algún valor. Nos veremos en el próximo post. ¡Hasta luego y gracias totales!

Deja un comentario