CodeGym /Corsi /Python SELF IT /Aggiunte Importanti

Aggiunte Importanti

Python SELF IT
Livello 5 , Lezione 6
Disponibile

6.1 Le variabili sono riferimenti

In Python le variabili sono riferimenti a oggetti, non la variabile stessa. Questo significa che, quando crei una variabile in Python, stai semplicemente creando un riferimento a un oggetto in memoria.

Questa caratteristica del linguaggio ha importanti implicazioni per il lavoro con le variabili, specialmente quando si passano oggetti a funzioni o si assegnano ad altre variabili.

Quando crei una variabile e le assegni un valore, Python alloca un oggetto in memoria per quel valore e rende la variabile un riferimento a quell'oggetto. Se assegni una variabile a un'altra, la nuova variabile farà riferimento allo stesso oggetto della variabile originale. Questo significa che le modifiche apportate tramite una variabile si rifletteranno anche sull'altra, se l'oggetto è mutabile.

Esempio:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # Uscita: [1, 2, 3, 4]

Abbiamo aggiunto il numero 4 alla variabile b, ma esso è stato aggiunto anche alla lista nella variabile a, perché in realtà entrambe le variabili sono solo riferimenti all'oggetto lista [1, 2, 3].

6.2 Oggetti immutabili

In Python gli oggetti si suddividono in mutabili e immutabili. Gli oggetti mutabili, come le liste e i dizionari, possono essere modificati dopo la creazione.

Gli oggetti immutabili, come le stringhe e i numeri, non possono essere modificati dopo la creazione. Quando lavori con oggetti immutabili, le modifiche portano alla creazione di un nuovo oggetto:

L'assegnazione non cambia mai l'oggetto:


a = 5  # a contiene un riferimento all'oggetto 5
b = a  # b contiene anche un riferimento all'oggetto 5
b = 3  # ora b contiene un riferimento all'oggetto 3
print(a)  # Uscita: 5               

Un oggetto può essere modificato richiamando la sua funzione:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # Uscita: [1, 2, 3, 4]                              

Ma ci sono oggetti immutabili che hanno funzioni. Queste funzioni non cambiano l'oggetto originale, ma restituiscono uno nuovo, che contiene il nuovo risultato:


name = "Alex"
print(name)  # Uscita: Alex
name2 = name.lower() 
print(name2)  # Uscita: alex               

Le stringhe sono oggetti immutabili. E anche se hanno metodi, questi metodi non cambiano mai l'oggetto stringa, ma ritornano invece sempre una nuova stringa (un nuovo oggetto). L'oggetto vecchio rimane invariato.

6.3 Lavorare con il tipo None

In Python c'è un tipo di dato speciale che rappresenta l'assenza di valore — None. Viene usato per indicare variabili vuote o come valore di ritorno per funzioni che non restituiscono nulla. Comprendere None è importante per gestire il comportamento del programma, specialmente nel contesto delle istruzioni condizionali e la manipolazione dei dati.

Fondamenti dell'utilizzo di None

None è l'unica istanza della classe NoneType. Viene usato per indicare che una variabile non ha valore. Nei confronti None viene valutato come falso (False).


a = None
if a:
    print("a è True")
else:
    print("a è None o False")

Confronto con None

La verifica di una variabile su None dovrebbe essere effettuata usando l'operatore is, non ==. L'operatore is verifica l'identità, non l'uguaglianza dei valori.


a = None
if a is None:
    print("a è None")
else:
    print("a ha un valore")

None nelle funzioni

None è spesso usato in funzioni che non devono restituire esplicitamente un valore. Se una funzione non restituisce un valore, restituisce implicitamente None.


def func():
    print("Questa funzione ritorna None")

result = func()
print(result)  # Uscita: None

None e liste

None può essere utilizzato in liste, tuple o altre collezioni per indicare l'assenza di un elemento in una determinata posizione.


my_list = [1, None, 3]
print(my_list)  # Uscita: [1, None, 3]
2
Compito
Python SELF IT, livello 5, lezione 6
Bloccato
Tu gli dai una parola, lui ti dà un link
Tu gli dai una parola, lui ti dà un link
2
Compito
Python SELF IT, livello 5, lezione 6
Bloccato
Incertezza
Incertezza
1
Sondaggio/quiz
Conversione di tipi, livello 5, lezione 6
Non disponibile
Conversione di tipi
Conversione di tipi
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION