Assegnazioni

La scrittura x = espr significa (nei linguaggi di programmazione)

  • x ← espr (scrittura convenzionale per l’istruzione di assegnazione)
  • assegna alla variabile x il valore dell’espressione espr
  • la variabile x assume il valore dell’espressione espr
  • calcola il valore dell’espressione a destra e lo assegna alla variabile a sinistra

Esempi

alfa = 10          # alfa ← 10 
beta = 5           # beta ← 5 
print(alfa, beta)  # 10 5

alfa = beta        # alfa ← beta
print(alfa, beta)  # 5 5

alfa = 2*beta+1    # alfa ← 2*beta+1 = 2*5+1 = 11
print(alfa, beta)  # 11 5

Assegnazione con operazione

Questa assegnazione è stata introdotta per velocizzare la scrittura del codice quando si tratta di aggiornare il valore di una variabile (a partire dal valore già esistente)

OperatoreistruzioneEquivale a…
+=x += esprx ← x + espr

E così per tutti gli altri operatori: -=, *=, **=, /=, //=, %=, &=, |=, ^=

Osserva

  1. prima valuta l’espressione a destra: espr
  2. dopo valuta l’espressione: x + espr
  3. dopo assegna il risultato alla variabile: x ← ...
  4. l’operatore prima del segno = è uno a scelta tra quelli elencati

Esempio 1

Incremento di uno: si usa nei cicli for / while …

alfa = 10
beta = 5 
print(alfa, beta)

alfa += 1
print(alfa, beta)
alfa = alfa+1  # 10+1 = 11

Esempio 2

Incremento con una variabile: una variabile accumula il valore di un’altra variabile

alfa  = 10
beta  = 5

alfa += beta
print(alfa, beta)
alfa = alfa+beta  # 10+5 = 15

Esempio 3

Incrementa con un’espressione

alfa  = 10
beta  = 5

alfa += beta**3
print(alfa, beta)
alfa = alfa+beta**3  # 10+5**3 = 10+125 = 135

Assegnazione multipla

Tutte le variabili assumono lo stesso valore con una sola istruzione

alfa = beta = gamma = 0
print(alfa, beta, gamma)
 alfa = (beta = (gamma = 0))

La tupla di valori viene assegnata rispettivamente alla tupla di variabili

alfa, beta = 10, 5
print(alfa, beta)
 (alfa, beta) = (10, 5)

La tupla di valori, attuali, viene assegnata alla tupla di variabili

alfa = 10
beta = 5

alfa, beta = beta, alfa
print(alfa, beta)
(alfa, beta) = (beta, alfa) = (5, 10)

Una scorciatoia per fare lo scambio dei valori tra due variabili!