F-строки
Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.
Личный IT канал - https://t.me/+dCIkWWWlfF5jOGEy
Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.
Личный IT канал - https://t.me/+dCIkWWWlfF5jOGEy
Айтишник ведет личный лайфблог в котором рассказывает о том как живет по жизни, о том как двигается в айти, как вырос от специалиста отдела технического контроля, до руководителя софтовой разработки. Залетайте в блог по приглосу - https://t.me/+dCIkWWWlfF5jOGEy
Используем f-строки для упрощения вывода информации в консоль
Начиная с Python 3.8 f-строки могут быть использованы для самодокументирования — с помощью =.
Это значит, что для того, чтобы вывести в консоль какое-то значение, вам больше не нужно писать f"variable_name = {variable_name}".
Изменение это небольшое, но довольно важное. Благодаря ему вы не просто избавитесь от повторений в коде, но и упростите его чтение.
Начиная с Python 3.8 f-строки могут быть использованы для самодокументирования — с помощью =.
Это значит, что для того, чтобы вывести в консоль какое-то значение, вам больше не нужно писать f"variable_name = {variable_name}".
Изменение это небольшое, но довольно важное. Благодаря ему вы не просто избавитесь от повторений в коде, но и упростите его чтение.
inspect (ч.1)
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.
Подробнее тут: https://t.me/+dCIkWWWlfF5jOGEy
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.
Подробнее тут: https://t.me/+dCIkWWWlfF5jOGEy
Атрибуты и методы
Давайте возьмем массив numpy. Мы уже использовали некоторые его методы и атрибуты!
К примеру, у каждого массива numpy есть атрибут shape, к которому вы можете получить доступ, указав имя массива, за которым следуют точка и название атрибута shape.
Состояние — Атрибуты
Подробнее тут: https://t.me/+dCIkWWWlfF5jOGEy
Давайте возьмем массив numpy. Мы уже использовали некоторые его методы и атрибуты!
К примеру, у каждого массива numpy есть атрибут shape, к которому вы можете получить доступ, указав имя массива, за которым следуют точка и название атрибута shape.
Состояние — Атрибуты
Подробнее тут: https://t.me/+dCIkWWWlfF5jOGEy
Аннотация типов
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
Далее https://t.me/+dCIkWWWlfF5jOGEy
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
Далее https://t.me/+dCIkWWWlfF5jOGEy
Разраб? Ищем тебя! Залетай в нашу команду. Платим рынок. Берем только с опытом. Проверяй себя в боте https://t.me/bratkovsearcherbot
Списковые включения (ч.2)
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
https://t.me/+dCIkWWWlfF5jOGEy
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
https://t.me/+dCIkWWWlfF5jOGEy
Вращаем и сохраняем изображение
Для вращения используем функцию rotate(количество_градусов). А для сохранения используем функцию save(путь_к_файлу).
https://t.me/+dCIkWWWlfF5jOGEy
Для вращения используем функцию rotate(количество_градусов). А для сохранения используем функцию save(путь_к_файлу).
https://t.me/+dCIkWWWlfF5jOGEy
Проверка возможности вызова
Поговорим о возможности вызова того или иного объекта. Для проверки возможности вызова воспользуемся встроенной функцией callable. Она возвращает True или False в зависимости от объекта. Под вызовом подразумеваются ( ).
https://t.me/+dCIkWWWlfF5jOGEy
Поговорим о возможности вызова того или иного объекта. Для проверки возможности вызова воспользуемся встроенной функцией callable. Она возвращает True или False в зависимости от объекта. Под вызовом подразумеваются ( ).
https://t.me/+dCIkWWWlfF5jOGEy
Как рассчитать дату в будущем в Python
Давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.
Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
https://t.me/+dCIkWWWlfF5jOGEy
Давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.
Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
https://t.me/+dCIkWWWlfF5jOGEy
Итерация next() для генераторов
В большинстве обычных сценариев в программировании мы можем получить доступ к индексу и получить номер позиции, используя счётчик, который будет просто добавляемым значением
Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.
https://t.me/+dCIkWWWlfF5jOGEy
В большинстве обычных сценариев в программировании мы можем получить доступ к индексу и получить номер позиции, используя счётчик, который будет просто добавляемым значением
Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.
https://t.me/+dCIkWWWlfF5jOGEy
Транспонирование двумерного массива данных
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией zip
Если вы регулярно сталкиваетесь с подобными задачами, вместо таких трюков в Python принято использовать библиотеку NumPy.
https://t.me/+dCIkWWWlfF5jOGEy
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией zip
Если вы регулярно сталкиваетесь с подобными задачами, вместо таких трюков в Python принято использовать библиотеку NumPy.
https://t.me/+dCIkWWWlfF5jOGEy
📂 Функция scandir() в Python
Функция
🔹 Что делает?
Возвращает итератор объектов
🔹 Особенности:
✔ Записи возвращаются в произвольном порядке (не гарантируется сортировка).
✔ Специальные записи
🔹 Почему лучше, чем
✅ Быстрее — не требует дополнительных системных вызовов для получения метаданных.
✅ Удобнее — объекты
-
-
-
💡 Пример использования:
#python #для_продвинутых #программирование
Функция
os.scandir() — это удобный и эффективный способ работы с содержимым директорий в Python. 🚀 🔹 Что делает?
Возвращает итератор объектов
os.DirEntry, соответствующих файлам и поддиректориям в указанной папке. 🔹 Особенности:
✔ Записи возвращаются в произвольном порядке (не гарантируется сортировка).
✔ Специальные записи
'.' (текущая директория) и '..' (родительская директория) всегда идут первыми. 🔹 Почему лучше, чем
os.listdir()? ✅ Быстрее — не требует дополнительных системных вызовов для получения метаданных.
✅ Удобнее — объекты
DirEntry содержат полезные методы, например: -
.is_file() -
.is_dir() -
.stat() 💡 Пример использования:
python
import os
with os.scandir('/path/to/dir') as entries:
for entry in entries:
if entry.is_file():
print(f"📄 Файл: {entry.name}")
elif entry.is_dir():
print(f"📁 Папка: {entry.name}")
#python #для_продвинутых #программирование
#вопросы_с_собеседований 🔍
Как работает хэш-таблица?
Разбираем по кирпичикам �
— Ключ → Значение: Данные хранятся в виде пар, где каждому ключу соответствует определённое значение.
— Магия хэш-функции ✨:
- Ключ подаётся в хэш-функцию, которая преобразует его в целочисленный индекс.
- Этот индекс указывает на конкретную ячейку (бакет) в массиве, где и лежит значение.
— Коллизии — не приговор 💥:
- Если разные ключи дают одинаковый хэш (коллизия), используются методы разрешения:
- Метод цепочек — значения с одинаковым хэшом хранятся в связном списке.
- Открытая адресация — ищется следующая свободная ячейка по определённому алгоритму.
— Динамический рост 📈:
- При большой заполненности таблица расширяется (rehashing), чтобы сохранить эффективность O(1) для вставки и поиска.
Итог: Быстрый доступ к данным за счёт хэширования, но важно правильно выбрать хэш-функцию и метод борьбы с коллизиями. 🚀
Как работает хэш-таблица?
Разбираем по кирпичикам �
— Ключ → Значение: Данные хранятся в виде пар, где каждому ключу соответствует определённое значение.
— Магия хэш-функции ✨:
- Ключ подаётся в хэш-функцию, которая преобразует его в целочисленный индекс.
- Этот индекс указывает на конкретную ячейку (бакет) в массиве, где и лежит значение.
— Коллизии — не приговор 💥:
- Если разные ключи дают одинаковый хэш (коллизия), используются методы разрешения:
- Метод цепочек — значения с одинаковым хэшом хранятся в связном списке.
- Открытая адресация — ищется следующая свободная ячейка по определённому алгоритму.
— Динамический рост 📈:
- При большой заполненности таблица расширяется (rehashing), чтобы сохранить эффективность O(1) для вставки и поиска.
Итог: Быстрый доступ к данным за счёт хэширования, но важно правильно выбрать хэш-функцию и метод борьбы с коллизиями. 🚀