Expresiones de Asignación en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos sobre las Expresiones de Asignación de Python, también conocidas como el "operador walrus" (:=). Este operador, introducido en Python 3.8, te permite asignar un valor a una variable como parte de una expresión. Es particularmente útil para optimizar el código, evitar cálculos redundantes y simplificar expresiones complejas.

Al final de este laboratorio, deberías ser capaz de entender y aplicar las expresiones de asignación en tus programas de Python. Empezaremos con ejemplos simples y progresaremos gradualmente hacia ejemplos más complejos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/while_loops("While Loops") python/ControlFlowGroup -.-> python/list_comprehensions("List Comprehensions") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/scope("Scope") python/PythonStandardLibraryGroup -.-> python/math_random("Math and Random") subgraph Lab Skills python/variables_data_types -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/numeric_types -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/conditional_statements -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/while_loops -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/list_comprehensions -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/function_definition -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/scope -.-> lab-5002{{"Expresiones de Asignación en Python"}} python/math_random -.-> lab-5002{{"Expresiones de Asignación en Python"}} end

Expresión de Asignación Simple

En este paso, comenzaremos con un ejemplo simple para entender la sintaxis básica de las expresiones de asignación.

Abrir la Consola de Python

Abre la consola de Python escribiendo el siguiente comando en la terminal.

python3

Prueba Simple

Comencemos con un ejemplo simple

## Ejemplo básico de una expresión de asignación
n = 5
result = (squared := n * n)
print(squared, result)

Salida:

25 25

Aquí, asignamos el resultado de n * n a la variable squared utilizando el operador walrus := dentro de los paréntesis. Luego, asignamos el valor de squared a la variable result. Finalmente, imprimimos los valores de squared y result.

Usando Expresiones de Asignación en una Declaración Condicional

En este paso, exploraremos el uso de expresiones de asignación dentro de una declaración condicional.

## Usando expresiones de asignación en una declaración condicional
input_str = "Hello, world!"
if (length := len(input_str)) > 10:
    print(f"La cadena tiene {length} caracteres, lo cual es más de 10.")
else:
    print(f"La cadena tiene {length} caracteres, lo cual es menos o igual a 10.")

Salida:

La cadena tiene 13 caracteres, lo cual es más de 10.

Aquí, calculamos la longitud de input_str y la asignamos a la variable length usando el operador walrus dentro de la condición de la declaración if. Esto nos permite usar el valor de length en ambas ramas de la condicional.

Usando Expresiones de Asignación en un Bucle

Ahora, veamos cómo usar expresiones de asignación en un bucle.

## Usando expresiones de asignación en un bucle
numbers = [1, 2, 3, 4, 5]
while (n := numbers.pop()) > 2:
    print(f"Se extrajo {n}, que es mayor que 2.")
print(f"Se extrajo {n}, que es menor o igual a 2.")

Salida:

Se extrajo 5, que es mayor que 2.
Se extrajo 4, que es mayor que 2.
Se extrajo 3, que es mayor que 2.
Se extrajo 2, que es menor o igual a 2

En este ejemplo, usamos el operador walrus dentro de la condición del bucle while para extraer elementos de la lista numbers y asignarlos a la variable n. El bucle continúa hasta que se extrae un elemento menor o igual a 2.

Usando Expresiones de Asignación en una Comprensión de Lista

Finalmente, exploremos el uso de expresiones de asignación en una comprensión de lista.

## Usando expresiones de asignación en una comprensión de lista
from math import sqrt

numbers = [1, 4, 9, 16, 25]
roots = [int(root) for n in numbers if (root := sqrt(n)) == int(root)]
print(roots)

Salida:

[1, 2, 3, 4, 5]

En este ejemplo, usamos el operador walrus dentro de una comprensión de lista para calcular la raíz cuadrada de cada número en numbers y comprobar si es un entero. Si lo es, agregamos la raíz cuadrada entera a la lista roots.

Resumen

En este laboratorio, exploramos las Expresiones de Asignación de Python (operador walrus) a través de una serie de ejemplos paso a paso. Cubrimos la sintaxis básica y el uso en declaraciones condicionales, bucles y comprensiones de lista. Hasta ahora, deberías tener una buena comprensión de cómo usar expresiones de asignación en tu código Python para optimizar y simplificar expresiones complejas.

Recuerda usar las expresiones de asignación con sabiduría para hacer que tu código sea más legible y eficiente. Al igual que con cualquier característica de programación, es importante no abusar de ella, ya que puede llevar a un código menos mantenible si se usa excesivamente o inadecuadamente.

Sigue practicando y experimentando con el operador walrus en diferentes escenarios para mejorar tus habilidades de programación en Python. ¡Buena suerte y feliz codificación!