⚡️ Продолжаем рассматривать модуль itertools
Думаю, стоит вам ещё рассказать про этот модуль и интересные функции. Начнём!
#миниурок #itertools
Думаю, стоит вам ещё рассказать про этот модуль и интересные функции. Начнём!
zip_longest(a, b, fill_value)
— очень удобный итератор. Работает также как и zip, но если длина списков разная, заполняет их fill_value.takewhile(func, seq)
— возвращает значения из seq, пока func не вернёт False.chain(a, b,...)
— соединяет два и более итерируемых объектов в один.product(a, b...)
— декартово произведение итерируемых объектов.#миниурок #itertools
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая находит особое число из списка. На вход идёт список из целочисленных значений, все они делятся или не делятся на 2, кроме одного. Вам необходимо найти это особое число. Длина такого списка всегда больше трёх.
Примеры:
find_outlier([2, 4, 0, 4, 11, 36]) -> 11
find_outlier([160, 3, 19, 11, -21]) -> 160
find_outlier([-1, 1, 3, 3, 2, -11, -21]) -> 2
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая находит особое число из списка. На вход идёт список из целочисленных значений, все они делятся или не делятся на 2, кроме одного. Вам необходимо найти это особое число. Длина такого списка всегда больше трёх.
Примеры:
find_outlier([2, 4, 0, 4, 11, 36]) -> 11
find_outlier([160, 3, 19, 11, -21]) -> 160
find_outlier([-1, 1, 3, 3, 2, -11, -21]) -> 2
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Оператор with
Если вы работаете с файлами или соединениями, то их стоит закрывать после работы. Использовать try/except/finally — не красиво и занимает много места.
Поэтому, разработчики придумали оператор with, выполняющий обязательные функции по окончанию работы с классом. Можете почитать о нём в PEP 343.
Как и у любого оператора, у with есть свои методы.
#теория #with
Если вы работаете с файлами или соединениями, то их стоит закрывать после работы. Использовать try/except/finally — не красиво и занимает много места.
Поэтому, разработчики придумали оператор with, выполняющий обязательные функции по окончанию работы с классом. Можете почитать о нём в PEP 343.
Как и у любого оператора, у with есть свои методы.
__enter__
вызывается в переданном классе с самого начала, для инициализации. А после, по окончанию работы, вызывается __exit__
.#теория #with
Что выведет код выше?
Anonymous Quiz
44%
Lorem ipsum
2%
Lorem
2%
ipsum
13%
Loremipsum
30%
Ошибку
8%
Узнать ответ
⚡️ Работаем с временем
Ранее я рассказывал о модулях для взаимодействия с временем, но их необходимо устанавливать, а вот datetime — нет.
Хоть с ним и неудобно работать в отличие от его конкурентов, с ним у вас в проекте будет меньше зависимостей. Объектов много, поэтому тут будут самые используемые.
Получить их можно с помощью
А также, используя
#миниурок #datetime
Ранее я рассказывал о модулях для взаимодействия с временем, но их необходимо устанавливать, а вот datetime — нет.
Хоть с ним и неудобно работать в отличие от его конкурентов, с ним у вас в проекте будет меньше зависимостей. Объектов много, поэтому тут будут самые используемые.
date
, time
, datetime
— классы, предоставляющие доступ к дате, времени или к всему сразу.Получить их можно с помощью
date.today()
, datetime.today()
, datetime.now()
или создав их самостоятельно, передав нужные значения, которые можно почитать в документации.А также, используя
timedelta
, мы можем менять время: добавлять, забирать и многое другое.#миниурок #datetime
⚡️ Отображаем календарь
В языке Python есть интересный модуль, позволяющий выводить календарь так же, как и программа
TextCalendar и HTMLCalendar позволяют выводить календарь в текстовом и веб форматах. Вы можете их настроить, используя методы, записанные в документации.
#миниурок #calendar
В языке Python есть интересный модуль, позволяющий выводить календарь так же, как и программа
cal
в unix-подобных системах. TextCalendar и HTMLCalendar позволяют выводить календарь в текстовом и веб форматах. Вы можете их настроить, используя методы, записанные в документации.
calendar.weekday(year, month, day)
— возвращает день недели в определённый день. Возвращает число от 0 до 6, что, соответственно, понедельник - суббота. calendar.isleap(year)
— позволяет узнать, является ли год високосным.calendar.firstweekday()
— сообщает день недели, с которого начинается неделя.#миниурок #calendar
Что выведет код выше?
Anonymous Quiz
40%
[1, 2]
5%
[2, 4]
8%
[1, 2, 1, 2]
40%
Ошибку
7%
Узнать ответ
⚡️ Работаем с окружением
Внутри операционной системы существуют некие переменные окружения. Самая популярная — PATH, её вы могли видеть при установке языка. Что они значат я рассказывать не буду, а вот как с ними работать — расскажу.
Для этого нам потребуется модуль os, а если быть конкретнее —
#миниурок #os
Внутри операционной системы существуют некие переменные окружения. Самая популярная — PATH, её вы могли видеть при установке языка. Что они значат я рассказывать не буду, а вот как с ними работать — расскажу.
Для этого нам потребуется модуль os, а если быть конкретнее —
os.environ
(или os.environb
) и os.getenv()
(или os.getenvb()
).os.environ
— словарь, внутри которого можно брать значения переменных по ключу. Если вам нужно их байтовое представление, воспользуйтесь os.environb
.os.getenv(key, default=None)
— берёт значение по ключу из os.environ
, а если ключа не существует, возвращает default
. os.getenvb()
возвращает данные из os.environb
.#миниурок #os
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая проверяет, может ли такая переменная существовать. Переменная не может начинаться с цифры, состоит только из символов A-z, цифр и "_". Также, она не может быть ни одним из зарегистрированных слов. Их можно взять их keyword.kwlist.
Примеры:
check_var_name('I$Contain0*7') -> False
check_var_name('1wrong') -> False
check_var_name('_oKe') -> True
check_var_name('True') -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая проверяет, может ли такая переменная существовать. Переменная не может начинаться с цифры, состоит только из символов A-z, цифр и "_". Также, она не может быть ни одним из зарегистрированных слов. Их можно взять их keyword.kwlist.
Примеры:
check_var_name('I$Contain0*7') -> False
check_var_name('1wrong') -> False
check_var_name('_oKe') -> True
check_var_name('True') -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️Создаём файловые пути
Если вы каким-то образом взаимодействуете с файлами в операционной системе, то вам необходимо создавать пути, что можно делать с помощью модуля os.path.
Вот парочка полезных функций из него:
Если вам что-то не понятно или же вам необходим больший функционал, то посетите страницу документации.
#миниурок #os
Если вы каким-то образом взаимодействуете с файлами в операционной системе, то вам необходимо создавать пути, что можно делать с помощью модуля os.path.
Вот парочка полезных функций из него:
join(path, *paths)— объединяет все пути в один, используя разделитель, если необходимо.
expandvars(path)
— заменяет имена переменных $NAME или ${NAME} на их значения. На ОС Windows разрешает использовать %NAME%.expanduser(path)
— заменяет такие компоненты как "~" или "~user" на директорию пользователя. На Linux это значение HOME, а на Windows — USERPROFILE или HOMEPATH + HOMEDRIVE.Если вам что-то не понятно или же вам необходим больший функционал, то посетите страницу документации.
#миниурок #os
⚡️ Ищем файлы по шаблону
Если вы работали с Unix-подобными ОС, то наверняка знаете, что можно выбирать файлы используя шаблоны. Вот и в Python есть такая возможность — всё благодаря модулю glob.
Подробнее о модуле вы, как обычно, можете почитать на сайте документации.
#миниурок #glob
Если вы работали с Unix-подобными ОС, то наверняка знаете, что можно выбирать файлы используя шаблоны. Вот и в Python есть такая возможность — всё благодаря модулю glob.
glob.glob(pathname, recursive=False)
— находит файлы по переданному шаблону. Кстати, о шаблонах можете почитать тут. recursive говорит функции, стоит ли проходить по под-директории, например при наличии ** в шаблоне.glob.iglob(pathname, recursive=False)
— делает то же самое, что и функция выше, но возвращает итератор, что позволяет сэкономить на памяти, если файлов много.glob.escape(pathname)
— экранирует особые символы (*, ?, [).Подробнее о модуле вы, как обычно, можете почитать на сайте документации.
#миниурок #glob
⚡️ Задачка с собеседования | #Easy
Условие:
Вам необходимо отсортировать список, но все парные числа должны остаться на месте.
Примеры:
sort_array([3, 1]) -> [1, 3]
sort_array([3, 2, -1, 4]) -> [-1, 2, 3, 4]
sort_array([5, 3, 2, 8, 1, 4]) -> [1, 3, 2, 8, 5, 4]
sort_array([0, -1, -2, -3, 4, 1]) -> [0, -3, -2, -1, 4, 1]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо отсортировать список, но все парные числа должны остаться на месте.
Примеры:
sort_array([3, 1]) -> [1, 3]
sort_array([3, 2, -1, 4]) -> [-1, 2, 3, 4]
sort_array([5, 3, 2, 8, 1, 4]) -> [1, 3, 2, 8, 5, 4]
sort_array([0, -1, -2, -3, 4, 1]) -> [0, -3, -2, -1, 4, 1]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️Создаём файловые пути
Функционал os.path кому-то может показаться недостаточным и, чтобы не изобретать велосипед, стоит взглянуть на pathlib, добавленный с версии python 3.4.
Самый важный класс — Path. Он создаёт путь и выбирает подкласс (PosixPath, WindowsPath) на основе запущенной ОС. Подробнее можно почитать тут.
Работать с ним можно с помощью оператора "/", который добавляет второй аргумент в путь.
Ещё одной особенностью класса является совместимость с os, поскольку это PathLike объект.
P.S. Если вы используете модуль glob, то можете его не импортировать, функционал хранится в функции
#миниурок #pathlib
Функционал os.path кому-то может показаться недостаточным и, чтобы не изобретать велосипед, стоит взглянуть на pathlib, добавленный с версии python 3.4.
Самый важный класс — Path. Он создаёт путь и выбирает подкласс (PosixPath, WindowsPath) на основе запущенной ОС. Подробнее можно почитать тут.
Работать с ним можно с помощью оператора "/", который добавляет второй аргумент в путь.
Ещё одной особенностью класса является совместимость с os, поскольку это PathLike объект.
P.S. Если вы используете модуль glob, то можете его не импортировать, функционал хранится в функции
pathlib.glob
.#миниурок #pathlib