Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În programare, puteți întâlni situații în care o variabilă nu are o valoare. Aceste instanțe sunt de obicei reprezentate de o valoare specială cunoscută sub numele de nul. Multe limbaje de programare, cum ar fi C, Java, JavaScript și PHP, au încorporate valori nule, dar Python adoptă o abordare ușor diferită pentru reprezentarea variabilelor nule.
În Python, echivalentul null este None. Este o constantă specială în Python care reprezintă absența unei valori sau a unei valori nule. Este o instanță a propriului tip de date - NoneType. Nu este același lucru cu 0, False sau un șir gol, deoarece este un tip de date propriu care nu reprezintă nicio valoare sau niciun obiect.
Dacă înveți Python, înțelegerea conceptului de Nimic în Python este importantă. Vă oferă mijloacele de a crea cod eficient care se ocupă de cazurile marginale. Pe măsură ce explorați programarea Python, veți întâlni diverse scenarii în care Niciunul se dovedește a fi esențial.
În acest articol, vom explora ce este un nul, sau niciunul, în Python. Vom trece peste exemple și cazuri de utilizare pentru a vă ajuta să consolidați conceptul de valori nule. Dar mai întâi, să înțelegem conceptul de valori None, sau Null, în Python.
Cuprins
Ce este Null în Python?
Pentru a înțelege nulul în Python, va trebui să înțelegeți următoarele două concepte:
Diferența dintre None și Null
Niciun tip
1. Diferența dintre niciunul și nul
Null în multe limbaje de programare este folosit pentru a desemna un pointer gol sau o valoare necunoscută. Puteți defini valoarea nulă ca 0 în aceste limbi.
Cu toate acestea, în Python, în loc de null, utilizați cuvântul cheie None pentru a defini obiecte și variabile goale. Niciunul nu servește la aceleași scopuri ca null în alte limbi. Dar este o entitate distinctă și nu este definită ca 0 sau orice altă valoare.
2. NoneType
În Python, None este un tip unic de structură de date, clasificată sub un tip numit NoneType. Este un cetățean de primă clasă, ceea ce înseamnă că îl puteți atribui variabilelor. De asemenea, puteți să-l transmiteți ca argument și să reveniți ca rezultat.
Când atribuiți o valoare variabilă None, aceasta devine un obiect NoneType. Nici unul nu este echivalent cu un șir gol, cu valoarea booleană False sau cu valoarea numerică 0. Înseamnă pur și simplu variabilă nulă sau nimic.
Acum că înțelegeți terminologiile legate de none, să mergem mai departe și să vedem cum puteți utiliza None pentru diferite cazuri de utilizare!
Cum să utilizați Niciunul în Python
În Python, puteți utiliza None pentru un număr de cazuri de utilizare. În această secțiune, ne vom uita la 4 cazuri de utilizare importante ale None în Python.
Mai exact, ne vom uita la următoarele cazuri de utilizare:
Atribuirea niciunui variabilelor
Folosind None ca parametru implicit
Se verifică nici unul cu operator de identitate
Gestionarea valorilor lipsă
Să intrăm în ea!
1. Atribuirea niciunui variabilelor
Puteți aloca None variabilelor pentru a indica absența unei valori.
De exemplu:
x = None
Nici unul aici nu înseamnă că valoarea lui x este absentă sau că nu a fost încă decisă o valoare validă.
2. Folosind None ca parametru implicit
Puteți utiliza None ca valoare implicită a parametrului pentru a defini și funcții. Acest lucru este util atunci când doriți să permiteți argumente opționale pentru parametrii impliciti în funcțiile dvs.
Următorul cod vă arată cum să utilizați None ca parametru implicit:
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")
Când rulați acest cod, se afișează „Hello, World!” când apelați greet() fără niciun argument. Dar când apelați greet() cu un argument, cum ar fi greet(„Alice”), se afișează „Hello, Alice!”. Acest lucru permite funcției să aibă argumente opționale.
3. Se verifică niciun operator cu identitate
Puteți utiliza operatorul is identity pentru a verifica dacă o variabilă este Niciuna. Acest lucru vă permite să comparați dacă două variabile se referă la același obiect.
Următorul este un exemplu pentru a vă arăta cum să utilizați operatorul de identitate:
# 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")
În acest cod, var1 este None, va returna True deoarece var1 i s-a atribuit valoarea None. Pe de altă parte, var2 este None va returna False deoarece var2 are o valoare șir.
Ieșirea pentru script este dată mai jos:
4. Gestionarea valorilor lipsă
De asemenea, puteți întâlni date cu valori lipsă. Puteți reprezenta aceste valori lipsă cu None și le puteți trata în consecință.
Următorul este un exemplu când aveți de-a face cu o listă de numere:
# 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))
Această funcție calculează suma tuturor valorilor non-None din listă și o împarte la numărul de valori non-None. Dacă toate valorile din listă sunt None, funcția returnează None.
Rezultatul este dat mai jos:
Folosind None și diferitele tehnici menționate mai sus, puteți gestiona eficient valorile lipsă în Python.
Pentru a afla mai multe despre gestionarea valorilor lipsă în Python, urmăriți următorul videoclip:
Mai multe cazuri de utilizare ale None în Python
În afară de cazurile de utilizare discutate în secțiunea de mai sus, există și alte cazuri de utilizare ale None. Aceste cazuri de utilizare nu sunt folosite frecvent, dar sunt bine de știut și sunt utile în unele scenarii.
În această secțiune, vom analiza următoarele 3 cazuri de utilizare ale None în Python:
Folosind None în declarațiile de returnare
Folosind None ca steaguri
Folosind None pentru obiecte personalizate
Să ne aruncăm în ea!
1. Folosind None ca declarații de returnare
Puteți utiliza None în instrucțiunile return, în special atunci când o funcție își finalizează execuția fără a găsi un rezultat specific.
De exemplu, o funcție care caută un element dintr-o listă poate returna None dacă elementul nu este găsit. Următorul cod demonstrează utilizarea None ca valoare de returnare:
# 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))
În acest cod, funcția find_in_list iterează peste lista de intrare lst . Dacă găsește valoarea țintă, returnează indexul acelei valori. Dacă nu găsește valoarea țintă după verificarea întregii liste, returnează Nimic.
Rezultatul este dat mai jos:
2. Folosind None ca steaguri
De asemenea, puteți utiliza None ca indicator pentru a indica starea unei variabile. De exemplu, îl puteți folosi pentru a marca dacă o valoare este neinițializată sau pentru a urmări o condiție specială în program.
Următorul este un exemplu despre cum puteți utiliza None ca steag:
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
În acest cod, None este folosit ca indicator pentru a indica faptul că nu am găsit încă un număr par în listă.
Dacă first_even_number este încă None după bucla , aceasta înseamnă că nu au existat numere pare în listă.
If first_even_number is not None, it contains the first even number from the list.
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:
Special Functions and Techniques for Null Object
Vom discuta acum câteva funcții și tehnici speciale pe care le puteți utiliza legate de NoneType și gestionarea valorilor nule. Vom acoperi două sub-secțiuni principale:
Funcția Id
Funcția Getattr
1. Funcția Id
Funcția id() din Python este o funcție încorporată care returnează identitatea unui obiect. Această identitate este un număr întreg unic și constant atribuit unui obiect în timpul vieții sale.
Acest lucru vă permite să distingeți între obiecte cu adrese de memorie diferite. Funcția este utilă în special atunci când lucrați cu obiecte NoneType, deoarece poate fi folosită pentru a verifica prezența lui None în variabile sau expresii.
Următorul este un exemplu de utilizare a funcției 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)
Rezultatul acestui cod este prezentat mai jos:
Deoarece None este un cetățean de primă clasă în Python, are propria sa identitate unică. Aceasta înseamnă că puteți utiliza funcția id() pentru a compara variabilele cu None folosind identitățile lor:
if id(a) == id(None):
print("a is None")
Rezultatul este dat mai jos:
2. Funcția Getattr
Funcția getattr() este o altă funcție Python încorporată care vă permite să accesați atributele unui obiect după nume.
Având în vedere un obiect și un șir, getattr() returnează valoarea atributului numit sau obiectul None dacă atributul nu există.
Acest lucru vă poate fi util atunci când manipulați valori nule, mai ales în cazurile în care trebuie să accesați atribute care ar putea lipsi.
Următorul este un exemplu de utilizare a funcției 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
În exemplul de mai sus, folosim getattr() pentru a accesa atributul x și pentru a încerca să accesăm un atribut z inexistent.
Prin furnizarea unei valori implicite None, prevenim o AttributeError și primim în schimb obiectul None.
Ca rezultat, această funcție permite accesul sigur la atribute chiar și în prezența obiectelor nule sau a atributelor lipsă.
Rezultatul acestui cod este prezentat mai jos:
Compararea Null în alte limbaje de programare
La începutul acestui articol, am făcut o scurtă comparație între Null în Python și Null în alte limbaje de programare.
În această secțiune, vom continua acest subiect și vom compara Null în alte limbaje de programare populare cu Null în Python. Acest lucru vă va ajuta să înțelegeți mai bine conceptul de None în Python dacă veniți dintr-un mediu de programare diferit.
Să intrăm în ea!
1. Null în Java
În Java, cuvântul cheie „null” reprezintă o referință care nu indică niciun obiect sau valoare. Este folosit pentru a indica absența unei valori și este adesea folosit ca valoare implicită pentru referințele la obiect.
De exemplu:
String myString = null; // Declare a String object with a null reference
Nulul Java este diferit de None al lui Python. Null reprezintă lipsa unui obiect, în timp ce None este un obiect real al NoneType.
2. Nulă în C
În limbajul de programare C, null este reprezentat de un pointer nul, care indică un pointer neinițializat sau gol. Pointerul nul este adesea reprezentat de valoarea întreagă 0.
Următorul este un exemplu de utilizare a unui pointer nul în C:
int *myPointer = NULL; // Declare an integer pointer with a null reference
Nulul în C nu este asociat cu un anumit tip de date. Acesta servește ca substituent pentru pointerii neinițializați sau goale.
3. Nul în PHP
În PHP, null reprezintă o variabilă fără valoare sau fără referință. Ca și în alte limbi, null este folosit pentru a desemna variabile neinițializate sau goale.
Următorul este un exemplu de Null în PHP:
$myVar = NULL; // Declare a variable with a null reference
Nulul PHP nu este un obiect al unui anumit tip de date, ci mai degrabă o constantă specială care reprezintă absența unei valori.
Gânduri finale
În călătoria ta ca programator Python, învățarea despre valorile None este de mare importanță. Este o caracteristică unică care servește drept mod al lui Python de a spune „nimic aici”.
Este esențial pentru reprezentarea absenței unei valori. Înțelegând și utilizând corect Niciunul, puteți crea funcții mai flexibile cu argumente opționale și puteți gestiona eficient datele lipsă.
În plus, valorile None permit funcțiilor tale să comunice clar atunci când ceva este absent sau când o condiție nu a fost îndeplinită. Mai mult, înțelegerea None este crucială atunci când aveți de-a face cu baze de date, obiecte definite de utilizator sau când trebuie să inițializați variabile.
Acest ghid despre valorile None în Python demonstrează unele dintre scenariile importante în care veți dori să utilizați obiectul None în codul dvs.
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți