Null in Python: 7 casi duso con esempi di codice

Null in Python: 7 casi duso con esempi di codice

Nella programmazione, potresti incontrare situazioni in cui una variabile non ha un valore. Queste istanze sono comunemente rappresentate da un valore speciale noto come null. Molti linguaggi di programmazione, come C, Java, JavaScript e PHP, hanno valori null incorporati, ma Python adotta un approccio leggermente diverso per rappresentare le variabili null.

In Python, l'equivalente di null è None. È una costante speciale in Python che rappresenta l'assenza di un valore o un valore nullo. È un'istanza del proprio tipo di dati : NoneType. Non è lo stesso di 0, False o una stringa vuota poiché è un tipo di dati a sé stante che non rappresenta alcun valore o nessun oggetto.

Null in Python: 7 casi d'uso con esempi di codice

Se stai imparando Python, è importante comprendere il concetto di None in Python. Fornisce i mezzi per creare un codice efficiente che gestisca i casi limite. Mentre esplori la programmazione Python, ti imbatterai in vari scenari in cui None si rivela essenziale.

In questo articolo, esploreremo cos'è un null, o nessuno, in Python. Esamineremo esempi e casi d'uso per aiutarti a consolidare il concetto di valori nulli. Ma prima, capiamo il concetto di valori None, o Null, in Python.

Sommario

Cos'è Null in Python?

Per capire null in Python, dovrai comprendere i seguenti due concetti:

  1. Differenza tra Nessuno e Nullo

  2. Nessunotipo

1. Differenza tra Nessuno e Nullo

Null in molti linguaggi di programmazione viene utilizzato per indicare un puntatore vuoto o un valore sconosciuto. È possibile definire il valore nullo come 0 in queste lingue.

Tuttavia, in Python, invece di null, si utilizza la parola chiave None per definire oggetti e variabili vuoti. Nessuno ha gli stessi scopi di null in altre lingue. Ma è un'entità distinta e non definita come 0 o qualsiasi altro valore.

2. NessunoTipo

In Python, None è un tipo unico di struttura dati, classificato sotto un tipo chiamato NoneType. È un cittadino di prima classe, il che significa che puoi assegnarlo alle variabili. Puoi anche passarlo come argomento e restituire come risultato.

Quando si assegna a una variabile il valore None, questa diventa un oggetto NoneType. None non equivale a una stringa vuota, al valore booleano False o al valore numerico 0. Significa semplicemente variabile nulla o nulla.

Ora che hai compreso le terminologie relative a nessuno, andiamo avanti e vediamo come puoi usare Nessuno per diversi casi d'uso!

Come usare Nessuno in Python

In Python, puoi usare None per una serie di casi d'uso. In questa sezione, esamineremo 4 importanti casi d'uso di None in Python.

Null in Python: 7 casi d'uso con esempi di codice

Nello specifico, esamineremo i seguenti casi d'uso:

  1. Assegnazione None alle variabili

  2. Utilizzo di Nessuno come parametro predefinito

  3. Verifica di Nessuno con l'operatore di identità

  4. Gestione dei valori mancanti

Entriamo in esso!

1. Assegnare Nessuno alle variabili

È possibile assegnare None alle variabili per indicare l'assenza di un valore.

Per esempio:

x = None

Nessuno qui significa che il valore di x è assente o che non è stato ancora deciso un valore valido.

2. Utilizzo di Nessuno come parametro predefinito

È possibile utilizzare Nessuno come valore di parametro predefinito anche per definire le funzioni. Questo è utile quando vuoi consentire argomenti facoltativi per i parametri predefiniti nelle tue funzioni.

Il codice seguente mostra come utilizzare None come parametro predefinito:

def greet(name=None):
    if name is None:
        print("Hello, World!")
    else:
        print(f"Hello, {name}!")

# Call the function without providing a name
greet()

# Call the function with a name
greet("Alice")

Quando esegui questo codice, stampa "Hello, World!" quando chiami greet() senza alcun argomento. Ma quando chiami greet() con un argomento, come greet(“Alice”), stampa “Hello, Alice!”. Ciò consente alla funzione di avere argomenti opzionali.

Null in Python: 7 casi d'uso con esempi di codice

3. Verifica di nessuno con l'operatore di identità

È possibile utilizzare l' operatore is identity per verificare se una variabile è None. Ciò consente di confrontare se due variabili si riferiscono allo stesso oggetto.

Di seguito è riportato un esempio per mostrare come utilizzare l'operatore di identità:

# Define a variable with no value
var1 = None

# Define a variable with a value
var2 = "Hello, World!"

# Check if var1 is None
if var1 is None:
    print("var1 is None")
else:
    print("var1 is not None")

# Check if var2 is None
if var2 is None:
    print("var2 is None")
else:
    print("var2 is not None")

In questo codice, var1 is None restituirà True perché a var1 è stato assegnato il valore None. D'altra parte, var2 is None restituirà False perché var2 ha un valore stringa.

L'output per lo script è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

4. Gestione dei valori mancanti

Potresti anche incontrare dati con valori mancanti. Puoi rappresentare questi valori mancanti con Nessuno e gestirli di conseguenza.

Di seguito è riportato un esempio quando si ha a che fare con un elenco di numeri:

# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]

def calculate_average(data):
    # Filter out None values using list comprehension
    valid_data = [value for value in data if value is not None]

    # Calculate average if valid_data is not empty
    average = sum(valid_data) / len(valid_data) if valid_data else None

    return average

# Call the function and print the result
print(calculate_average(data))

Questa funzione calcola la somma di tutti i valori diversi da Nessuno nell'elenco e la divide per il conteggio dei valori diversi da Nessuno. Se tutti i valori nell'elenco sono Nessuno, la funzione restituisce Nessuno.

L'output è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

Usando None e le diverse tecniche sopra menzionate, puoi gestire efficacemente i valori mancanti in Python.

Per ulteriori informazioni sulla gestione dei valori mancanti in Python, guarda il seguente video:

Alcuni altri casi d'uso di None in Python

Oltre ai casi d'uso discussi nella sezione precedente, esistono anche altri casi d'uso di None. Questi casi d'uso non sono usati di frequente ma sono utili da conoscere e sono utili in alcuni scenari.

In questa sezione, esamineremo i seguenti 3 casi d'uso di None in Python:

  1. Utilizzo di None nelle dichiarazioni di ritorno

  2. Utilizzo di Nessuno come flag

  3. Utilizzo di Nessuno per gli oggetti personalizzati

Immergiamoci dentro!

1. Utilizzo di None come dichiarazioni di restituzione

È possibile utilizzare None nelle istruzioni return, in particolare quando una funzione completa la sua esecuzione senza trovare un risultato specifico.

Ad esempio, una funzione che cerca un elemento in un elenco può restituire None se l'elemento non viene trovato. Il codice seguente mostra l'utilizzo di None come valore restituito:

# Define a list
numbers = [10, 20, 30, 40, 50]

def find_in_list(lst, target):
    for i, value in enumerate(lst):
        if value == target:
            return i
    return None

# Search for a number in the list
print(find_in_list(numbers, 30))  
print(find_in_list(numbers, 60))

In questo codice, la funzione find_in_list itera sull'elenco di input lst . Se trova il valore di destinazione, restituisce l'indice di quel valore. Se non trova il valore di destinazione dopo aver controllato l'intero elenco, restituisce None.

L'output è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

2. Utilizzo di Nessuno come flag

Puoi anche usare None come flag per indicare lo stato di una variabile. Ad esempio, potresti usarlo per contrassegnare se un valore non è inizializzato o per tenere traccia di una condizione speciale nel programma.

Di seguito è riportato un esempio di come è possibile utilizzare None come flag:

def find_first_even_number(numbers):
    # Initialize the first_even_number to None
    first_even_number = None

    # Iterate over the list of numbers
    for number in numbers:
        # If we find an even number and first_even_number is still None
        if number % 2 == 0 and first_even_number is None:
            first_even_number = number
            break

    return first_even_number

numbers = [1, 3, 5, 7, 8, 10]

# Call the function and print the result
print(find_first_even_number(numbers))  # Outputs: 8

In questo codice, None è usato come flag per indicare che non abbiamo ancora trovato un numero pari nell'elenco.

Se first_even_number è ancora None dopo il ciclo , significa che non c'erano numeri pari nell'elenco.

If first_even_number is not None, it contains the first even number from the list.

Null in Python: 7 casi d'uso con esempi di codice

3. Using None for Custom Objects

You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.

The following example demonstrates how you can use None for user-defined objects:

class Person:
    def __init__(self, name):
        self.name = name
        self.best_friend = None

    def set_best_friend(self, person):
        self.best_friend = person

    def get_best_friend_name(self):
        if self.best_friend is not None:
            return self.best_friend.name
        else:
            return None

# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')

# Alice's best friend is Bob
alice.set_best_friend(bob)

print(alice.get_best_friend_name())  

# Charlie doesn't have a best friend
charlie = Person('Charlie')

print(charlie.get_best_friend_name())  

In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.

The above code will output the following:

Null in Python: 7 casi d'uso con esempi di codice

Special Functions and Techniques for Null Object

Verranno ora discusse alcune funzioni e tecniche speciali che è possibile utilizzare in relazione a NoneType e alla gestione dei valori null. Tratteremo due sottosezioni principali:

  1. La funzione Id

  2. La funzione Getattr

1. Funzione di identificazione

La funzione id() in Python è una funzione integrata che restituisce l'identità di un oggetto. Questa identità è un numero intero univoco e costante assegnato a un oggetto durante la sua vita.

Ciò consente di distinguere tra oggetti con diversi indirizzi di memoria. La funzione è particolarmente utile quando si lavora con oggetti NoneType, in quanto può essere utilizzata per verificare la presenza di None in variabili o espressioni.

Di seguito è riportato un esempio che utilizza la funzione id() :

a = None
b = None
c = 42

print(id(a))  # Output: some unique integer representing None
print(id(b))  # Output: same integer as id(a)
print(id(c))  # Output: different integer from id(a) and id(b)

L'output di questo codice è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

Poiché None è un cittadino di prima classe in Python, ha una propria identità univoca. Ciò significa che puoi utilizzare la funzione id() per confrontare le variabili con None utilizzando le loro identità:

if id(a) == id(None):
    print("a is None")

L'output è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

2. Funzione Getattr

La funzione getattr() è un'altra funzione Python incorporata che consente di accedere agli attributi di un oggetto per nome.

Dato un oggetto e una stringa, getattr() restituisce il valore dell'attributo denominato o l'oggetto None se l'attributo non esiste.

Questo può essere utile quando si gestiscono valori null, specialmente nei casi in cui è necessario accedere ad attributi che potrebbero mancare.

Di seguito è riportato un esempio che utilizza la funzione getattr() :

class ExampleClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

example_obj = ExampleClass(3, 4)

# Access attribute using getattr
print(getattr(example_obj, "x"))  # Output: 3
print(getattr(example_obj, "z", None))  # Output: None

Nell'esempio sopra, usiamo getattr() per accedere all'attributo x e tentare di accedere a un attributo z inesistente.

Fornendo un valore predefinito di None, preveniamo un AttributeError e invece riceviamo l'oggetto None.

Di conseguenza, questa funzione consente un accesso sicuro agli attributi anche in presenza di oggetti nulli o attributi mancanti.

L'output di questo codice è riportato di seguito:

Null in Python: 7 casi d'uso con esempi di codice

Confronto null in altri linguaggi di programmazione

All'inizio di questo articolo, abbiamo fatto un breve confronto tra Null in Python e Null in altri linguaggi di programmazione.

In questa sezione, porteremo avanti questo argomento e confronteremo Null in altri popolari linguaggi di programmazione con Null in Python. Questo ti aiuterà a capire meglio il concetto di None in Python se provieni da un diverso background di programmazione.

Entriamo in esso!

1. Null in Java

In Java, la parola chiave "null" rappresenta un riferimento che non punta ad alcun oggetto o valore. Viene utilizzato per indicare l'assenza di un valore ed è spesso utilizzato come valore predefinito per i riferimenti agli oggetti.

Ad esempio:

String myString = null; // Declare a String object with a null reference

Il null di Java è diverso dal None di Python. Null rappresenta la mancanza di un oggetto, mentre None è un oggetto effettivo di NoneType.

2. Nullo in C

Nel linguaggio di programmazione C, null è rappresentato da un puntatore null, che indica un puntatore non inizializzato o vuoto. Il puntatore nullo è spesso rappresentato dal valore intero 0.

Di seguito è riportato un esempio di utilizzo di un puntatore nullo in C:

int *myPointer = NULL; // Declare an integer pointer with a null reference

Null in C non è associato a un tipo di dati specifico. Serve come segnaposto per puntatori non inizializzati o vuoti.

3. Nullo in PHP

In PHP, null rappresenta una variabile senza valore o senza riferimento. Come in altri linguaggi, null è usato per denotare variabili non inizializzate o vuote.

Di seguito è riportato un esempio di Null in PHP:

$myVar = NULL; // Declare a variable with a null reference

Il null di PHP non è un oggetto di un tipo di dati specifico ma piuttosto una costante speciale che rappresenta l'assenza di un valore.

Pensieri finali

Nel tuo viaggio come programmatore Python, conoscere i valori None è di grande importanza. È una caratteristica unica che serve come modo di Python per dire "niente qui".

È essenziale per rappresentare l'assenza di un valore. Comprendendo e utilizzando correttamente None, puoi creare funzioni più flessibili con argomenti facoltativi e gestire efficacemente i dati mancanti.

Inoltre, i valori Nessuno consentono alle tue funzioni di comunicare chiaramente quando qualcosa è assente o quando una condizione non è stata soddisfatta. Inoltre, la comprensione di None è fondamentale quando si ha a che fare con database, oggetti definiti dall'utente o quando è necessario inizializzare variabili.

Questa guida sui valori None in Python mostra alcuni degli scenari importanti in cui vorrai usare l'oggetto None nel tuo codice.


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere