Выбрать главу

|

| print (sqrt(121))

| print (pi)

| print (e)

Однако это конструкцию следует использовать с осторожностью, поскольку при импортировании нескольких модулей можно запутаться в своем собственном коде.

Местонахождение модулей в Python:

Когда вы импортируете модуль, интерпретатор Python ищет этот модуль в следующих местах:

1. Директория, в которой находится файл, в котором вызывается команда импорта

2. Если модуль не найден, Python ищет в каждой директории, определенной в консольной переменной PYTHONPATH.

3. Если и там модуль не найден, Python проверяет путь заданный по умолчанию

*

Путь поиска модулей сохранен в системном модуле sys в переменной path. Переменная sys.path содержит все три вышеописанных места поиска модулей.

Получение списка всех модулей Python установленных на компьютере:

Для того, чтобы получить список всех модулей, установленных на вашем компьютере достаточно выполнить команду:

| help("modules")

Через несколько секунд вы получите список всех доступных модулей.

Создание своего модуля в Python:

Чтобы создать свой модуль в Python достаточно сохранить ваш скрипт с расширением .py Теперь он доступен в любом другом файле. Например, создадим два файла: module_1.py и module_2.py и сохраним их в одной директории. В первом запишем:

| def hello():

| print ("Hello from module_1")

А во втором вызовем эту функцию:

| from module_1 import hello

|

| hello()

Выполнив код второго файла получим:

Hello from module_1

Функция dir():

Встроенная функция dir() возвращает отсортированный список строк, содержащих все имена, определенные в модуле.

| # на данный момент нам доступны лишь встроенные функции

| dir()

| # импортируем модуль math

| import math

| # теперь модуль math в списке доступных имен

| dir()

| # получим имена, определенные в модуле math

| dir(math)

Архитектура программы на Python:

Код на Python может быть организован следующим образом:

* Первый уровень это обычные команды на Python.

* Команды на Python могут быть собраны в функции.

* Функции могут быть частью класса.

* Классы могут быть определены внутри модулей.

* Наконец, модули могут составляться в пакеты модулей.

Пакеты модулей в Python:

Отдельные файлы-модули с кодом на Python могут объединяться в пакеты модулей. Пакет это директория (папка), содержащая несколько отдельных файлов-скриптов.

Например, имеем следующую структуру:

|_ my_file.py

|_ my_package

|_ __init__.py

|_ inside_file.py

В файле inside_file.py определена некая функция foo. Тогда чтобы получить доступ к функции foo, в файле my_file следует выполнить следующий код:

from my_package.inside_file import foo

Так же обратите внимание на наличие внутри директории my_package файла __init__.py. Это может быть пустой файл, который сообщает Python, что данная директория является пакетом модулей. В Python 3.3 и выше включать файл __init__.py в пакет модулей стало необязательно, однако, рекомендуется делать это ради поддержки обратной совместимости.

Работа с файлами в Python

Published: 21 May 2015

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

Открытие и закрытие файла в Python.

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

Синтаксис функции open() в Python.

my_file = open(имя_файла [, режим_доступа][, буферизация])

При этом:

имя_файла: строка, содержащая имя файла с расширением. Например, "my_file.txt".

режим_доступа: строка, которой мы указываем для чего открывается файл: для чтения, записи, добавления информации, и т.д. Например, "w". По умолчанию файл открывается для чтения - "r".

буферизация: Челое число. Если значение аргумента указано 0 - файл открывается без буферизации, 1 с построчной буферизацией, больше одного процесс буферизации выполняется с указанным размером буфера. Отрицательное число - разер буфера будет равен системному.