Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питон ТП6 / Питон.docx
Скачиваний:
24
Добавлен:
18.08.2022
Размер:
13.07 Mб
Скачать

Анонимные функции (lambda-выражение)

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

func = lambda x, y: x+y

print(func(4, 10))

print(func('Ivan ', 'Ivanov '))

Вывод: 14, Ivan Ivanov

Анонимные функции чаще всего используют внутри других стандартных функций, например, в sorted, filter, map, reduce и других.

Например, имеется последовательность чисел, вывести только четные элементы

s = [5, 4, 8, 6, 2, 1, 7]

s = filter(lambda x: x % 2 == 0, s)

print(*s)

Вывод: 4 8 6 2

Имеется словарь, где ключами являются слова, а значениями - частота их вхождения в текст. Нужно отсортировать элементы словаря по убыванию частоты вхождения, а элементы с одинаковой частотой вхождения в лексикографическом порядке слов.

In [18]:

d = {'bol': 3, 'map':5, 'ring': 2, 'apple':3, 'number':3, 'doll': 5, 'look':3}

d = sorted(d.items(), key=lambda x: (-x[1], x[0]))

print(d)

[('doll', 5), ('map', 5), ('apple', 3), ('bol', 3), ('look', 3), ('number', 3), ('ring', 2)]

  • Анонимная функция может иметь 0 или более параметров, но в теле функции есть только одно выражение (expression). Значение выражения является возвращенным значением функции. Но нельзя использовать оператор return сразу перед выражением.

  • Список параметров разделен запятой, и не должен быть в круглых скобках ( ).

  • В теле анонимной функции вы не можете иметь доступ к переменным снаружи, вы можете только иметь доступ к параметрам.

  • Анонимная функция не может вызвать напрямую функцию print, так как lambda требует выражение.

Понятие модуля. Модули в Python. Подключение модулей. Создание своего модуля и пакета модулей.

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

Подключение модулей

Подключить модуль можно с помощью инструкции import.После ключевого слова import указывается название модуля.

import time

Использование псевдонимов

Если название модуля слишком длинное, или оно вам не нравится по каким-то другим причинам, то для него можно создать псевдоним, с помощью ключевого слова as.

import math as m

Подключить определенные атрибуты модуля можно с помощью инструкции from.

from math import cos

При этом импортируется только конкретный объект (в нашем примере: функция cos), остальные функции недоступны.Для импортирования нескольких функций из модуля, можно перечислить их имена через запятую.

Если необходимо импортировать все фукнции, классы и т.п. из модуля, то воспользуйтесь следующей формой оператора from имя_модуля import *

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

Чтобы создать свой модуль в 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

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

Отдельные файлы-модули с кодом на 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

Соседние файлы в папке питон ТП6