Resumen
Aprende a escribir código más claro y corto en Python dominando operadores de asignación como +=, -=, =, /=, %=, //=, = y el operador walrus* (:=). Con ejemplos simples verás cómo actualizar variables sin repetirlas y cómo estos operadores afectan los tipos numéricos.
¿Qué son los operadores de asignación en Python?
Los operadores de asignación permiten actualizar el valor de una variable tomando su valor previo y aplicando una operación en el mismo paso. En lugar de escribir expresiones largas, puedes ahorrar código y mantener la intención más visible.
# Asignación básica
y = 5 # y ahora vale 5
# Sumar y reasignar (forma larga vs. corta)
x = 5
x = x + 3 # x ahora vale 8
x = 5 # reiniciamos
x += 3 # mismo resultado: 8
# Restar y reasignar
x -= 3 # vuelve a 5
- = asigna un valor inicial a la variable.
- +=, -= actualizan el valor existente con suma o resta.
- Menos repetición, más legibilidad.
¿Cómo se aplican las operaciones básicas y sus efectos en el tipo?
Además de suma y resta, puedes usar multiplicación, división, módulo, división entera y exponente con sus versiones de asignación. Importante: con la división estándar, el resultado pasa a flotante.
x = 5
x *= 3 # 15
x /= 3 # 5.0 ← al dividir, el resultado es flotante (tipo *float*).
¿Qué pasa con el módulo y los tipos?
El módulo (%=) devuelve el resto de la división y, si la variable es flotante, el resto también será flotante.
x = 5.0 # x quedó flotante tras la división
x %= 2 # 1.0 ← el resto también es flotante.
- %= calcula el resto y reasigna.
- Si la variable es flotante, el resultado del módulo es flotante.
¿Cómo funciona la división entera y el exponente?
La división entera (//=) ignora la parte decimal. El exponente (**=) repite multiplicaciones.
y = 20
y //= 2 # 10
# Si y fuera 21: y //= 2 → 10 (ignora la parte decimal).
# Exponente (elevar al cubo)
y = 10
y **= 3 # 1000 (10 * 10 * 10)
- //= hace división entera y descarta decimales.
- **= eleva a potencias repetidas y reasigna.
¿Qué hace el operador walrus en Python 3.8?
El operador walrus (:=) permite asignar mientras usas el valor, incluso dentro de un print. Es muy práctico para evitar líneas extra al preparar valores.
# Asignar dentro del print
print(z := 3) # imprime 3 y, además, z queda asignada con 3
print(z) # 3 (ya estaba guardado)
- := asigna y devuelve el valor en la misma expresión.
- Funciona dentro de llamadas como print y evita código repetido.
- Disponible desde Python 3.8.
¿Te gustaría ver más ejemplos con casos reales y combinar estos operadores en expresiones más complejas? Deja tus dudas o comparte tu caso en los comentarios.