- Главная
- Информатика
- Библиотеки (модули)
Содержание
- 2. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных import random as r # создаем список чисел: от 0
- 3. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных import datetime as dt import locale # подключение для локализации
- 4. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных # создаем библиотеку (модуль mylib.py) def greeting(name): if isinstance(name, str):
- 5. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных Модуль mylib был подключен без особого труда, так как находился
- 6. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных Если необходимо уточнить, какие стандартные библиотеки возможны для использования (подключения)
- 7. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных Разбивая программу на разные файлы, логические разделяя на блоки, упрощает
- 8. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных Теперь если вызвать его как подключаемый модуль (с помощью import):
- 9. БИБЛИОТЕКИ (МОДУЛИ) подключение готовых, создание собственных Не все библиотеки устанавливаются вместе с интерпретатором. Некоторые приходится устанавливать
- 10. ИТОГ УРОКА Mодули в Python – это отдельные файлы с расширением .py. Имя модуля для использования
- 11. ДОМАШНЕЕ ЗАДАНИЕ Даны два модуля: 1. f_lib.py – библиотека с функцией multiply: подключение готовых, создание собственных
- 13. Скачать презентацию
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
import random as r
# создаем список чисел:
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
import random as r
# создаем список чисел:
nums = list(range(10))
print('Наш список:', ', '.join(map(str, nums)) + '.')
r.shuffle(nums) # "перемешиваем" значения
print('Случайный выбор:', str(r.choice(nums)) + '.')
Подключая модуль random привычным способом, можно записать так:
Вспомним модуль datetime и рассчитаем время пребывания в командировке:
import datetime as dt
# дата и время отъезда
leave_time = dt.datetime(2020, 8, 10, 9, 0, 0)
# дата и время приезда
arrival_time= dt.datetime(2020, 8, 12, 17, 00, 0)
print('Уехал:', leave_time)
print('Приехал:', arrival_time)
# затраченное время
elapsed_time = arrival_time - leave_time
print('Провёл в командировке:', elapsed_time)
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
import datetime as dt
import locale # подключение
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
import datetime as dt
import locale # подключение
# задаем местоположение - RU
locale.setlocale(locale.LC_ALL, "ru")
# дата и время отъезда
leave_time = dt.datetime(2020, 8, 10, 9, 0, 0)
# дата и время приезда
arrival_time= dt.datetime(2020, 8, 12, 17, 00, 0)
print('Уехал:', leave_time.strftime('%a, %d %b.,\ %Y г., в %H:%M'))
print('Вернулся:', arrival_time.strftime('%a, %d \ %b., %Y г., в %H:%M'))
# затраченное время
elapsed_time = arrival_time - leave_time
print('Провёл в командировке:', elapsed_time.days, 'дн. и', elapsed_time.seconds // 3600, 'ч.',)
Полученный результат представлен в международном формате.
Для того, чтобы использовать привычные для нас названия дней и формат дат, зададим местоположение с помощью библиотеки locale:
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
# создаем библиотеку (модуль mylib.py)
def greeting(name):
if
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
# создаем библиотеку (модуль mylib.py)
def greeting(name):
if
return 'Привет, ' + name + '.'
else:
return 'Привет, ' + str(name) + '.'
В языке Python есть возможность создавать и подключать собственные модули. Для этого достаточно сохранить в отдельный файл набор полезных функций. Например, пусть это будет файл, с именем mylib.py
Этот файл (mylib.py) нужно поместить в тот же каталог папку, где будет помещен файл с кодом для его вызова.
Вызов будет выглядеть так (файл libtest.py):
# libtest.py вызывает функцию модуля mylib.py
import mylib as ml
print(ml.greeting('Алексей')) #вызов функции
Разумеется файл (mylib.py) может хранить намного больше полезных функций.
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Модуль mylib был подключен без особого труда,
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Модуль mylib был подключен без особого труда,
Существует возможность подключать модули с расположением в других папках на диске персонального компьютера (ПК). Если подключаемый модуль не был найден в папке, из которой запускается исполняемый скрипт (в нашем случае – libtest.py), то интерпретатор будет искать также в консольной переменной PYTHONPATH. Чтобы узнать, где именно будет осуществлён поиск на конкретном ПК, необходимо запустить следующий скрипт:
import sys # подключаем библиотеку
# для работы с системой
sys.path #список всей путей для библиотек
В ответ будет выведен список всех путей, прописанных в указанной выше переменной PYTHONPATH. Среди них первый, как можно заметить, как раз и есть папка, откуда запускается скрипт.
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Если необходимо уточнить, какие стандартные библиотеки возможны
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Если необходимо уточнить, какие стандартные библиотеки возможны
help('modules')
В ответ получим сообщение:
Please wait a moment while I gather
a list of all available modules...
и через несколько секунд будет выведен список для импорта (import) и работы с библиотекой (библиотеками).
Для того, чтобы уточнить все имена функций (и не только) в подключаемом модуле, используется функция dir().
# список имен функций до подключения mylib.py
print(dir()) # выводим их
import mylib as ml
print(dir()) # теперь выводим с учётом mylib.py
# print(dir(ml)) # или так
print(ml.greeting('Алексей')) #вызов функции
Задача: узнать перечень методов turtle.
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Разбивая программу на разные файлы, логические разделяя
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Разбивая программу на разные файлы, логические разделяя
Планировать указанное выше разделение рекомендуется ещё до начала написания программы, определив как, где и за что будет отвечать отдельно взятый блок (модуль).
Поскольку каждый отдельный модуль – это файл, с расширением «.py», важно определить какой из них будет подключаемым, а какой исполняемым, т.е. тем самым, основным («main»), который и будет запускаться. Перепишем модуль mylib.py:
# функция для приветствия по имени
def greeting(name):
return f'Привет, {name}.'
if __name__ == '__main__':
print(f'Это исполняемый, главный\ {__name__} модуль.')
else:
print(f'Это подключаемый {__name__} модуль.')
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Теперь если вызвать его как подключаемый модуль
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Теперь если вызвать его как подключаемый модуль
# libtest.py вызывает функцию модуля mylib.py
import mylib as ml
print(ml.greeting('Алексей')) #вызов функции
то можно увидеть следующий результат:
Теперь стали понятными, как минимум, три важных момента:
1. Подключаемый модуль выполняется полностью. При необходимости использовать только часть его функций, необходимо вызывать их директивой from.
2. Все, что находится вне функций (т.е. глобально), выполнится в любом случае.
3. В исполняемом (запускаемом) модуле глобальная переменная __name__ получает значение __main__.
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Не все библиотеки устанавливаются вместе с интерпретатором.
БИБЛИОТЕКИ (МОДУЛИ)
подключение готовых, создание собственных
Не все библиотеки устанавливаются вместе с интерпретатором.
Начиная с Python версии 3.4, pip поставляется вместе с интерпретатором. Запускается из командной строки системы Windows, вызовом Win+R и далее командой cmd. Синтакис:
pip install pygame
В примере выше устанавливается библиотека pygame (устанавливать данную библиотеку пока не обязательно).
if __name__ == '__main__':
# команды, вызовы функций основного модуля
# в т.ч. из подключаемых модулей
Следовательно, при программе, состоящей из основного (исполняемого) и подключаемых модулей, конструкция:
позволяет как назначить основной модуль, так и предотвратить некорректные результаты при попытке запуска модуля, предназначенного только для подключения.
ИТОГ УРОКА
Mодули в Python – это отдельные файлы с расширением .py.
ИТОГ УРОКА
Mодули в Python – это отдельные файлы с расширением .py.
Модуль Python может иметь набор определенных функций, структур данных или переменных.
Модули импортируются с помощью команды import, а также вспомогательных директив: as и from.
Импортируемый модуль выполняется полностью.
Для определения исполняемого модуля используется глобальная переменная __name__, которая (для основного модуля) принимает значение __main__. В противном случае её значение – имя модуля.
Благодаря модулям (библиотекам) Python является расширяемым языком. Множество полезных библиотек можно установить с помощью менеджера пакетов PIP.
подключение готовых, создание собственных
БИБЛИОТЕКИ (МОДУЛИ)
ДОМАШНЕЕ ЗАДАНИЕ
Даны два модуля:
1. f_lib.py – библиотека с функцией multiply:
подключение готовых,
ДОМАШНЕЕ ЗАДАНИЕ
Даны два модуля:
1. f_lib.py – библиотека с функцией multiply:
подключение готовых,
БИБЛИОТЕКИ (МОДУЛИ)
#f_lib.py - функция использует аннотацию:
# l: list - значит, что аргумент - это список
# -> - значит, что функция вернет тип int
def multiply(l: list) -> int:
length = len(l) # длина списка
n = 1 # объявляем переменную
for i in range(length):
n *= l[i] # перемножает все элементы списка
return n
# написать здесь условие, которое при запуске
# выведет: "Это не основной модуль!"
2. main_module.py – подключаемый модуль, для вызова функции multiply:
#main_module.py
int_list = [1, 2, 3, 4] # список из 4 элементов
# типа int
# написать здесь условие, которое при запуске
# вызовет библиотеку (модуль) f_lib.py и с помощью
# функции multiply перемножит все элементы int_list.