Similar presentations:
Введение в 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() – проверяет, состоит ли строка только из пробелов