Capítulo 6
Iteración
6.1. Asignación múltiple
Es posible que haya descubierto que es posible hacer mas de una asignación a una misma variable. El efecto de la nueva asignación es redirigir la variable de manera que deje de remitir al valor antiguo y empiece a remitir al valor nuevo.
1: bruno = 5
2: print bruno,
3: bruno = 7
4: print bruno
La salida del programa es 5 7, ya que la primera vez que imprimimos Bruno su valor es 5, y la segunda vez su valor es 7. La coma al final de la primera sentencia print impide que se imprima una nueva l³nea en ese punto, por eso ambos valores aparecen en la misma línea.
He aquí el aspecto de una asignacion multiple en un diagrama de estado:
Cuando hay asignaciones multiples a una variable, es especialmente importante distinguir entre una sentencia de asignacion y una sentencia de igualdad. Puesto que Python usa el s³mbolo = para la asignacion, es tentador interpretar una sentencia como a = b como sentencia de igualdad. Pero no lo es.
Para empezar, la igualdad es commutativa, y la asignacion no lo es. Por ejemplo en matematicas si a = 7 entonces 7 = a. Pero en Python la sentencia a = 7 es legal, y 7 = a no lo es.
Y lo que es mas, en matematicas, una sentencia de igualdad es verdadera todo el tiempo. Si a = b ahora, entonces a siempre sera igual a b. En Python, una sentencia de asignacion puede hacer que dos variables sean iguales, pero no tienen por que quedarse así.
1: a = 5
2: b = a # a y b son ahora iguales
3: a = 3 # a y b ya no son iguales
La tercera línea cambia el valor de a pero no cambia el valor de b, y por lo tanto ya dejan de ser iguales. En algunos lenguajes de programacion, se usa para la asignación un símbolo distinto, como <- o como :=, para evitar la confusion.
Aunque la asignacion multiple es util a menudo, debe usarla con cuidado. Si los valores de las variables van cambiando constantemente en distintas partes del programa, podría suceder que el codigo sea difícil de leer y mantener.
Comentarios
Publicar un comentario