Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Ohjelmoinnissa voi kohdata tilanteita, joissa muuttujalla ei ole arvoa. Näitä tapauksia edustaa yleensä erityinen arvo, joka tunnetaan nimellä null. Monilla ohjelmointikielillä, kuten C, Java, JavaScript ja PHP, on sisäänrakennetut nolla-arvot, mutta Python käyttää hieman erilaista lähestymistapaa nollamuuttujien esittämiseen.

Pythonissa nollan vastine on Ei mitään. Se on Pythonissa erityinen vakio, joka edustaa arvon tai nolla-arvon puuttumista. Se on esiintymä omasta tietotyypistä - NoneType. Se ei ole sama kuin 0, False tai tyhjä merkkijono, koska se on oma tietotyyppi, joka ei edusta arvoa tai objektia.

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Jos opettelet Pythonia, Pythonin None- konseptin ymmärtäminen on tärkeää. Se tarjoaa sinulle keinot luoda tehokasta koodia, joka käsittelee reunatapauksia. Kun tutkit Python-ohjelmointia, törmäät erilaisiin skenaarioihin, joissa None osoittautuu välttämättömäksi.

Tässä artikkelissa tutkimme, mitä nolla tai ei mitään on Pythonissa. Käymme läpi esimerkkejä ja käytämme tapauksia auttaaksemme sinua vahvistamaan nolla-arvojen käsitettä. Mutta ensin ymmärrämme Pythonin None- tai Null-arvojen käsite.

Sisällysluettelo

Mikä on Null Pythonissa?

Pythonin nollan ymmärtämiseksi sinun on ymmärrettävä seuraavat kaksi käsitettä:

  1. Ero ei mitään ja nolla

  2. Ei tyyppiä

1. Ero Ei mitään ja Nolla

Nollaa käytetään monissa ohjelmointikielissä merkitsemään tyhjää osoitinta tai tuntematonta arvoa. Voit määrittää nolla-arvoksi 0 näillä kielillä.

Pythonissa tyhjän objektin ja muuttujien määrittämiseen käytetään kuitenkin avainsanaa None tyhjän arvon sijaan. None palvelee joitakin samoja tarkoituksia kuin null muilla kielillä. Mutta se on erillinen kokonaisuus, eikä sitä ole määritelty arvoksi 0 tai muuksi arvoksi.

2. NoneType

Pythonissa None on ainutlaatuinen tietorakenne, joka on luokiteltu NoneType-nimiseen tyyppiin. Se on ensiluokkainen kansalainen, joten voit määrittää sen muuttujiin. Voit myös välittää sen argumenttina ja palauttaa sen seurauksena.

Kun määrität muuttujan arvon Ei mitään, siitä tulee NoneType-objekti. None ei vastaa tyhjää merkkijonoa, Boolen arvoa False tai numeerista arvoa 0. Se tarkoittaa yksinkertaisesti nollamuuttujaa tai ei mitään.

Nyt kun ymmärrät none-terminologiat, mennään eteenpäin ja katsotaan, kuinka voit käyttää Ei mitään eri käyttötapauksiin!

Kuinka käyttää mitään Pythonissa

Pythonissa voit käyttää Ei mitään useisiin käyttötapauksiin. Tässä osiossa tarkastellaan neljää tärkeää Pythonin None-käyttötapausta.

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Tarkastelemme erityisesti seuraavia käyttötapauksia:

  1. Muuttujien määrittäminen Ei mitään

  2. Ei mitään oletusparametrina

  3. Ei mitään tarkistetaan identiteettioperaattorilla

  4. Puuttuvien arvojen käsittely

Mennään asiaan!

1. Muuttujien määrittäminen Ei mitään

Voit määrittää muuttujille arvon Ei mitään osoittamaan arvon puuttumista.

Esimerkiksi:

x = None

None tarkoittaa, että x:n arvo puuttuu tai kelvollista arvoa ei ole vielä päätetty.

2. Käytä oletusparametrina Ei mitään

Voit käyttää Ei mitään oletusparametriarvona myös funktioiden määrittämiseen. Tämä on hyödyllistä, kun haluat sallia valinnaiset argumentit oletusparametreille funktioissasi.

Seuraava koodi näyttää, kuinka Ei mitään -asetusta käytetään oletusparametrina:

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

Kun suoritat tämän koodin, teksti "Hei, maailma!" kun kutsut tervehtiä() ilman argumentteja. Mutta kun kutsut tervehtiä() argumentilla, kuten greet("Liisa"), se tulostaa "Hei, Alice!". Tämä sallii funktiolla olla valinnaisia ​​argumentteja.

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

3. Tarkistetaan, ettei henkilöllisyysoperaattorilla ole mitään

Voit käyttää is- identiteetti-operaattoria tarkistaaksesi, onko muuttuja Ei mitään. Tämän avulla voit vertailla, viittaavatko kaksi muuttujaa samaan objektiin.

Seuraavassa on esimerkki identiteetti-operaattorin käyttämisestä:

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

Tässä koodissa var1 on None palauttaa arvon Tosi, koska var1:lle on annettu arvo Ei mitään. Toisaalta var2 on None palauttaa False, koska var2:lla on merkkijonoarvo.

Skriptin tulos on alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

4. Puuttuvien arvojen käsittely

Saatat myös kohdata tietoja, joista puuttuu arvoja. Voit esittää nämä puuttuvat arvot arvolla Ei mitään ja käsitellä niitä vastaavasti.

Seuraava on esimerkki numeroluettelon käsittelystä:

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

Tämä laskee kaikkien luettelossa olevien ei-ei-arvojen summan ja jakaa sen ei-ei-ei-arvojen määrällä. Jos kaikki luettelon arvot ovat Ei mitään, funktio palauttaa Ei mitään.

Tulos on alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Käyttämällä Ei mitään ja edellä mainittuja eri tekniikoita voit käsitellä puuttuvia arvoja tehokkaasti Pythonissa.

Saat lisätietoja puuttuvien arvojen käsittelemisestä Pythonissa katsomalla seuraavaa videota:

Muutamia lisää None-käyttötapauksia Pythonissa

Yllä olevassa osiossa käsiteltyjen käyttötapausten lisäksi on olemassa myös joitain muita None-käyttötapauksia. Nämä käyttötapaukset eivät ole usein käytettyjä, mutta ne on hyvä tietää ja niistä on hyötyä joissakin skenaarioissa.

Tässä osiossa tarkastellaan seuraavia kolmea Pythonin None-käyttötapausta:

  1. None-käyttö palautuslausekkeissa

  2. Ei mitään -lippujen käyttäminen

  3. Ei mitään -asetuksen käyttäminen mukautetuille objekteille

Sukellaan siihen!

1. Ei mitään -kohdan käyttäminen palautuslausekkeina

Voit käyttää None-arvoa return-lauseissa, varsinkin kun funktio suorittaa suorituksensa loppuun löytämättä tiettyä tulosta.

Esimerkiksi funktio, joka etsii elementtiä luettelosta, voi palauttaa Ei mitään, jos elementtiä ei löydy. Seuraava koodi osoittaa, että palautusarvona käytetään Ei mitään:

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

Tässä koodissa find_in_list -funktio iteroituu syöteluettelon lst yli . Jos se löytää kohdearvon, se palauttaa kyseisen arvon indeksin. Jos se ei löydä tavoitearvoa tarkastettuaan koko luettelon, se palauttaa Ei mitään.

Tulos on alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

2. Ei mitään -asetuksen käyttäminen lippuina

Voit myös käyttää Ei mitään -merkintänä muuttujan tilan osoittamiseen. Voit esimerkiksi käyttää sitä merkitsemään, onko arvo alustamaton, tai seuraamaan ohjelman erityisehtoa.

Seuraavassa on esimerkki siitä, kuinka voit käyttää Ei mitään lippuna:

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

Tässä koodissa Ei mitään käytetään lippuna osoittamaan, että emme ole vielä löytäneet parillista numeroa luettelosta.

Jos ensimmäinen_parillinen_luku on edelleen Ei mitään -merkin jälkeen, tämä tarkoittaa, että luettelossa ei ollut parillisia lukuja.

Jos ensimmäinen_parillinen_luku ei ole Ei mitään, se sisältää luettelon ensimmäisen parillisen luvun.

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

3. Ei mitään -asetuksen käyttäminen mukautetuille objekteille

Voit käyttää Ei mitään mukautetuille, käyttäjän määrittämille objekteille myös. Kun käsittelet attribuutteja, ominaisuuksia tai menetelmiä, jotka palauttavat muita objekteja, voit käyttää None-komentoa merkitsemään arvon tai suhteen puuttumista.

Seuraava esimerkki osoittaa, kuinka voit käyttää Ei mitään käyttäjän määrittämille objekteille:

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

Tässä esimerkissä Ei mitään käytetään oletusarvona Person-ilmentymän best_friend- attribuutille. Get_best_friend_name - metodi palauttaa parhaan ystävän nimen, jos sellainen on, ja Ei mitään, jos sitä ei ole.

Yllä oleva koodi tulostaa seuraavan:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Erikoistoiminnot ja tekniikat nollaobjektille

Käsittelemme nyt joitain erikoistoimintoja ja tekniikoita, joita voit käyttää liittyen NoneTypeen ja nolla-arvojen käsittelyyn. Käsittelemme kaksi pääosaa:

  1. Id-funktio

  2. Getattr-funktio

1. Id-funktio

Pythonin id()-funktio on sisäänrakennettu funktio , joka palauttaa objektin identiteetin. Tämä identiteetti on yksilöllinen ja jatkuva kokonaisluku, joka on määritetty objektille sen elinkaaren aikana.

Tämän avulla voit erottaa objektit, joilla on eri muistiosoitteet. Toiminto on erityisen hyödyllinen, kun työskentelet NoneType-objektien kanssa, koska sen avulla voidaan tarkistaa, onko muuttujissa tai lausekkeissa None-arvoa.

Seuraavassa on esimerkki id()- funktiosta:

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)

Tämän koodin tulos on annettu alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Koska None on Pythonin ensiluokkainen kansalainen, sillä on oma ainutlaatuinen identiteettinsä. Tämä tarkoittaa, että voit käyttää id() -funktiota vertaamaan muuttujia None-arvoon käyttämällä niiden identiteettiä:

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

Tulos on alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

2. Getattr-funktio

Getattr ()- funktio on toinen sisäänrakennettu Python-funktio, jonka avulla voit käyttää objektin attribuutteja nimellä.

Kun objekti ja merkkijono on annettu, getattr() palauttaa nimetyn attribuutin arvon tai None-objektin arvon, jos attribuuttia ei ole olemassa.

Tämä voi olla hyödyllistä, kun käsittelet nolla-arvoja, erityisesti tapauksissa, joissa sinun on käytettävä attribuutteja, jotka saattavat puuttua.

Seuraavassa on esimerkki getattr()- funktiosta:

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

Yllä olevassa esimerkissä käytämme x-attribuuttia käyttämällä getattr() -funktiota ja yritämme käyttää olematonta z-attribuuttia.

Antamalla oletusarvon None, estämme AttributeError ja saamme sen sijaan None-objektin.

Tämän seurauksena tämä toiminto mahdollistaa turvallisen attribuuttien käytön jopa nollaobjektien tai puuttuvien määritteiden läsnä ollessa.

Tämän koodin tulos on annettu alla:

Null Pythonissa: 7 käyttötapausta koodiesimerkeillä

Nolla-arvon vertailu muissa ohjelmointikielissä

Tämän artikkelin alussa teimme lyhyen vertailun Pythonissa olevasta Nullista ja muiden ohjelmointikielien Nullista.

Tässä osiossa viemme tätä aihetta eteenpäin ja vertaamme muiden suosittujen ohjelmointikielten nullaa Pythonin Nulliin. Tämä auttaa sinua ymmärtämään paremmin Pythonin None-konseptin, jos olet kotoisin eri ohjelmointitaustasta.

Mennään asiaan!

1. Nolla Javassa

Javassa "null"-avainsana edustaa viittausta, joka ei osoita mihinkään objektiin tai arvoon. Sitä käytetään osoittamaan arvon puuttuminen, ja sitä käytetään usein oletusarvona objektiviittauksille.

Esimerkiksi:

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

Javan null on erilainen kuin Pythonin None. Null edustaa objektin puutetta, kun taas None on todellinen NoneType-objekti.

2. Nolla C:ssä

C-ohjelmointikielessä nulla edustaa nolla-osoitin, joka osoittaa alustamattoman tai tyhjän osoittimen. Nollaosoitinta edustaa usein kokonaislukuarvo 0.

Seuraavassa on esimerkki nollaosoittimen käytöstä C:ssä:

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

C:n nolla ei liity tiettyyn tietotyyppiin. Se toimii paikkamerkkinä alustamattomille tai tyhjille osoittimille.

3. Nolla PHP:ssä

PHP:ssä null edustaa muuttujaa, jolla ei ole arvoa tai viittausta. Kuten muissakin kielissä, nulla käytetään merkitsemään alustamattomia tai tyhjiä muuttujia.

Seuraavassa on esimerkki PHP:n Nullista:

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

PHP:n null ei ole tietyn tietotyypin objekti, vaan erityinen vakio, joka edustaa arvon puuttumista.

Lopulliset ajatukset

Matkallasi Python-ohjelmoijana None-arvojen oppiminen on erittäin tärkeää. Se on ainutlaatuinen ominaisuus, joka toimii Pythonin tapana sanoa "ei mitään täällä".

Se on välttämätöntä arvon puuttumisen edustamiseksi. Kun ymmärrät ja käytät oikein Ei mitään, voit luoda joustavampia toimintoja valinnaisilla argumenteilla ja käsitellä puuttuvia tietoja tehokkaasti.

Lisäksi None-arvot mahdollistavat toimintojesi tiedonvälityksen selkeästi, kun jotain puuttuu tai kun jokin ehto ei täyty. Lisäksi None-tilan ymmärtäminen on ratkaisevan tärkeää käsiteltäessä tietokantoja, käyttäjän määrittämiä objekteja tai kun sinun on alustettava muuttujia.

Tämä Pythonin None-arvojen opas esittelee joitain tärkeitä tilanteita, joissa haluat käyttää None-objektia koodissasi.


Suhde- ja taajuustaulukot Excelissä

Suhde- ja taajuustaulukot Excelissä

Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.