Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, является ли переменная словарем (dictionary) в Python. Словари - это фундаментальные структуры данных, используемые для хранения данных в виде пар "ключ-значение". Вы начнете с понимания основ словарей, включая создание, доступ к ним и их изменение с использованием фигурных скобок {} и индексации по ключу.
Затем в рамках практического занятия (лабораторной работы) вы научитесь использовать функцию type() и функцию isinstance() для определения, является ли переменная словарем. Вы создадите скрипты на Python для тестирования этих методов и просмотрите вывод, что укрепит ваше понимание того, как программно определить, содержит ли переменная объект словаря.
Понимание словарей
На этом этапе вы узнаете о словарях (dictionaries) - фундаментальной структуре данных в Python. Словари используются для хранения данных в виде пар "ключ-значение", что позволяет быстро получать значения по соответствующим ключам.
Словарь определяется с использованием фигурных скобок {}. Каждая пара "ключ-значение" разделяется двоеточием :, а пары друг от друга - запятой ,. Вот простой пример:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
print(my_dict)
Для работы со словарями создадим файл Python с именем dictionary_example.py в каталоге ~/project с помощью редактора VS Code.
Откройте VS Code, создайте новый файл с именем dictionary_example.py в каталоге ~/project и добавьте следующее содержимое:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Print the entire dictionary
print(my_dict)
Теперь выполните скрипт Python с помощью следующей команды в терминале:
python ~/project/dictionary_example.py
Вы должны увидеть следующий вывод:
{'name': 'Alice', 'age': 30, 'city': 'New York'}
Для доступа к определенному значению в словаре используйте ключ в квадратных скобках []:
name = my_dict["name"]
print(name)
Измените файл dictionary_example.py, добавив следующие строки:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Access a value using the key
name = my_dict["name"]
print(name)
Выполните скрипт еще раз:
python ~/project/dictionary_example.py
Теперь вывод будет таким:
Alice
Вы также можете добавлять новые пары "ключ-значение" в словарь:
my_dict["occupation"] = "Engineer"
print(my_dict)
Обновите файл dictionary_example.py:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Add a new key-value pair
my_dict["occupation"] = "Engineer"
print(my_dict)
Запустите скрипт:
python ~/project/dictionary_example.py
Вывод будет следующим:
{'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'Engineer'}
Словари являются изменяемыми (mutable), то есть вы можете изменить значение, связанное с ключом:
my_dict["age"] = 31
print(my_dict)
Измените файл dictionary_example.py:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Change the value of an existing key
my_dict["age"] = 31
print(my_dict)
Выполните скрипт:
python ~/project/dictionary_example.py
Вывод будет таким:
{'name': 'Alice', 'age': 31, 'city': 'New York'}
Понимание словарей является важным для работы со структурированными данными в Python. Они предоставляют гибкий и эффективный способ хранения и извлечения информации.
Использование функции type() для определения типа
На этом этапе вы научитесь использовать функцию type() в Python для определения типа данных переменной. Это полезный инструмент для понимания того, с какими данными вы работаете, и для отладки кода.
Функция type() возвращает тип объекта. Например, если у вас есть переменная, содержащая целое число, type() вернет <class 'int'>. Если она содержит строку, то вернет <class 'str'> и так далее.
Продолжим работу с файлом dictionary_example.py, который вы создали на предыдущем этапе. Добавим немного кода для определения типов различных переменных.
Откройте файл dictionary_example.py в VS Code и добавьте следующие строки:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check the type of the dictionary
print(type(my_dict))
## Access a value
name = my_dict["name"]
## Check the type of the value
print(type(name))
## Check the type of the age
age = my_dict["age"]
print(type(age))
Теперь выполните скрипт Python с помощью следующей команды:
python ~/project/dictionary_example.py
Вы должны увидеть следующий вывод:
<class 'dict'>
<class 'str'>
<class 'int'>
Этот вывод говорит вам, что my_dict - это словарь (dict), name - это строка (str), а age - целое число (int).
Вы также можете использовать функцию type() с другими типами данных, такими как списки и булевы значения. Добавим несколько примеров в файл dictionary_example.py:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check the type of the dictionary
print(type(my_dict))
## Access a value
name = my_dict["name"]
## Check the type of the value
print(type(name))
## Check the type of the age
age = my_dict["age"]
print(type(age))
## Create a list
my_list = [1, 2, 3]
print(type(my_list))
## Create a boolean
is_adult = True
print(type(is_adult))
Выполните скрипт еще раз:
python ~/project/dictionary_example.py
Теперь вывод будет таким:
<class 'dict'>
<class 'str'>
<class 'int'>
<class 'list'>
<class 'bool'>
Как вы можете видеть, функция type() - это универсальная функция, которая может помочь вам понять, с какими типами данных вы работаете в Python. Это особенно полезно, когда вы работаете с сложными структурами данных или когда вы не уверены в типе переменной.
Подтверждение с использованием isinstance()
На этом этапе вы узнаете, как использовать функцию isinstance() в Python для проверки, является ли объект экземпляром определенного класса или типа. Эта функция более надежная, чем type(), так как она также учитывает наследование.
Функция isinstance() принимает два аргумента: объект, который вы хотите проверить, и класс или тип, с которым вы хотите сравнить объект. Она возвращает True, если объект является экземпляром указанного класса или типа, и False в противном случае.
Продолжим работу с файлом dictionary_example.py. Добавим немного кода для проверки типов различных переменных с использованием isinstance().
Откройте файл dictionary_example.py в VS Code и добавьте следующие строки:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check if my_dict is a dictionary
print(isinstance(my_dict, dict))
## Access a value
name = my_dict["name"]
## Check if name is a string
print(isinstance(name, str))
## Check if age is an integer
age = my_dict["age"]
print(isinstance(age, int))
Теперь выполните скрипт Python с помощью следующей команды:
python ~/project/dictionary_example.py
Вы должны увидеть следующий вывод:
True
True
True
Этот вывод подтверждает, что my_dict - это словарь, name - это строка, а age - целое число.
Вы также можете использовать isinstance() для одновременной проверки на несколько типов, передав кортеж типов в качестве второго аргумента. Например:
## Check if age is either an integer or a float
print(isinstance(age, (int, float)))
Измените файл dictionary_example.py, добавив эту проверку:
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check if my_dict is a dictionary
print(isinstance(my_dict, dict))
## Access a value
name = my_dict["name"]
## Check if name is a string
print(isinstance(name, str))
## Check if age is an integer
age = my_dict["age"]
print(isinstance(age, int))
## Check if age is either an integer or a float
print(isinstance(age, (int, float)))
Выполните скрипт еще раз:
python ~/project/dictionary_example.py
Теперь вывод будет таким:
True
True
True
True
isinstance() - это мощный инструмент для проверки типов в Python, особенно при работе с наследованием или когда вам нужно проверить на несколько типов. Он помогает писать более надежные и устойчивые программы, гарантируя, что переменные имеют ожидаемые типы.
Резюме
В этом практическом занятии (лабораторной работе) вы узнали о словарях в Python - фундаментальной структуре данных для хранения данных в виде пар "ключ-значение". Вы создали словарь, получали значения по ключам и добавляли новые пары "ключ-значение".
Вы также практиковались в использовании функций type() и isinstance() для проверки, является ли переменная словарем. Функция type() возвращает тип объекта, а функция isinstance() проверяет, является ли объект экземпляром указанного класса или типа.



