В Python можно выпрямить вложенные списки с помощью... функции sum(). Вот код
l=[['a', 'b', 'c'], ['1', '2'], ['#']]
sum(l, [])
Дело в том, что sum() принимает первым аргументом итерируемый объект, а вторым — значение, с которого начинается операция. По умолчанию это 0, но если указать пустой список [], то sum() начнёт с него. Затем sum() последовательно применяет операцию сложения к элементам первого аргумента, начиная со значения второго аргумента. В случае списков это означает конкатенацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍46😁12🤩2🥱2❤1
🐍⛓ Цепи Маркова: генерирование читабельной бессмыслицы за 20 строк на Python
В новой статье научимся генерировать осмысленные, но в то же время абсурдные фразы и предложения с помощью цепи Маркова.
🔗 Читать статью
🔗 Зеркало
В новой статье научимся генерировать осмысленные, но в то же время абсурдные фразы и предложения с помощью цепи Маркова.
🔗 Читать статью
🔗 Зеркало
👍18
🐍 Почему не стоит использовать неподдерживаемые библиотеки
Автор новой статьи объясняет, почему перед установкой понравившейся библиотеки стоит проверить, поддерживает ли её разработчик. Он приводит в пример Flask-Mail, у которой последний коммит был 9 лет назад. При этом, если гуглить статьи об отправке email в Flask, то 20 лучших результатов будут упоминать именно эту библиотеку.
❗Однако проблемы безопасности библиотеки не исправляются. Кроме того, может в любой момент отвалиться совместимость с новой версией Python.
🔗 Прочесть статью целиком можно по этой ссылке
Автор новой статьи объясняет, почему перед установкой понравившейся библиотеки стоит проверить, поддерживает ли её разработчик. Он приводит в пример Flask-Mail, у которой последний коммит был 9 лет назад. При этом, если гуглить статьи об отправке email в Flask, то 20 лучших результатов будут упоминать именно эту библиотеку.
❗Однако проблемы безопасности библиотеки не исправляются. Кроме того, может в любой момент отвалиться совместимость с новой версией Python.
🔗 Прочесть статью целиком можно по этой ссылке
👍15⚡2🔥1😁1
33 года назад Гвидо ван Россум релизнул Python. На сегодняшний день он является самым популярным языком программирования в мире
Выпьем за Python любимый напиток и продолжим кодить
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🎉43❤21🥰5😁3⚡2👏1🌚1👾1
🎂 Опрос в честь дня рождения: сколько лет вы уже пишете на Python?
🎉 — более 5 лет
❤️ — 3-5 лет
👍 — 1-2 года
🥰 — я в теме меньше года
#интерактив
🎉 — более 5 лет
❤️ — 3-5 лет
👍 — 1-2 года
🥰 — я в теме меньше года
#интерактив
🥰213👍178❤146🎉112👾4🌚2👏1🤔1🤩1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
📈 5 трендов в подборе ИТ-специалистов на 2024 год
Использование ИИ-алгоритмов становится трендом и в Human Resources. Такими инструментами пользуются и кандидаты, и работодатели.
🤖 Например, появляются Applicant tracking system (ATS) с ИИ, которые автоматизируют поиск и отбор кандидатов. А ещё есть Final Round AI — своеобразный помощник с искусственным интеллектом, который генерирует индивидуальные ответы на онлайн-интервью в режиме реального времени.
👉 О других трендах читайте в нашей новой статье 👈
🔗 Зеркало
Использование ИИ-алгоритмов становится трендом и в Human Resources. Такими инструментами пользуются и кандидаты, и работодатели.
🤖 Например, появляются Applicant tracking system (ATS) с ИИ, которые автоматизируют поиск и отбор кандидатов. А ещё есть Final Round AI — своеобразный помощник с искусственным интеллектом, который генерирует индивидуальные ответы на онлайн-интервью в режиме реального времени.
👉 О других трендах читайте в нашей новой статье 👈
🔗 Зеркало
❤5👍1
big-o-cheatsheet.pdf
254.8 KB
🤔 Вычислительная сложность алгоритмов: удобная шпаргалка
Понимание вычислительной сложности алгоритмов важно для разработчика. Как минимум, про это могут спросить на собеседовании, как максимум — это поможет улучшить ваш проект.
❓Что это такое?
Вычислительная сложность пытается ответить: как изменятся время исполнения алгоритма и объём занятой памяти в зависимости от размера входных данных? Тут вводится понятие асимптотической сложности. Это математическая модель, описывающая поведение ограничений на ресурсы (например, время выполнения или использование памяти) в пределе, когда размер входных данных стремится к бесконечности. Алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных.
Для асимптотической сложности алгоритма используется следующая нотация: 𝑂
(«О»-большое), которое описывает верхнюю границу времени.
✍️ Категории алгоритмической сложности в 𝑂-нотации:
- Постоянное время: 𝑂(1)
Время выполнения не зависит от количества элементов во входном наборе данных.
- Линейное время: 𝑂(𝑁)
Время выполнения пропорционально количеству элементов в наборе.
- Логарифмическое время: 𝑂(log𝑁)
Время выполнения пропорционально логарифму от количества элементов в наборе.
- Линейно-логарифмическое время: 𝑂(𝑁log𝑁)
Время выполнения больше чем, линейное, но меньше квадратичного.
- Квадратичное время: 𝑂(𝑁^2)
Время выполнения пропорционально квадрату количества элементов в наборе.
🔗 Ссылка на отличную шпаргалку
Понимание вычислительной сложности алгоритмов важно для разработчика. Как минимум, про это могут спросить на собеседовании, как максимум — это поможет улучшить ваш проект.
❓Что это такое?
Вычислительная сложность пытается ответить: как изменятся время исполнения алгоритма и объём занятой памяти в зависимости от размера входных данных? Тут вводится понятие асимптотической сложности. Это математическая модель, описывающая поведение ограничений на ресурсы (например, время выполнения или использование памяти) в пределе, когда размер входных данных стремится к бесконечности. Алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных.
Для асимптотической сложности алгоритма используется следующая нотация: 𝑂
(«О»-большое), которое описывает верхнюю границу времени.
✍️ Категории алгоритмической сложности в 𝑂-нотации:
- Постоянное время: 𝑂(1)
Время выполнения не зависит от количества элементов во входном наборе данных.
- Линейное время: 𝑂(𝑁)
Время выполнения пропорционально количеству элементов в наборе.
- Логарифмическое время: 𝑂(log𝑁)
Время выполнения пропорционально логарифму от количества элементов в наборе.
- Линейно-логарифмическое время: 𝑂(𝑁log𝑁)
Время выполнения больше чем, линейное, но меньше квадратичного.
- Квадратичное время: 𝑂(𝑁^2)
Время выполнения пропорционально квадрату количества элементов в наборе.
🔗 Ссылка на отличную шпаргалку
👍6🥰6🔥2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
⛩️ 6 способов нестандартно войти в Айти
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
👍7❤6🔥4
Media is too big
VIEW IN TELEGRAM
💬 Vanna — библиотека для общения с БД на естественном языке
Инструмент по вашей просьбе генерирует SQL-запрос, который отправляется к базе данных. Работа Vanna проходит в два шага:
▫️Обучение на ваших данных из базы.
▫️Ответы на запросы.
🔗 Ссылка на подробный гайд по началу работы с Vanna (внутри также есть ссылки на Google Colab и GitHub)
Инструмент по вашей просьбе генерирует SQL-запрос, который отправляется к базе данных. Работа Vanna проходит в два шага:
▫️Обучение на ваших данных из базы.
▫️Ответы на запросы.
🔗 Ссылка на подробный гайд по началу работы с Vanna (внутри также есть ссылки на Google Colab и GitHub)
❤🔥11🔥6🥰3😁1
👍6
🐍 Краткое руководство по основным изменениям в каждой новой версии Python
Автор собрал небольшой справочник, в котором перечислил, что нового появлялось в Python, начиная с Python 3.5. Вот некоторые заметные нововведения:
▶️ Python 3.6 — f-строки (f"{текст}")
▶️ Python 3.8 — моржовый оператор (walrus)
▶️ Python 3.9 — оператор объединения для словарей
▶️ Python 3.10 — match/case
🔗 Подробнее об этом всём читайте в статье
Автор собрал небольшой справочник, в котором перечислил, что нового появлялось в Python, начиная с Python 3.5. Вот некоторые заметные нововведения:
if (thing := get_thing()) is not None:
do_something(thing)
else:
raise Exception(f"Something is wrong with {thing}")
combined_dict = dict_one | dict_two
updated_dict |= dict_three
🔗 Подробнее об этом всём читайте в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19😁5🔥1
🔧 Подборка новых интересных инструментов, библиотек и проектов
▫️INSTLD — простой инструмент для управления пакетами, который позволяет запускать код без установки библиотек, использовать разные версии одной и той же библиотеки в одной программе, работать с несовместимыми библиотеками в одном проекте и т.д.
▫️django-queryhunter — инструмент для Django-приложений, позволяющий выявлять строки кода, ответственные за выполнение наибольшего количества SQL-запросов.
▫️FastHX — решение для упрощения разработки веб-приложений. Использует возможности FastAPI для бэкенда и HTMX для фронтенда, обеспечивая эффективное взаимодействие между серверной и клиентской частями.
▫️copykitten — инструмент для лёгкого взаимодействия с системным буфером обмена в Python.
▫️Toolong — инструмент для облегчения работы с логами. Предоставляет возможность эффективного взаимодействия с большими объёмами данных логирования прямо из терминала.
▫️PyQuest — обширный справочник по Python. Охватывает широкий спектр тем от основ синтаксиса и типов данных до продвинутых концепций, таких как многопоточность.
▫️INSTLD — простой инструмент для управления пакетами, который позволяет запускать код без установки библиотек, использовать разные версии одной и той же библиотеки в одной программе, работать с несовместимыми библиотеками в одном проекте и т.д.
▫️django-queryhunter — инструмент для Django-приложений, позволяющий выявлять строки кода, ответственные за выполнение наибольшего количества SQL-запросов.
▫️FastHX — решение для упрощения разработки веб-приложений. Использует возможности FastAPI для бэкенда и HTMX для фронтенда, обеспечивая эффективное взаимодействие между серверной и клиентской частями.
▫️copykitten — инструмент для лёгкого взаимодействия с системным буфером обмена в Python.
▫️Toolong — инструмент для облегчения работы с логами. Предоставляет возможность эффективного взаимодействия с большими объёмами данных логирования прямо из терминала.
▫️PyQuest — обширный справочник по Python. Охватывает широкий спектр тем от основ синтаксиса и типов данных до продвинутых концепций, таких как многопоточность.
👍16👏3🔥1
Сайт PyPI Stats регулярно собирает статистику по PyPI. Вот данные на сегодняшний день:
1️⃣ boto3
2️⃣ botocore
3️⃣ urllib3
4️⃣ requests
5️⃣ certifi
6️⃣ typing-extensions
7️⃣ wheel
8️⃣ pip
9️⃣ setuptools
🔟 charset-normalizer
Оставшуюся часть рейтинга можно посмотреть по этой ссылке 👈
💬 Есть ли среди этих инструментов те, о которых вы слышите впервые?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍4🤔1
🐍 Pylint — инструмент статического анализа кода на Python
Предназначен для проверки кода на соответствие стандартам Python. Находит ошибки, рефакторит код, ищет куски, которые могут быть оптимизированы или написаны более эффективно.
Сегодня вышла последняя версия Pylint.
🔗 Документация с инструкцией по использованию
🔗 Репозиторий на GitHub
Предназначен для проверки кода на соответствие стандартам Python. Находит ошибки, рефакторит код, ищет куски, которые могут быть оптимизированы или написаны более эффективно.
Сегодня вышла последняя версия Pylint.
🔗 Документация с инструкцией по использованию
🔗 Репозиторий на GitHub
👍10😁3
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
🔥23❤8
⌨️ DIY-клавиатура из фанеры
В воскресное утро предлагаем прочесть текст о том, как энтузиаст собрал клавиатуру с нуля. Для этого ему понадобились: Raspberry Pi Pico, переключатели Gateron полноразмерные, кейкапы (кнопки), фанера и код на Python.
🐍 Если быть точнее, автор использовал инструмент с сайта http://kmkfw.io/, который позволяет настраивать клавиатуру, просто меняя текст в блокноте.
Финальный код управляющего скрипта и все подробности можно увидеть в статье 👈
Фото: drogman
В воскресное утро предлагаем прочесть текст о том, как энтузиаст собрал клавиатуру с нуля. Для этого ему понадобились: Raspberry Pi Pico, переключатели Gateron полноразмерные, кейкапы (кнопки), фанера и код на Python.
🐍 Если быть точнее, автор использовал инструмент с сайта http://kmkfw.io/, который позволяет настраивать клавиатуру, просто меняя текст в блокноте.
Финальный код управляющего скрипта и все подробности можно увидеть в статье 👈
Фото: drogman
👍10
Что такое контекстный менеджер в Python?
Контекстный менеджер в Python — это специальный тип объекта, который определяет методы enter() и exit() и используется с инструкцией with. Эти объекты часто применяются в операциях, которые требуют установки и освобождения ресурсов.
Частый сценарий — это работа с файлом:
Здесь контекстный менеджер гарантирует, что файл будет корректно закрыт после завершения блока with, даже если при чтении файла возникнет исключение.
🔨 Вот как можно написать простой контекстный менеджер самостоятельно:
#вопросы_с_собеседований
Контекстный менеджер в Python — это специальный тип объекта, который определяет методы enter() и exit() и используется с инструкцией with. Эти объекты часто применяются в операциях, которые требуют установки и освобождения ресурсов.
Частый сценарий — это работа с файлом:
with open('file.txt', 'r') as file:
data = file.read()
Здесь контекстный менеджер гарантирует, что файл будет корректно закрыт после завершения блока with, даже если при чтении файла возникнет исключение.
import time
class Timer:
def __enter__(self):
self.start = time.time()
def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time.time()
print(f'Время выполнения: {self.end - self.start:.2f} секунд')
with Timer():
# код, время выполнения которого нужно измерить
time.sleep(2)
#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍9🥰4
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
👍6❤1
✍️ Как читать пользовательский ввод в Python
Это новый подробный туториал от Real Python. Статья объясняет, как считывать ввод пользователя с клавиатуры при помощи функции input(). Она рассматривает такие темы, как:
▪️считывание различных типов данных,
▪️обработка ошибок,
▪️ чтение нескольких вводов от пользователя.
Также обсуждается защита чувствительных данных с использованием модуля getpass и автоматизация проверки ввода с помощью PyInputPlus.
🔗 Ссылка на статью
Это новый подробный туториал от Real Python. Статья объясняет, как считывать ввод пользователя с клавиатуры при помощи функции input(). Она рассматривает такие темы, как:
▪️считывание различных типов данных,
▪️обработка ошибок,
▪️ чтение нескольких вводов от пользователя.
Также обсуждается защита чувствительных данных с использованием модуля getpass и автоматизация проверки ввода с помощью PyInputPlus.
🔗 Ссылка на статью
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
🥤🛡️ Как сделать Flask-приложение неуязвимым: полное руководство по защите от хакерских атак
Лучшие практики по созданию надежного и безопасного Flask-приложения, включая защиту от XSS/CSRF и API, созданных с помощью Flask.
👉 Читать статью
👉 Зеркало
Лучшие практики по созданию надежного и безопасного Flask-приложения, включая защиту от XSS/CSRF и API, созданных с помощью Flask.
👉 Читать статью
👉 Зеркало
😁26🔥11❤3❤🔥2