Null у Python: 7 випадків використання з прикладами коду

Під час програмування ви можете зіткнутися з ситуаціями, коли змінна не має значення. Ці екземпляри зазвичай представлені спеціальним значенням, відомим як null. Багато мов програмування, такі як C, Java, JavaScript і PHP, мають вбудовані нульові значення, але Python використовує дещо інший підхід до представлення нульових змінних.

У Python еквівалентом null є None. Це спеціальна константа в Python, яка представляє відсутність значення або нульове значення. Це екземпляр власного типу данихNoneType. Це не те саме, що 0, False або порожній рядок, оскільки це власний тип даних, який не представляє жодного значення або жодного об’єкта.

Null у Python: 7 випадків використання з прикладами коду

Якщо ви вивчаєте Python, розуміння концепції None у Python є важливим. Він надає вам засоби для створення ефективного коду, який обробляє крайні випадки. Вивчаючи програмування на Python, ви натраплятимете на різні сценарії, де None виявиться необхідним.

У цій статті ми розглянемо, що таке null або none у Python. Ми розглянемо приклади та випадки використання, щоб допомогти вам закріпити концепцію нульових значень. Але спочатку давайте розберемося з концепцією значення None або Null у Python.

Зміст

Що таке Null у Python?

Щоб зрозуміти значення null у Python, вам потрібно буде зрозуміти наступні дві концепції:

  1. Різниця між None і Null

  2. Nonetype

1. Різниця між None і Null

Null у багатьох мовах програмування використовується для позначення порожнього покажчика або невідомого значення. Ви можете визначити нульове значення як 0 у цих мовах.

Однак у Python замість null ви використовуєте ключове слово None для визначення порожніх об’єктів і змінних. None служить тим же цілям, що й null в інших мовах. Але це окрема сутність і не визначена як 0 або будь-яке інше значення.

2. NoneType

У Python None — це унікальний вид структури даних, класифікований за типом NoneType. Це громадянин першого класу, тобто ви можете призначити його змінним. Ви також можете передати його як аргумент і повернути як результат.

Коли ви присвоюєте змінній значення None, вона стає об’єктом NoneType. None не є еквівалентом порожнього рядка, логічного значення False або числового значення 0. Це просто означає нульову змінну або нічого.

Тепер, коли ви розумієте термінологію, пов’язану з none, давайте подивимося, як ви можете використовувати None для різних випадків використання!

Як використовувати None у Python

У Python ви можете використовувати None для багатьох випадків використання. У цьому розділі ми розглянемо 4 важливі випадки використання None у Python.

Null у Python: 7 випадків використання з прикладами коду

Зокрема, ми розглянемо такі випадки використання:

  1. Присвоєння значення None змінним

  2. Використання None як параметра за замовчуванням

  3. Перевірка відсутності за допомогою оператора ідентифікації

  4. Обробка відсутніх значень

Давайте потрапимо в це!

1. Присвоєння значення None змінним

Ви можете призначити None змінним, щоб вказати на відсутність значення.

Наприклад:

x = None

None тут означає, що значення x відсутнє або дійсне значення ще не визначено.

2. Використання None як параметра за замовчуванням

Ви також можете використовувати None як значення параметра за замовчуванням для визначення функцій. Це корисно, коли ви хочете дозволити необов’язкові аргументи для параметрів за замовчуванням у своїх функціях.

Наступний код показує, як використовувати None як параметр за замовчуванням:

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

Коли ви запускаєте цей код, з’являється «Hello, World!» коли ви викликаєте greet() без будь-яких аргументів. Але коли ви викликаєте greet() з аргументом, наприклад greet(“Alice”), він друкує “Hello, Alice!”. Це дозволяє функції мати додаткові аргументи.

Null у Python: 7 випадків використання з прикладами коду

3. Перевірка відсутності за допомогою оператора ідентифікації

Ви можете використовувати оператор is identity, щоб перевірити, чи змінна має значення None. Це дозволяє порівнювати, чи дві змінні відносяться до одного об’єкта.

Нижче наведено приклад, щоб показати, як використовувати оператор ідентифікації:

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

У цьому коді var1 is None поверне True, оскільки var1 було присвоєно значення None. З іншого боку, var2 is None поверне False, оскільки var2 має рядкове значення.

Вихід для сценарію наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

4. Обробка відсутніх значень

Ви також можете зустріти дані з відсутніми значеннями. Ви можете представити ці відсутні значення за допомогою None і обробляти їх відповідно.

Нижче наведено приклад роботи зі списком чисел:

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

Це обчислює суму всіх значень, відмінних від None, у списку та ділить її на кількість значень, відмінних від None. Якщо всі значення у списку є None, функція повертає None.

Результат наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

Використовуючи None і різні методи, згадані вище, ви можете ефективно обробляти відсутні значення в Python.

Щоб дізнатися більше про обробку відсутніх значень у Python, перегляньте таке відео:

Інші випадки використання None у Python

Крім варіантів використання, розглянутих у розділі вище, є також деякі інші випадки використання None. Ці варіанти використання не часто використовуються, але їх корисно знати та корисні в деяких сценаріях.

У цьому розділі ми розглянемо наступні 3 випадки використання None у Python:

  1. Використання None у операторах return

  2. Використання None як прапорів

  3. Використання None для настроюваних об’єктів

Давайте зануримося в це!

1. Використання None як операторів повернення

Ви можете використовувати None у операторах return, особливо коли функція завершує своє виконання, не знаходячи певного результату.

Наприклад, функція, яка шукає елемент у списку, може повернути None, якщо елемент не знайдено. Наступний код демонструє використання None як значення, що повертається:

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

У цьому коді функція find_in_list повторює вхідний список lst . Якщо він знаходить цільове значення, він повертає індекс цього значення. Якщо він не знаходить цільового значення після перевірки всього списку, він повертає None.

Результат наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

2. Використання None як прапорів

Ви також можете використовувати Немає як позначку для позначення стану змінної. Наприклад, ви можете використовувати його, щоб позначити, чи значення неініціалізовано, або відстежити спеціальну умову в програмі.

Нижче наведено приклад того, як ви можете використовувати None як прапорець:

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

У цьому коді None використовується як позначка, яка вказує, що ми ще не знайшли парне число в списку.

Якщо first_even_number все ще є None після , це означає, що в списку не було парних чисел.

Якщо first_even_number не є None, він містить перше парне число зі списку.

Null у Python: 7 випадків використання з прикладами коду

3. Використання None для настроюваних об’єктів

Ви також можете використовувати None для призначених для користувача об’єктів. Маючи справу з атрибутами, властивостями або методами, які повертають інші об’єкти, ви можете використовувати None, щоб позначити відсутність значення або зв’язку.

У наступному прикладі показано, як можна використовувати None для об’єктів, визначених користувачем:

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

У цьому прикладі None використовується як значення за умовчанням для атрибута best_friend екземпляра Person. Метод get_best_friend_name повертає ім’я найкращого друга, якщо він є, і None, якщо його немає.

Наведений вище код виведе наступне:

Null у Python: 7 випадків використання з прикладами коду

Спеціальні функції та прийоми для нульового об’єкта

Зараз ми обговоримо деякі спеціальні функції та прийоми, які можна використовувати, пов’язані з NoneType і обробкою нульових значень. Ми розглянемо два основні підрозділи:

  1. Функція Id

  2. Функція Getattr

1. Функція ідентифікатора

Функція id() у Python є вбудованою функцією , яка повертає ідентичність об’єкта. Ця ідентичність є унікальним і постійним цілим числом, призначеним об’єкту протягом його життя.

Це дозволяє розрізняти об'єкти з різними адресами пам'яті. Ця функція особливо корисна під час роботи з об’єктами NoneType, оскільки її можна використовувати для перевірки наявності None у змінних або виразах.

Нижче наведено приклад використання функції 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)

Результат цього коду наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

Оскільки None є громадянином першого класу в Python, він має власну унікальну ідентичність. Це означає, що ви можете використовувати функцію id() для порівняння змінних із None, використовуючи їхні ідентифікатори:

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

Результат наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

2. Функція Getattr

Функція getattr() — ще одна вбудована функція Python, яка дозволяє отримати доступ до атрибутів об’єкта за іменем.

За наявності об’єкта та рядка getattr() повертає значення названого атрибута або об’єкта None, якщо атрибут не існує.

Це може бути корисним для вас під час обробки нульових значень, особливо у випадках, коли вам потрібно отримати доступ до атрибутів, які можуть бути відсутні.

Нижче наведено приклад використання функції 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

У наведеному вище прикладі ми використовуємо getattr() для доступу до атрибута x і намагаємося отримати доступ до неіснуючого атрибута z.

Надаючи значення за замовчуванням None, ми запобігаємо AttributeError і натомість отримуємо об’єкт None.

Як наслідок, ця функція забезпечує безпечний доступ до атрибутів навіть за наявності нульових об’єктів або відсутніх атрибутів.

Результат цього коду наведено нижче:

Null у Python: 7 випадків використання з прикладами коду

Порівняння Null в інших мовах програмування

На початку цієї статті ми зробили коротке порівняння Null у Python і Null в інших мовах програмування.

У цьому розділі ми розглянемо цю тему та порівняємо Null в інших популярних мовах програмування з Null у Python. Це допоможе вам краще зрозуміти концепцію None у Python, якщо ви не маєте досвіду програмування.

Давайте потрапимо в це!

1. Null в Java

У Java ключове слово «null» представляє посилання, яке не вказує на жодний об’єкт або значення. Він використовується для вказівки на відсутність значення та часто використовується як значення за замовчуванням для посилань на об’єкти.

Наприклад:

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

Java null відрізняється від None Python. Null означає відсутність об’єкта, тоді як None є фактичним об’єктом NoneType.

2. Null у C

У мові програмування C значення null представлено нульовим покажчиком, який вказує на неініціалізований або порожній покажчик. Нульовий покажчик часто представляється цілим значенням 0.

Нижче наведено приклад використання нульового покажчика в C:

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

Null у C не пов’язаний із певним типом даних. Він служить заповнювачем для неініціалізованих або порожніх покажчиків.

3. Null у PHP

У PHP null представляє змінну без значення або посилання. Як і в інших мовах, null використовується для позначення неініціалізованих або порожніх змінних.

Нижче наведено приклад Null у PHP:

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

PHP null — це не об’єкт певного типу даних, а скоріше спеціальна константа, яка вказує на відсутність значення.

Заключні думки

У вашій подорожі як програміста Python знання про значення None має велике значення. Це унікальна функція, яка слугує способом Python сказати «тут нічого».

Це важливо для представлення відсутності цінності. Розуміючи та правильно використовуючи None, ви зможете створювати більш гнучкі функції з необов’язковими аргументами та ефективно обробляти відсутні дані.

Крім того, значення None дозволяють вашим функціям чітко повідомляти, коли чогось немає або коли умова не виконана. Крім того, розуміння None має вирішальне значення при роботі з базами даних, об’єктами, визначеними користувачем, або коли вам потрібно ініціалізувати змінні.

Цей посібник зі значень None у Python демонструє деякі важливі сценарії, коли ви захочете використовувати об’єкт None у своєму коді.


Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

У цьому підручнику я демонструю унікальну ідею щодо фінансової звітності, яка полягає в розподілі результатів для попереднього визначення шаблонів таблиць у LuckyTemplates.

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.

Найпотужніший виклик функцій у LuckyTemplates

Найпотужніший виклик функцій у LuckyTemplates

У цьому блозі ознайомтеся з набором даних LuckyTemplates, найпотужнішим викликом функцій, який надає вам під рукою тисячі функцій M і DAX.

Методи моделювання даних для організації показників DAX

Методи моделювання даних для організації показників DAX

У сьогоднішньому підручнику я поділюся кількома методами моделювання даних про те, як краще організувати показники DAX для більш ефективного робочого процесу.

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

LuckyTemplates — чудовий інструмент для фінансової звітності. Ось підручник про те, як створювати персоналізовані таблиці для вашої фінансової інформаційної панелі LuckyTemplates.

Рекомендації щодо потоку мови Power Query

Рекомендації щодо потоку мови Power Query

У цьому підручнику обговорюватиметься технологія Power Query Language Flow і те, як вона може допомогти створити гладкий і ефективний звіт із даними.

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Я обговорю одну з моїх улюблених технік, пов’язаних із користувальницькими піктограмами LuckyTemplates, яка динамічно використовує власні піктограми у візуальних елементах LuckyTemplates.

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

У цьому блозі я покажу вам, як можна створювати таблиці LuckyTemplates за допомогою формули, яка поєднує функції UNION і ROW.

Локальний шлюз даних у Power Automate

Локальний шлюз даних у Power Automate

Дізнайтеся, як локальний шлюз даних дозволяє Power Automate отримувати доступ до настільних програм, коли користувач знаходиться поза комп’ютером.