Null i Python: 7 brugstilfælde med kodeeksempler

I programmering kan du støde på situationer, hvor en variabel ikke har en værdi. Disse forekomster er almindeligvis repræsenteret af en særlig værdi kendt som null. Mange programmeringssprog, såsom C, Java, JavaScript og PHP, har indbyggede null-værdier, men Python har en lidt anden tilgang til at repræsentere null-variabler.

I Python er ækvivalenten til null Ingen. Det er en speciel konstant i Python, der repræsenterer fraværet af en værdi eller en nulværdi. Det er en instans af sin egen datatype - NoneType. Det er ikke det samme som 0, Falsk eller en tom streng, da det er en egen datatype, der ikke repræsenterer nogen værdi eller intet objekt.

Null i Python: 7 brugstilfælde med kodeeksempler

Hvis du lærer Python, er det vigtigt at forstå begrebet Ingen i Python. Det giver dig midlerne til at skabe effektiv kode, der håndterer edge cases. Når du udforsker Python-programmering, vil du støde på forskellige scenarier, hvor Ingen viser sig at være afgørende.

I denne artikel vil vi undersøge, hvad en null eller ingen er i Python. Vi vil gennemgå eksempler og bruge cases til at hjælpe dig med at fastlægge begrebet nulværdier. Men lad os først forstå begrebet None, eller Null, værdier i Python.

Indholdsfortegnelse

Hvad er Null i Python?

For at forstå null i Python, skal du forstå følgende to begreber:

  1. Forskellen mellem Ingen og Null

  2. Ingen type

1. Forskellen mellem Ingen og Null

Null i mange programmeringssprog bruges til at angive en tom markør eller en ukendt værdi. Du kan definere null-værdien som 0 på disse sprog.

I Python bruger du dog nøgleordet None i stedet for null til at definere tomme objekter og variabler. Ingen tjener nogle af de samme formål som null på andre sprog. Men det er en særskilt enhed og ikke defineret til at være 0 eller nogen anden værdi.

2. NoneType

I Python er None en unik form for datastruktur, klassificeret under en type kaldet NoneType. Det er en førsteklasses borger, hvilket betyder, at du kan tildele den til variabler. Du kan også sende det som et argument og vende tilbage som et resultat.

Når du tildeler en variabelværdi None, bliver den et NoneType-objekt. Ingen svarer ikke til en tom streng, den boolske værdi False eller den numeriske værdi 0. Det betyder simpelthen null-variabel eller ingenting.

Nu hvor du forstår terminologierne relateret til ingen, lad os gå videre og se, hvordan du kan bruge Ingen til forskellige brugstilfælde!

Sådan bruges ingen i Python

I Python kan du bruge Ingen til en række brugssager. I dette afsnit vil vi se på 4 vigtige use cases af None i Python.

Null i Python: 7 brugstilfælde med kodeeksempler

Specifikt vil vi se på følgende anvendelsestilfælde:

  1. Tildeling af Ingen til variabler

  2. Bruger Ingen som standardparameter

  3. Kontrollerer for Ingen med identitetsoperatør

  4. Håndtering af manglende værdier

Lad os komme ind i det!

1. Tildeling af ingen til variabler

Du kan tildele Ingen til variabler for at angive fraværet af en værdi.

For eksempel:

x = None

Ingen betyder her, at værdien af ​​x mangler, eller at der endnu ikke er besluttet en gyldig værdi.

2. Brug af Ingen som standardparameter

Du kan bruge Ingen som standardparameterværdi til også at definere funktioner. Dette er nyttigt, når du vil tillade valgfrie argumenter for standardparametre i dine funktioner.

Følgende kode viser dig, hvordan du bruger Ingen som standardparameter:

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")

Når du kører denne kode, er det "Hej, verden!" når du kalder greet() uden argument. Men når du kalder greet() med et argument, som greet(“Alice”), udskriver det “Hej, Alice!”. Dette gør det muligt for funktionen at have valgfrie argumenter.

Null i Python: 7 brugstilfælde med kodeeksempler

3. Kontroller for ingen med identitetsoperatør

Du kan bruge is- identitetsoperatoren til at kontrollere, om en variabel er Ingen. Dette giver dig mulighed for at sammenligne, hvis to variable refererer til det samme objekt.

Følgende er et eksempel for at vise dig, hvordan du bruger identitetsoperatøren:

# 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")

I denne kode vil var1 er None returnere True, fordi var1 blev tildelt værdien None. På den anden side, var2 er Ingen vil returnere Falsk, fordi var2 har en strengværdi.

Outputtet for scriptet er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

4. Håndtering af manglende værdier

Du kan også støde på data med manglende værdier. Du kan repræsentere disse manglende værdier med Ingen og håndtere dem i overensstemmelse hermed.

Følgende er et eksempel, når du har at gøre med en liste med tal:

# 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))

Dette beregner summen af ​​alle ikke-Ingen værdier på listen og dividerer den med antallet af ikke-Ingen værdier. Hvis alle værdierne på listen er Ingen, returnerer funktionen Ingen.

Outputtet er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

Ved at bruge None og de forskellige teknikker nævnt ovenfor, kan du effektivt håndtere manglende værdier i Python.

For at lære mere om håndtering af manglende værdier i Python, se følgende video:

Nogle flere brugstilfælde af ingen i Python

Bortset fra de use cases, der er diskuteret i afsnittet ovenfor, er der også nogle andre use cases af None. Disse use cases er ikke ofte brugte, men er gode at kende og er nyttige i nogle scenarier.

I dette afsnit vil vi se på de følgende 3 anvendelsestilfælde af Ingen i Python:

  1. Brug af Ingen til gengæld-erklæringer

  2. Brug af Ingen som flag

  3. Brug af Ingen til brugerdefinerede objekter

Lad os dykke ned i det!

1. Brug af Ingen som returerklæringer

Du kan bruge None i return-sætninger, især når en funktion fuldfører sin udførelse uden at finde et specifikt resultat.

For eksempel kan en funktion, der søger efter et element i en liste, returnere Ingen, hvis elementet ikke findes. Følgende kode viser brugen af ​​Ingen som returværdi:

# 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))

I denne kode gentager funktionen find_in_list over inputlisten lst . Hvis den finder målværdien, returnerer den indekset for denne værdi. Hvis den ikke finder målværdien efter at have kontrolleret hele listen, returnerer den Ingen.

Outputtet er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

2. Brug af Ingen som flag

Du kan også bruge Ingen som et flag for at angive tilstanden for en variabel. For eksempel kan du bruge det til at markere, om en værdi er uinitialiseret eller til at spore en speciel tilstand i programmet.

Følgende er et eksempel på, hvordan du kan bruge Ingen som et 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

I denne kode bruges Ingen som et flag for at indikere, at vi endnu ikke har fundet et lige tal på listen.

Hvis første_lige_tal stadig er Ingen efter , betyder det, at der ikke var nogen lige tal på listen.

Hvis første_lige_tal ikke er Ingen, indeholder det det første lige tal fra listen.

Null i Python: 7 brugstilfælde med kodeeksempler

3. Brug af Ingen til brugerdefinerede objekter

Du kan også bruge Ingen til brugerdefinerede, brugerdefinerede objekter. Når du har at gøre med attributter, egenskaber eller metoder, der returnerer andre objekter, kan du bruge Ingen til at angive fraværet af en værdi eller en relation.

Følgende eksempel viser, hvordan du kan bruge Ingen til brugerdefinerede objekter:

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())  

I dette eksempel bruges Ingen som standardværdi for attributten best_friend for en Person-forekomst. Get_best_friend_name metoden returnerer navnet på den bedste ven, hvis der er en, og Ingen, hvis der ikke er .

Ovenstående kode udsender følgende:

Null i Python: 7 brugstilfælde med kodeeksempler

Særlige funktioner og teknikker til Null Object

Vi vil nu diskutere nogle specielle funktioner og teknikker, som du kan bruge i forbindelse med NoneType og håndtering af null-værdier. Vi vil dække to hovedunderafsnit:

  1. Id-funktionen

  2. Getattr-funktionen

1. Id-funktion

Funktionen id() i Python er en indbygget funktion , der returnerer identiteten af ​​et objekt. Denne identitet er et unikt og konstant heltal, der tildeles et objekt i dets levetid.

Dette giver dig mulighed for at skelne mellem objekter med forskellige hukommelsesadresser. Funktionen er især nyttig, når du arbejder med NoneType-objekter, da den kan bruges til at kontrollere tilstedeværelsen af ​​None i variabler eller udtryk.

Følgende er et eksempel, der bruger id()- funktionen:

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)

Outputtet af denne kode er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

Da None er en førsteklasses borger i Python, har den sin egen unikke identitet. Dette betyder, at du kan bruge id() -funktionen til at sammenligne variabler med Ingen ved at bruge deres identiteter:

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

Outputtet er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

2. Getattr Funktion

Funktionen getattr() er en anden indbygget Python-funktion, der giver dig adgang til et objekts attributter efter navn.

Givet et objekt og en streng, returnerer getattr() værdien af ​​den navngivne attribut eller None-objektet, hvis attributten ikke eksisterer.

Dette kan være nyttigt for dig, når du håndterer null-værdier, især i tilfælde, hvor du har brug for at få adgang til attributter, der muligvis mangler.

Følgende er et eksempel, der bruger funktionen 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

I eksemplet ovenfor bruger vi getattr() til at få adgang til x-attributten og forsøge at få adgang til en ikke-eksisterende z-attribut.

Ved at angive en standardværdi på None forhindrer vi en AttributeError og modtager i stedet None-objektet.

Som et resultat giver denne funktion mulighed for sikker attributadgang, selv i tilstedeværelsen af ​​null-objekter eller manglende attributter.

Outputtet af denne kode er givet nedenfor:

Null i Python: 7 brugstilfælde med kodeeksempler

Sammenligning af Null i andre programmeringssprog

I starten af ​​denne artikel lavede vi en kort sammenligning af Null i Python og Null i andre programmeringssprog.

I dette afsnit tager vi dette emne videre og sammenligner Null i andre populære programmeringssprog med Null i Python. Dette vil hjælpe dig med bedre at forstå konceptet Ingen i Python, hvis du kommer fra en anden programmeringsbaggrund.

Lad os komme ind i det!

1. Null i Java

I Java repræsenterer "null" nøgleordet en reference, der ikke peger på noget objekt eller værdi. Det bruges til at angive fraværet af en værdi og bruges ofte som standardværdi for objektreferencer.

For eksempel:

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

Javas null er forskellig fra Pythons Ingen. Null repræsenterer mangel på et objekt, hvorimod None er et faktisk objekt af NoneType.

2. Nul i C

I programmeringssproget C er null repræsenteret af en nul-markør, som angiver en ikke-initialiseret eller tom pointer. Null-markøren er ofte repræsenteret af heltalsværdien 0.

Følgende er et eksempel på brug af en null-pointer i C:

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

Null i C er ikke knyttet til en bestemt datatype. Den tjener som en pladsholder for ikke-initialiserede eller tomme pointere.

3. Null i PHP

I PHP repræsenterer null en variabel uden værdi eller reference. Ligesom på andre sprog bruges null til at betegne uinitialiserede eller tomme variable.

Følgende er et eksempel på Null i PHP:

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

PHP's null er ikke et objekt af en bestemt datatype, men snarere en speciel konstant, der repræsenterer fraværet af en værdi.

Afsluttende tanker

På din rejse som Python-programmør er det af stor betydning at lære om None-værdier. Det er en unik funktion, der fungerer som Pythons måde at sige "intet her."

Det er vigtigt for at repræsentere fraværet af en værdi. Ved at forstå og bruge Ingen korrekt, er du i stand til at skabe mere fleksible funktioner med valgfrie argumenter og effektivt håndtere manglende data.

Ydermere giver ingen værdier dine funktioner mulighed for at kommunikere tydeligt, når noget mangler, eller når en betingelse ikke er opfyldt. Desuden er det afgørende at forstå Ingen, når du har at gøre med databaser, brugerdefinerede objekter, eller når du skal initialisere variabler.

Denne vejledning om None-værdier i Python demonstrerer nogle af de vigtige scenarier, hvor du vil bruge None-objektet i din kode.


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.