Навигация по сайту

Новости

    Если


    Сильно


    Не работает
    Проблемы со звуком могут стать серьезным испытанием для владельца ноутбука. Но отбросьте всякие стереотипы – в большинстве случаев справиться с этой неприятностью сможет даже начинающий пользователь. Если

    Что делать
    Ноутбук перестал включаться, поработав не больше года? Или совсем не работал? Тогда вам будет полезна данная статья. В ней описано о том, какие можно предпринять самостоятельные действия в такой неприятной

    Не включается
    Компьютеры - это вечные загадки для пользователей. Весьма трудно предугадать, действительно ли та или иная машина будет работать нормально долгое время. От сбоев и неполадок никто не застрахован. Что требуется

    Компьютер
    Доброго времени суток дорогие друзья! Я рад приветствовать Вас на моем портале « Компьютерной помощи ». Сегодня речь у нас пойдет о том, почему компьютер сам включается после выключения. Довольно странно,

    Ответы@Mail.Ru:
    Иван Иванов Профи (546), закрыт Купил новый ноутбук ASUS X554LA на базе Windows 8.1 x64. Также прикупил к нему наушники Axelvox HD272. Я опробовал их на компьютере:

    Как включить
    Перед тем как приступить к изучению самого вопроса узнаем, что собой являет Bluetooth, и как он работает. Что такое Bluetooth? Это модуль для беспроводной передачи данных. Они могут быть голосовые,

    Почему
    Нельзя сказать однозначно, сколько должен загружаться компьютер под управлением Windows 7. Показатель зависит от «железа». С другой стороны, если раньше машина приходила в рабочее состояние за определённый

    Почему
    Практически каждый второй пользователь Windows сталкивается с проблемой, когда ноутбук не включается и при этом приходиться лицезреть только черный экран. Можно сказать, что это чуть ли не самая распространенная

Ключевые теги

Реклама

Реклама

Модули

Опубликовано: 29.09.2018

видео Модули

Portal 2 - Модули

Встроенные в язык программирования функции доступны сразу. Чтобы их вызвать, не надо выполнять никаких дополнительных действий. Однако за время существования любого популярного языка на нем было написано столько функций и классов, которые оказались востребованными множеством программистов и в разных областях, что включить весь этот объем кода в сам язык если возможно, то нецелесообразно.



Чтобы разрешить проблему доступа к дополнительным возможностям языка, в программировании стало общепринятой практикой использовать так называемые модули, пакеты и библиотеки. Каждый модуль содержит коллекцию функций и классов, предназначенных для решения задач из определенной области. Так в модуле math языка Python содержатся математические функции, модуль random позволяет генерировать псевдослучайные числа, в модуле datetime содержатся классы для работы с датами и временем, модуль sys предоставляет доступ к системным переменным и т. д.


Математика| Уравнения с модулем, Или математический торт с кремом(ч.1)

Количество модулей для языка Python огромно, что связано с популярностью языка. Часть модулей собрана в так называемую стандартную библиотеку. Стандартная она потому, что поставляется вместе с установочным пакетом. Однако существуют сторонние библиотеки. Они скачиваются и устанавливаются отдельно.

Для доступа к функционалу модуля, его надо импортировать в программу. После импорта интерпретатор "знает" о существовании дополнительных классов и функций и позволяет ими пользоваться.

В Питоне импорт осуществляется командой import. При этом существует несколько способов импорта. Рассмотрим работу с модулем на примере math. Итак,

Ничего не произошло. Однако в глобальной области видимости появилось имя math. Если до импорта вы упомянули бы имя math, то возникла бы ошибка NameError. Теперь же

>>> math <module 'math' (built-in)>

В программе завелся объект math, относящийся к классу module.

Чтобы увидеть перечень функций, входящих в этот модуль, воспользуемся встроенной в Python функцией dir(), передав ей в качестве аргумента имя модуля:

>>> dir ( math ) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

Проигнорируем имена с двойными подчеркиваниями. Все остальное – имена функций и констант (переменных, которые не меняют своих значений), включенных в модуль math. Чтобы вызвать функцию из модуля, надо впереди написать имя модуля, поставить точку, далее указать имя функции, после чего в скобках передать аргументы, если они требуются. Например, чтобы вызвать функцию pow из math, надо написать так:

Обратите внимание, эта другая функция pow(), не та, что встроена в сам язык. "Обычная" функция pow() возвращает целое, если аргументы целые числа:

Для обращения к константе скобки не нужны:

>>> math .pi 3.141592653589793

Если мы не знаем, что делает та или иная функция, то можем получить справочную информацию о ней с помощью встроенной в язык Python функции help():

>>> help ( math .gcd ) Help on built-in function gcd in module math: gcd(...) gcd(x, y) -> int greatest common divisor of x and y

Для выхода из интерактивной справки надо нажать клавишу q. В данном случае сообщается, что функция возвращает целое число, и это наибольший общий делитель для чисел x и y. Описание модулей и их содержания также можно посмотреть в официальной документации на сайте python.org.

Второй способ импорта – это когда импортируется не сам модуль, а только необходимые функции из него.

>>> from math import gcd , sqrt , hypot

Перевести можно как "из модуля math импортировать функции gcd, sqrt и hypot".

В таком случае при их вызове не надо перед именем функции указывать имя модуля:

>>> gcd ( 100 , 150 ) 50 >>> sqrt ( 16 ) 4.0 >>> hypot ( 3 , 4 ) 5.0

Чтобы импортировать сразу все функции из модуля:

Импорт через from не лишен недостатка. В программе уже может быть идентификатор с таким же именем, как имя одной из импортируемых функций или констант. Ошибки не будет, но одно из них окажется "затерто":

>>> pi = 3.14 >>> from math import pi >>> pi 3.141592653589793

Здесь исчезает значение 3.14, присвоенное переменной pi. Это имя теперь указывает на число из модуля math. Если импорт сделать раньше, чем присвоение значения pi, то будет все наоборот:

>>> from math import pi >>> pi = 3.14 >>> pi 3.14

В этой связи более опасен именно импорт всех функций. Так как в этом случае очень легко не заметить подмены значений идентификаторов.

Однако можно изменить имя идентификатора из модуля на какое угодно:

>>> from math import pi as P >>> P 3.141592653589793 >>> pi 3.14

В данном случае константа pi из модуля импортируется под именем P. Смысл подобных импортов в сокращении имен, так как есть модули с длинными именами, а имена функций и классов в них еще длиннее. Если в программу импортируется всего пара сущностей, и они используются в ней часто, то имеет смысл переименовать их на более короткий вариант. Сравните:

>>> import calendar >>> calendar .weekheader ( 2 ) 'Mo Tu We Th Fr Sa Su'

и

>>> from calendar import weekheader as week >>> week ( 3 ) 'Mon Tue Wed Thu Fri Sat Sun'

Во всех остальных случаях лучше оставлять идентификаторы содержимого модуля в пространстве имен самого модуля и получать доступ к ним через имя модуля, т. е. выполнять импорт командой import имя_модуля, а вызывать, например, функции через имя_модуля.имя_функции().

Программист на Python всегда может создать собственный модуль, чтобы использовать его в нескольких своих программах или даже предоставить в пользование всему миру. В качестве тренировки создадим модуль с функциями для вычисления площадей прямоугольника, треугольника и круга:

from math import pi , pow def rectangle (a , b ): return round ( a * b , 2 ) def triangle (a , h ): return round ( 0.5 * a * h , 2 ) def circle (r ): return round ( pi * pow ( r, 2 ) , 2 )

Здесь также иллюстрируется принцип, что один модуль может импортировать другие. В данном случае импортируются функции из модуля math.

Поместите данный код в отдельный файл square.py. Однако куда поместить сам файл?

Когда интерпретатор Питона встречает команду импорта, то просматривает на наличие файла-модуля определенные каталоги. Их перечень можно увидеть по содержимому sys.path:

>>> import sys >>> sys .path ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/pl/.local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

Это список адресов в Linux. В Windows он будет несколько другим. Первый элемент – пустая строка, что обозначает текущий каталог, то есть то место, где сохранена сама программа, импортирующая модуль. Если вы сохраните файл-модуль и файл-программу в одном каталоге, то интерпретатор без труда найдет модуль.

Также модуль можно положить в любой другой из указанных в списке каталогов. Тогда он будет доступен для всех программ на Python, а также его можно будет импортировать в интерактивном режиме.

Можно добавить в sys.path свой каталог. Однако в этом случае либо код программы должен содержать команды изменения значения sys.path, либо надо править конфигурационный файл операционной системы. В большинстве случаев лучше так не делать.

Поместите файл square.py в тот же каталог, где будет исполняемая программа. Ее код должен включать инструкцию импорта модуля square (при импорте расширение файла не указывается) и вызов той функции и с теми параметрами, которые ввел пользователь. Т. е. у пользователя надо спросить, площадь какой фигуры он хочет вычислить. Далее запросить у него аргументы для соответствующей функции. Передать их в функцию из модуля square, а полученный оттуда результат вывести на экран.

Примечание. Исполнение модуля как самостоятельного скрипта, а также создание строк документации, которые отображает встроенная в Python функция help(), будут рассмотрены в курсе объектно-ориентированного программирования.

Примеры решения в android-приложении и pdf-версии курса.

www.kakmystroim.ru Copyright © 2016
Все права защищены

Все материалы на сайте предоставляются исключительно в ознакомительных целях.


rss