Null i Python: 7 användningsfall med kodexempel

I programmering kan du stöta på situationer där en variabel inte har ett värde. Dessa instanser representeras vanligtvis av ett speciellt värde som kallas null. Många programmeringsspråk, som C, Java, JavaScript och PHP, har inbyggda nollvärden, men Python tar ett lite annorlunda tillvägagångssätt för att representera nollvariabler.

I Python är motsvarigheten till null Ingen. Det är en speciell konstant i Python som representerar frånvaron av ett värde eller ett nollvärde. Det är en instans av sin egen datatyp - NoneType. Det är inte samma sak som 0, False eller en tom sträng eftersom det är en egen datatyp som inte representerar något värde eller inget objekt.

Null i Python: 7 användningsfall med kodexempel

Om du lär dig Python är det viktigt att förstå konceptet Ingen i Python. Det ger dig möjlighet att skapa effektiv kod som hanterar kantfall. När du utforskar Python-programmering kommer du att stöta på olika scenarier där Ingen visar sig vara väsentlig.

I den här artikeln kommer vi att utforska vad en noll, eller ingen, är i Python. Vi går igenom exempel och användningsfall för att hjälpa dig att befästa begreppet nollvärden. Men först, låt oss förstå konceptet med None, eller Null, värden i Python.

Innehållsförteckning

Vad är Null i Python?

För att förstå null i Python måste du förstå följande två begrepp:

  1. Skillnaden mellan None och Null

  2. Ingen typ

1. Skillnaden mellan None och Noll

Null i många programmeringsspråk används för att beteckna en tom pekare eller ett okänt värde. Du kan definiera nollvärdet som 0 på dessa språk.

Men i Python, istället för null, använder du nyckelordet None för att definiera tomma objekt och variabler. Ingen tjänar några av samma syften som null på andra språk. Men det är en distinkt enhet och inte definierad som 0 eller något annat värde.

2. NoneType

I Python är None en unik typ av datastruktur, klassificerad under en typ som kallas NoneType. Det är en förstklassig medborgare, vilket betyder att du kan tilldela den till variabler. Du kan också skicka det som ett argument och återvända som ett resultat.

När du tilldelar ett variabelvärde None, blir det ett NoneType-objekt. Ingen motsvarar inte en tom sträng, det booleska värdet False eller det numeriska värdet 0. Det betyder helt enkelt nollvariabel eller ingenting.

Nu när du förstår terminologierna relaterade till ingen, låt oss gå vidare och se hur du kan använda Ingen för olika användningsfall!

Hur man använder None i Python

I Python kan du använda None för ett antal användningsfall. I det här avsnittet ska vi titta på 4 viktiga användningsfall av None i Python.

Null i Python: 7 användningsfall med kodexempel

Specifikt ska vi titta på följande användningsfall:

  1. Tilldela None till variabler

  2. Använder ingen som standardparameter

  3. Söker efter Ingen med identitetsoperatör

  4. Hantera saknade värden

Låt oss gå in i det!

1. Tilldela ingen till variabler

Du kan tilldela None till variabler för att indikera frånvaron av ett värde.

Till exempel:

x = None

Inget här betyder att värdet på x saknas eller att ett giltigt värde inte har bestämts ännu.

2. Använder ingen som standardparameter

Du kan använda None som ett standardparametervärde för att definiera funktioner också. Detta är användbart när du vill tillåta valfria argument för standardparametrar i dina funktioner.

Följande kod visar hur du använder 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ör den här koden står det "Hej, värld!" när du ringer greet() utan några argument. Men när du anropar greet() med ett argument, som greet(“Alice”), skriver det ut ”Hej, Alice!”. Detta gör att funktionen kan ha valfria argument.

Null i Python: 7 användningsfall med kodexempel

3. Kontrollera om det inte finns någon med identitetsoperatör

Du kan använda är identitetsoperatorn för att kontrollera om en variabel är Ingen. Detta låter dig jämföra om två variabler refererar till samma objekt.

Följande är ett exempel som visar hur du använder identitetsoperatorn:

# 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 den här koden kommer var1 är None att returnera True eftersom var1 tilldelades värdet None. Å andra sidan, var2 är Ingen kommer att returnera False eftersom var2 har ett strängvärde.

Utdata för skriptet ges nedan:

Null i Python: 7 användningsfall med kodexempel

4. Hantera saknade värden

Du kan också stöta på data med saknade värden. Du kan representera dessa saknade värden med None och hantera dem därefter.

Följande är ett exempel när det gäller en lista med nummer:

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

Detta beräknar summan av alla icke-Inga-värden i listan och dividerar den med antalet icke-Inga-värden. Om alla värden i listan är None, returnerar funktionen None.

Utgången ges nedan:

Null i Python: 7 användningsfall med kodexempel

Genom att använda None och de olika teknikerna som nämns ovan kan du effektivt hantera saknade värden i Python.

För att lära dig mer om att hantera saknade värden i Python, kolla in följande video:

Några fler användningsfall av inga i Python

Förutom de användningsfall som diskuteras i avsnittet ovan, finns det några andra användningsfall av None också. Dessa användningsfall är inte ofta använda men är bra att känna till och är användbara i vissa scenarier.

I det här avsnittet kommer vi att gå igenom följande 3 användningsfall av None i Python:

  1. Använder inga i retur uttalanden

  2. Använder ingen som flaggor

  3. Använder Inget för anpassade objekt

Låt oss dyka in i det!

1. Använda Ingen som returdeklaration

Du kan använda None in return-satser, särskilt när en funktion slutför sin exekvering utan att hitta ett specifikt resultat.

Till exempel kan en funktion som söker efter ett element i en lista returnera Ingen om elementet inte hittas. Följande kod visar att du använder Ingen som returvärde:

# 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 den här koden itererar funktionen find_in_list över inmatningslistan lst . Om den hittar målvärdet returnerar den indexet för det värdet. Om den inte hittar målvärdet efter att ha kontrollerat hela listan, returnerar den Ingen.

Utgången ges nedan:

Null i Python: 7 användningsfall med kodexempel

2. Använda Ingen som flaggor

Du kan också använda Ingen som en flagga för att indikera tillståndet för en variabel. Du kan till exempel använda den för att markera om ett värde är oinitierat eller för att spåra ett speciellt tillstånd i programmet.

Följande är ett exempel på hur du kan använda Ingen som flagga:

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 den här koden används None som en flagga för att indikera att vi inte har hittat ett jämnt nummer i listan ännu.

Om first_even_number fortfarande är Ingen efter , betyder det att det inte fanns några jämna nummer i listan.

Om first_even_number inte är None, innehåller det det första jämna numret från listan.

Null i Python: 7 användningsfall med kodexempel

3. Använder inget för anpassade objekt

Du kan också använda Ingen för anpassade, användardefinierade objekt. När du har att göra med attribut, egenskaper eller metoder som returnerar andra objekt kan du använda Ingen för att ange frånvaron av ett värde eller en relation.

Följande exempel visar hur du kan använda Ingen för användardefinierade objekt:

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 det här exemplet används None som ett standardvärde för attributet best_friend för en Person-instans. Metoden get_best_friend_name returnerar namnet på bästa vän om det finns en, och Ingen om det inte finns.

Ovanstående kod kommer att mata ut följande:

Null i Python: 7 användningsfall med kodexempel

Specialfunktioner och tekniker för Null Object

Vi kommer nu att diskutera några speciella funktioner och tekniker som du kan använda relaterade till NoneType och hantering av null-värden. Vi kommer att täcka två huvudsakliga underavsnitt:

  1. ID-funktionen

  2. Getattr-funktionen

1. ID-funktion

Funktionen id() i Python är en inbyggd funktion som returnerar ett objekts identitet. Denna identitet är ett unikt och konstant heltal som tilldelas ett objekt under dess livstid.

Detta gör att du kan skilja mellan objekt med olika minnesadresser. Funktionen är särskilt användbar när man arbetar med NoneType-objekt, eftersom den kan användas för att kontrollera förekomsten av None i variabler eller uttryck.

Följande är ett exempel som använder 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)

Utdata från denna kod ges nedan:

Null i Python: 7 användningsfall med kodexempel

Eftersom None är en förstklassig medborgare i Python har den sin egen unika identitet. Det betyder att du kan använda id() -funktionen för att jämföra variabler med None med deras identiteter:

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

Utgången ges nedan:

Null i Python: 7 användningsfall med kodexempel

2. Getattr Funktion

Funktionen getattr() är en annan inbyggd Python-funktion som låter dig komma åt ett objekts attribut efter namn.

Givet ett objekt och en sträng, returnerar getattr() värdet för det namngivna attributet eller objektet None om attributet inte finns.

Detta kan vara användbart för dig när du hanterar null-värden, särskilt i fall där du behöver komma åt attribut som kan saknas.

Följande är ett exempel som använder 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 exemplet ovan använder vi getattr() för att komma åt x-attributet och försöka komma åt ett icke-existerande z-attribut.

Genom att tillhandahålla ett standardvärde på None förhindrar vi ett AttributeError och tar istället emot objektet None.

Som ett resultat tillåter denna funktion säker attributåtkomst även i närvaro av null-objekt eller saknade attribut.

Utdata från denna kod ges nedan:

Null i Python: 7 användningsfall med kodexempel

Jämför null i andra programmeringsspråk

I början av den här artikeln gjorde vi en kort jämförelse av Null i Python och Null i andra programmeringsspråk.

I det här avsnittet tar vi det här ämnet framåt och jämför Null i andra populära programmeringsspråk med Null i Python. Detta kommer att hjälpa dig att bättre förstå konceptet None i Python om du kommer från en annan programmeringsbakgrund.

Låt oss gå in i det!

1. Null i Java

I Java representerar nyckelordet "null" en referens som inte pekar på något objekt eller värde. Det används för att indikera frånvaron av ett värde och används ofta som standardvärde för objektreferenser.

Till exempel:

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

Javas noll är annorlunda än Pythons None. Null representerar en brist på ett objekt, medan None är ett faktiskt objekt av NoneType.

2. Noll i C

I programmeringsspråket C representeras null av en nollpekare, vilket indikerar en oinitierad eller tom pekare. Nollpekaren representeras ofta av heltalsvärdet 0.

Följande är ett exempel på hur du använder en nollpekare i C:

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

Null i C är inte associerad med en specifik datatyp. Den fungerar som en platshållare för oinitierade eller tomma pekare.

3. Null i PHP

I PHP representerar null en variabel utan värde eller referens. Liksom på andra språk används null för att beteckna oinitierade eller tomma variabler.

Följande är ett exempel på Null i PHP:

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

PHP:s null är inte ett objekt av en specifik datatyp utan snarare en speciell konstant som representerar frånvaron av ett värde.

Slutgiltiga tankar

På din resa som Python-programmerare är det mycket viktigt att lära sig om None-värden. Det är en unik funktion som fungerar som Pythons sätt att säga "ingenting här."

Det är viktigt för att representera frånvaron av ett värde. Genom att förstå och korrekt använda None kan du skapa mer flexibla funktioner med valfria argument och effektivt hantera saknad data.

Dessutom låter inga värden dina funktioner kommunicera tydligt när något saknas eller när ett villkor inte har uppfyllts. Dessutom är förståelsen av None avgörande när du hanterar databaser, användardefinierade objekt eller när du behöver initiera variabler.

Den här guiden om None-värden i Python visar några av de viktiga scenarierna där du vill använda None-objektet i din kod.


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.