328.78K
Category: programmingprogramming

Введение в Python. Введение в Python

1.

Введение в Python
Лекция 5: Модули в Python

2.

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

3.

Пример:
>>> import math
>>>
Обратимся к функции модуля (в данном случае для нахождения
квадратного корня из 9):
>>> math.sqrt(9)
3.0
>>>
Мы указываем имя модуля, точку и имя функции с аргументами.

4.

Узнать о функциях, которые содержит модуль, можно через
справку:
>>> help(math)
Если хотим посмотреть описание конкретной функции модуля, то
вызываем справку отдельно для нее:
>>> help(math.sqrt)

5.

В момент импортирования модуля math создается переменная с
именем math:
>>> type(math)
<class 'module'>
>>>
Функция type() показала, что тип данных переменной math –
модуль.

6.

Переменная math содержит ссылку (адрес) модульного
объекта, в котором содержатся ссылки на функции:

7.

В Python можно импортировать отдельную
функцию из модуля:
>>> from math import sqrt
>>> sqrt(9)
3.0
>>>
Таким образом, Python не будет создавать переменную math, а
загрузит в память только функцию sqrt().

8.

Пример:
>>> def sqrt(x):
return x*x
>>> sqrt(5)
25
>>> from math import sqrt
>>> sqrt(9)
3.0
>>>

9.

Пример:
>>> def sqrt(x):
return x*x
>>> sqrt(6)
36
>>> import math
>>> math.sqrt(9)
3.0
>>> sqrt(7)
49
>>>

10.

Создание собственных модулей
Создадим файл с именем mm.py и содержащий код (содержимое
нашего модуля):
def f():
return 4
импортируем наш модуль, указав только его имя (без расширения):
>>> import mm
>>> mm.f()
4
>>>

11.

Создадим еще один модуль (по аналогии с предыдущим), укажем
для него другое имя – mtest.py:
print('test')
Новый модуль будет содержать вызов функции print().
Импортируем его несколько раз подряд:
>>> import mtest
test
>>> import mtest
>>>

12.

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

13.

Как быть, если мы изменили наш модуль и
хотим его импортировать повторно?
>>> import imp
>>> imp.reload(mtest)
test
<module 'mtest' from 'C:\\Python3532\\mtest.py'>
>>>
После вызова функции reload() с указанием в качестве аргумента
имени модуля, обновленный модуль загрузится повторно.

14.

Создадим еще один модуль с именем
mypr.py:
def func(x):
return x**2+7
x=int(input("Введите значение: "))
print(func(x))
Импортирование модуля приводит к выполнению всей программы:
>>> import mypr
Введите значение: 111
12328
>>>

15.

• Для того чтобы отделить исполнение модуля от его
импортирования (import mypr) в Python есть специальная
переменная __name__ (Python начинает названия специальных
функций и переменных с двух нижних подчеркиваний).

16.

17.

• Если мы запускаем модуль, то содержимое переменной
__name__ будет равно строке __main__, а в случае
импортирования – переменная __name__ будет содержать имя
модуля.

18.

Пример:
Создадим модуль с именем prog3.py и содержанием:
def func(x):
return x**2+7
if __name_ _ == "__main__":
x=int(input("Введите значение: "))
print(func(x))

19.

Строковые методы в Python
Вызовем функцию type() и передадим ей на вход
целочисленный аргумент:
>>> type(0)
<class 'int'>
>>>
Функция сообщила нам, что объект 0 относится к классу 'int',
т.е. тип данных является классом (тип данных и класс – синонимы).

20.

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

21.

Рассмотрим пример вызова строкового метода:
>>> str.capitalize('hello')
'Hello'
>>>
По аналогии с вызовом функции из модуля указываем имя класса –
str, затем через точку пишем имя строкового метода
capitalize(), который принимает один строковый аргумент

22.

23.

Метод – это обычная функция, расположенная внутри класса.
Вызовем еще один метод:
>>> str.center('hello',20)
' hello '
>>>
Этот метод принимает два аргумента – строку и число

24.

25.

Форма вызова метода через обращение к его классу через точку
называется полной формой.
Чаще всего используют сокращенную форму вызова метода:
>>> 'hello'.capitalize()
'Hello'
>>>

26.

В примере вынесен первый аргумент
метода и помещен вместо имени класса:

27.

Для вызова справки у методов необходимо
через точку указывать их класс:
>>> help (str.capitalize)
Help on method_descriptor:
capitalize(...)
S.capitalize() -> str
Return a capitalized version of S, i.e. make the
first character have upper case and the rest
lower case.
>>>

28.

Python содержит интересный метод
format()
>>> '{0} и {1}'.format('труд', 'май')
'труд и май'
>>>
Вместо {0} и {1} подставятся аргументы метода format().
Поменяем их местами:
>>> '{1} и {0}'.format('труд', 'май')
'май и труд'
>>>

29.

Формат вывода метода format() может
варьироваться:
>>> n = 10
>>> '{:b}'.format(n)
счисления
'1010'
>>> '{:c}'.format(n)
'\n'
>>> '{:d}'.format(n)
'10'
>>> '{:x}'.format(n)
'a'
>>>
# вывод в двоичной системе
# вывод в формате Unicode
# по снованию 10
# по основанию 16

30.

s.upper() – возвращает строку в верхнем регистре
s.lower() – возвращает строку в нижнем регистре
s.title() – возвращает строку, первый символ которой в верхнем
регистре
s.find('вет', 2, 3) – возвращает позицию подстроки в интервале либо
-1
s.count('e', 1, 5) – возвращает количество подстрок в интервале
либо -1
s.isalpha() – проверяет, состоит ли строка только из букв
s.isdigit() – проверяет, состоит ли строка только из чисел
s.isupper() – проверяет, написаны ли все символы в верхнем регистре
s.islower() – проверяет, написаны ли все символы в нижнем регистре
s.istitle() – проверяет, начинается ли строка с большой буквы
s.isspace() – проверяет, состоит ли строка только из пробелов
English     Русский Rules