lettura facile

Gli operatori di assegnazione composti in Python

Gli operatori di assegnazione composti (augmented assignments) sono utili per rendere il codice più conciso e leggibile, evitando la ripetizione del nome della variabile nell'espressione di assegnazione.

Per fare un esempio, anziché utilizzare l'espressione a = a + 2, puoi semplicemente scrivere a += 2. Questo è un esempio basilare, ma illustra efficacemente l'utilità degli operatori di assegnazione composti nel rendere il codice più diretto durante la programmazione.

Nel linguaggio Python ci sono due operatori di assegnazione composti, uno per l'addizione e l'altro per la moltiplicazione:

Operatore +=

L'operatore += è l'operatore di assegnazione composta per l'addizione.

Questo operatore aggiunge il valore alla destra dell'operatore al valore della variabile alla sinistra e assegna il risultato a quella variabile. Per esempio:

Ad esempio, assegna il valore 5 a una variabile

a=5

Ora utilizza l'operatore += per sommare 2 a 5

a += 2

Questo comando equivale all'assegnazione a = a + 2

Stampa il risultato.

print(a)

Il risultato è 7.

7

Operatore *=

L'operatore *= è l'operatore di assegnazione composta per la moltiplicazione.

Questo operatore moltiplica la variabile per il valore alla sua destra e assegna il risultato a quella variabile.

Ad esempio, assegna un valore alla variabile b

b = 3

Poi applica l'operatore di assegnazione composta *= in questo modo

b *= 4

Questo comando equivale a scrivere b = b * 4

In pratica, moltiplica per 4 il valore contenuto nella variabile b.

Stampa il risultato.

print(b)

Il risultato è 12 ossia il valore iniziale (3) di b moltiplicato per quattro.

12

In conclusione, gli operatori di assegnazione composta ti permettono di svolgere le stesse operazioni degli operatori + e * scrivendo meno codice.

Gli augmented assignments sulle sequenze (liste, tuple, stringhe)

Puoi usare gli operatori di assegnazione composta anche con le sequenze, ovvero il tipo di dato che comprende le stringhe, le liste, le tuple. Gli operatori += e *= hanno applicazioni interessanti su questi tipi di dati.

Le liste

Nelle liste l'operatore += aggiunge degli elementi alla lista.

Crea una lista con tre elementi.

lista = [1, 2, 3]

Ora aggiungi degli elementi alla fine della lista usando l'operatore +=-

lista += [4, 5]

Ora lista è la seguente:

[1, 2, 3, 4, 5]

L'operatore *= ripete e concatena la lista un numero specificato di volte.

Ad esempio, definisci di nuovo la lista con tre elementi.

lista = [1, 2, 3]

Ora ripeti la lista per due volte

lista *= 2

Adesso la lista è composta da sei elementi, la stessa sequenza è stata ripetuta due volte.

[1, 2, 3, 1, 2, 3]

Le stringhe

L'operatore += aggiunge una stringa alla fine di un'altra.

Ad esempio, definisci una stringa

stringa = "Ciao"

Ora concatena alla stringa un'altra stringa.

stringa += " Mondo"

Il risultato è una stringa formata dalla concatenazione della prima e della seconda stringa

"Ciao Mondo"

L'operatore *= ripete la stringa un numero specificato di volte.

Ad esempio, definisci una stringa

stringa = "abc"

Poi moltiplica per tre la stringa.

stringa *= 3

Questo comando ripete per tre volte il contenuto della stringa.

Ora stringa è la seguente:

"abcabcabc"

Nota. L'uso di *= su stringhe o liste per creare grandi quantità di dati può essere inefficiente in termini di memoria e prestazioni.

Tuple

Nelle tuple l'operatore += non funziona perché non puoi aggiungere nuovi elementi a una tupla, in quanto le tuple sono strutture di dati immutabili.

Tuttavia, puoi ripetere il contenuto esistente della tupla più volte.

L'operatore *= ripete e concatena gli elementi della tupla per un numero specificato di volte

Ad esempio, crea una tupla con due elementi.

tupla = (1, 2)

Ora ripeti la lista per tre volte

tupla *= 3

Dopo la modifica la tupla è composta da sei elementi.

(1, 2, 1, 2, 1, 2)

In conclusione, gli augmented assignments sono un modo efficace per manipolare variabili e sequenze in Python, ti aiutano a rendere il codice più pulito e gestibile.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin