Какой алгоритм сортировки используют функции sort() и sorted() в Python?
Python использует алгоритм TimSort. В худшем случае его сложность составляет O(N logN). Это гибридный алгоритм, сочетающий сортировку вставками и сортировку слиянием.
👩💻 Вот как он работает вкратце:
▪️Возьмём в качестве примера массив arr = {4, 2, 8, 6, 1, 5, 9, 3, 7}. Разделим его на подпоследовательности, называемые runs.
▪️Каждый run сортируется с помощью сортировки вставками.
Отсортированные runs: [2, 4], [6, 8], [1, 5, 9], [3, 7]
Обновлённый массив: [2, 4, 6, 8, 1, 5, 9, 3, 7]
▪️Отсортированные подпоследовательности сливаются в единый массив.
Финальный массив: [1, 2, 3, 4, 5, 6, 7, 8, 9].
#вопросы_с_собеседований
Python использует алгоритм TimSort. В худшем случае его сложность составляет O(N logN). Это гибридный алгоритм, сочетающий сортировку вставками и сортировку слиянием.
👩💻 Вот как он работает вкратце:
▪️Возьмём в качестве примера массив arr = {4, 2, 8, 6, 1, 5, 9, 3, 7}. Разделим его на подпоследовательности, называемые runs.
▪️Каждый run сортируется с помощью сортировки вставками.
Отсортированные runs: [2, 4], [6, 8], [1, 5, 9], [3, 7]
Обновлённый массив: [2, 4, 6, 8, 1, 5, 9, 3, 7]
▪️Отсортированные подпоследовательности сливаются в единый массив.
Финальный массив: [1, 2, 3, 4, 5, 6, 7, 8, 9].
#вопросы_с_собеседований
👍13❤9🤔1
🔑 PyPI ввёл обязательную двухфакторную аутентификацию (2FA) для всех пользователей
Новые правила вступили в силу 1 января 2024 года. Всем, кто ещё не активировал 2FA, нужно будет это сделать, прежде чем работать и загружать файлы на PyPI. После включения можно будет выполнять действия, связанные с управлением проектами, и генерировать API-токены.
Администрация ресурса объяснила, что применение 2FA позволяет улучшить защиту процесса разработки и обезопасить проекты от внесения вредоносных изменений.
Новые правила вступили в силу 1 января 2024 года. Всем, кто ещё не активировал 2FA, нужно будет это сделать, прежде чем работать и загружать файлы на PyPI. После включения можно будет выполнять действия, связанные с управлением проектами, и генерировать API-токены.
Администрация ресурса объяснила, что применение 2FA позволяет улучшить защиту процесса разработки и обезопасить проекты от внесения вредоносных изменений.
👍15❤2
🧪 Библиотека SQLAlchemy для работы с реляционными базами данных в Python
В конце декабря вышла версия SQLAlchemy 2.0.24. Для установки используйте команду
👩💻 SQLAlchemy позволяет работать с базой данных с помощью объектно-ориентированного кода, не используя SQL-запросы. Впрочем, если последнее необходимо, то есть возможности и для работы с чистыми SQL-запросами. Кроме того, при использовании библиотеки можно без проблем мигрировать с одной базы данных на другую. Здесь можно найти руководство по SQLAlchemy.
🔗 Страница библиотеки на PyPI
В конце декабря вышла версия SQLAlchemy 2.0.24. Для установки используйте команду
pip install SQLAlchemy==2.0.24
👩💻 SQLAlchemy позволяет работать с базой данных с помощью объектно-ориентированного кода, не используя SQL-запросы. Впрочем, если последнее необходимо, то есть возможности и для работы с чистыми SQL-запросами. Кроме того, при использовании библиотеки можно без проблем мигрировать с одной базы данных на другую. Здесь можно найти руководство по SQLAlchemy.
🔗 Страница библиотеки на PyPI
👍15🥰4
💬 Какой фреймворк вы используете в работе чаще — Django, Flask или FastAPI?
❤️ — Django
👍 — Flask
🔥 — FastAPI
🤔 — У меня другой вариант
#интерактив
❤️ — Django
👍 — Flask
🔥 — FastAPI
🤔 — У меня другой вариант
#интерактив
❤181🔥122👍61🤔24🙏2🤩1💯1
-35% на курс основы программирования на Python
🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!
🌟«Основы программирования на Python» — 12 990 ₽ (вместо 19 990 ₽)
Освоите знания для старта карьеры и научитесь программировать на одном из самых востребованных языков программирвоания.
Вас ждет бессрочный доступ ко всем материалам курса и развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/24959bdb
🎄 Новый год начинается с подарков, а хороший подарок для себя — новые знания со скидкой 35%!
🌟«Основы программирования на Python» — 12 990 ₽ (вместо 19 990 ₽)
Освоите знания для старта карьеры и научитесь программировать на одном из самых востребованных языков программирвоания.
Вас ждет бессрочный доступ ко всем материалам курса и развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🔥 Переходите и активируйте вводные занятия курса — https://proglib.io/w/24959bdb
👍4❤1
Видео от автора YouTube-канала luchanos, в котором он понятным языком объясняет, как же устроен интерпретатор Python. Станет ясно, почему в его составе всё-таки есть компилятор (с нюансом).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔1
🐍 Идеи проектов на Python
Сделали для вас подборку туториалов по проектам, которые вполне могут стать вашими пет-проектами или помочь освоить язык.
🖥️ Утилита для записи экрана
Подойдёт для новичков. В статье на GeeksforGeeks подробно объясняется каждый кусок небольшого кода для проекта.
🤖 Telegram-бот
Автор рассказывает, как с помощью Python и Aiogram написать полноценного бота с админкой, оплатой, базой данных, реферальной программой и API OpenAI.
👾 Игра Pong
Создание игры с простейшим визуальным оформлением. Используется библиотека Turtle.
📹 Инструмент для скачивания видео с YouTube на Django
Здесь тоже нет ничего сложного. Применяется модуль pytube.
🧩 «Угадай загаданное слово»
Реализация игры в слова с использованием эмбеддингов.
🔗 Инструмент для сокращения ссылок на FastAPI
Гайд для тех, кто освоил базу Python, и хочет научиться большему.
Сделали для вас подборку туториалов по проектам, которые вполне могут стать вашими пет-проектами или помочь освоить язык.
🖥️ Утилита для записи экрана
Подойдёт для новичков. В статье на GeeksforGeeks подробно объясняется каждый кусок небольшого кода для проекта.
🤖 Telegram-бот
Автор рассказывает, как с помощью Python и Aiogram написать полноценного бота с админкой, оплатой, базой данных, реферальной программой и API OpenAI.
👾 Игра Pong
Создание игры с простейшим визуальным оформлением. Используется библиотека Turtle.
Здесь тоже нет ничего сложного. Применяется модуль pytube.
🧩 «Угадай загаданное слово»
Реализация игры в слова с использованием эмбеддингов.
🔗 Инструмент для сокращения ссылок на FastAPI
Гайд для тех, кто освоил базу Python, и хочет научиться большему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥2🥱2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁87😍6🔥4🥱1🌚1
Это специальные методы, начинающиеся и заканчивающиеся двойными подчёркиваниями. К наиболее известным относятся:
✨init
Используется для инициализации новых объектов.
✨str
Определяeт строковое представление объекта.
✨call
Позволяет объекту класса вести себя как функция.
✨len
Определяет поведение функции len() для пользовательских объектов.
Вот пример использования str:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"I'm {self.name}, and I'm {self.age} years old."
jane = Person("Jane Doe", 25)
str(jane) # -> "I'm Jane Doe, and I'm 25 years old".
✍️ В статье рассматриваются и другие магические методы, а также примеры их применения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
🔥2
Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности и переиспользовать код.
import time
def time_this(func):
def _wrapper(*args, **kwargs):
# получаем стартовое время
start = time.time()
# вызываем функцию, переданную в декоратор
out = func(*args, **kwargs)
# выводим время, которое заняла работа этой функции
print(f"time it took: {time.time() - start:.3f}")
# возвращаем результат функции
return out
# декоратор возвращает метод-обёртку
return _wrapper
@time_this
def do_stuff():
time.sleep(5)
return "Success!"
print(do_stuff())
# -> time it took: 5.003
# -> Success!
🔗 Прочесть оригинальный и более подробный пост про декораторы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🤔5❤2
🤔 Что делает функция zip в Python?
Функция zip используется для создания итератора, который агрегирует элементы из двух или более итерируемых объектов (например, списков, кортежей). Возвращается итератор кортежей, где i-й кортеж содержит i-й элемент из каждой из входных последовательностей. zip останавливается, как только заканчивается самая короткая входная последовательность.
✔️Пример:
#вопросы_с_собеседований
Функция zip используется для создания итератора, который агрегирует элементы из двух или более итерируемых объектов (например, списков, кортежей). Возвращается итератор кортежей, где i-й кортеж содержит i-й элемент из каждой из входных последовательностей. zip останавливается, как только заканчивается самая короткая входная последовательность.
✔️Пример:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
# Используем zip для объединения списков
zipped = zip(list1, list2)
# Преобразуем в список кортежей
zipped_list = list(zipped)
print(zipped_list) # -> [(1, 'a'), (2, 'b'), (3, 'c')]
#вопросы_с_собеседований
👍27
beginners_python_cheat_sheet_pcc_all.pdf
741 KB
✍️🐍 Большая обновлённая шпаргалка по Python для начинающих
Сделана на базе книги Python Crash Course, Third Edition. На 28 страницах шпаргалки охвачены все основные темы, касающиеся языка:
▫️типы данных,
▫️классы,
▫️обработка ошибок,
▫️основные методы для работы с разными типами данных,
▫️тестирование кода,
▫️работа с Pygame, Matplotlib, Plotly,
▫️основы работы с Django,
▫️введение в Git.
🔗Ссылка на сайт книги
Сделана на базе книги Python Crash Course, Third Edition. На 28 страницах шпаргалки охвачены все основные темы, касающиеся языка:
▫️типы данных,
▫️классы,
▫️обработка ошибок,
▫️основные методы для работы с разными типами данных,
▫️тестирование кода,
▫️работа с Pygame, Matplotlib, Plotly,
▫️основы работы с Django,
▫️введение в Git.
🔗Ссылка на сайт книги
👍12🔥8
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🧑💻 Особенности работы в айти: результаты опроса подписчиков
В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.
Вот некоторые выводы:
🧔♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.
🔗 Полный отчёт можно прочесть по этой ссылке
💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.
Вот некоторые выводы:
🧔♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.
🔗 Полный отчёт можно прочесть по этой ссылке
💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
❤14👍5😁3
Media is too big
VIEW IN TELEGRAM
✉️ Создаём приложение для обмена мгновенными сообщениями на Django
В гайде описана простая реализация мессенджера без использования тяжёлых зависимостей (например, Redis). Автор постарался показать самый лёгкий способ добавить обработку событий в реальном времени в Django. Шаблон для визуального оформления в инструкции также есть.
🔗 Текстовый гайд
📹 Пошаговая видеоинструкция
В гайде описана простая реализация мессенджера без использования тяжёлых зависимостей (например, Redis). Автор постарался показать самый лёгкий способ добавить обработку событий в реальном времени в Django. Шаблон для визуального оформления в инструкции также есть.
🔗 Текстовый гайд
📹 Пошаговая видеоинструкция
👍17🔥3❤1
🎉 Python и неопытные программисты: наши лучшие статьи за 2023 год
За 2023 год «Библиотека программиста» опубликовала 227 статей, и Питон второй год подряд в ТОПе.
Вот 5 самых популярных материалов (сохраняй, если не читал):
🐛 9 признаков неопытного программиста
😢 Обратная сторона медали: 9 причин, почему тебе не нужно идти в IT
🚩 Кому не подходит работа в IT: 6 красных флагов
🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
🐍 Самоучитель по Python для начинающих. Часть 11: Функции с позиционными и именованными аргументами
Ещё больше итогов года, а также ссылки на «Самоучитель по Python для начинающих» здесь 👈
За 2023 год «Библиотека программиста» опубликовала 227 статей, и Питон второй год подряд в ТОПе.
Вот 5 самых популярных материалов (сохраняй, если не читал):
🐛 9 признаков неопытного программиста
😢 Обратная сторона медали: 9 причин, почему тебе не нужно идти в IT
🚩 Кому не подходит работа в IT: 6 красных флагов
🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
🐍 Самоучитель по Python для начинающих. Часть 11: Функции с позиционными и именованными аргументами
Ещё больше итогов года, а также ссылки на «Самоучитель по Python для начинающих» здесь 👈
🔥10👍3🤔3❤2
💬 Представьте, что к вам пришёл знакомый, который решил стать айтишником. Он пока не знает, чем конкретно хотел бы заниматься, но в курсе, что вы — Python-разработчик. Стали бы вы советовать ему изучить Python?
❤️ — да
🤔 — нет
👍 — не знаю
👇 Аргументируйте в комментариях
#интерактив
❤️ — да
🤔 — нет
👍 — не знаю
👇 Аргументируйте в комментариях
#интерактив
❤141🤔56👍38😁7
💻 Насколько хорошо GPT и другие LLM разбираются в коде?
Исследователи создали бенчмарк CRUXEval, который позволяет протестировать большие языковые модели на 800 Python-функциях. В тест включены две задачи: предсказание входа и предсказание выхода.
Для бенчмарка исследователи сначала сгенерировали набор функций и получили выходы для них. Затем в наборе оставили только небольшие задачи, решение которых для опытного программиста должно занять пару минут. На них протестировали основные LLM.
✔️Так, лучшей оказалась gpt-4-0613. Она справлялась с предсказанием входа в 70% случаев и с предсказанием выхода в 69% случаев. Также выяснилось, что есть задачи, для которых модель неспособна дать верный ответ (пример на картинке 👆).
Можно самостоятельно поэкспериментировать с бенчмарком и LLM. Инструкция есть в репозитории.
👩💻 Репозиторий на GitHub
🔗 Демоверсия
Исследователи создали бенчмарк CRUXEval, который позволяет протестировать большие языковые модели на 800 Python-функциях. В тест включены две задачи: предсказание входа и предсказание выхода.
Для бенчмарка исследователи сначала сгенерировали набор функций и получили выходы для них. Затем в наборе оставили только небольшие задачи, решение которых для опытного программиста должно занять пару минут. На них протестировали основные LLM.
✔️Так, лучшей оказалась gpt-4-0613. Она справлялась с предсказанием входа в 70% случаев и с предсказанием выхода в 69% случаев. Также выяснилось, что есть задачи, для которых модель неспособна дать верный ответ (пример на картинке 👆).
Можно самостоятельно поэкспериментировать с бенчмарком и LLM. Инструкция есть в репозитории.
👩💻 Репозиторий на GitHub
🔗 Демоверсия
👍11😁3
Группы исключений появились в языке, начиная с Python 3.11. Для них используется специальный новый оператор except*. Символ звёздочки указывает на то, что except может обработать несколько исключений.
В более старых версиях Python интерпретатор мог распространять только одно исключение за раз. Цепочки исключений, представленные в PEP 3134, объединяли лишь связанные исключения, но возникали ситуации, когда было нужно распространить одновременно несколько несвязанных исключений. Например, функция из стандартной библиотеки socket.create_connection может пытаться подключиться к нескольким разным адресам. Если все попыки провалятся, стоило бы сообщить об этом пользователю.
try:
raise ExceptionGroup('Example ExceptionGroup', (
TypeError('Example TypeError'),
ValueError('Example ValueError'),
KeyError('Example KeyError'),
AttributeError('Example AttributeError')
))
except* TypeError:
...
except* ValueError as e:
...
except* (KeyError, AttributeError) as e:
...
🔗Прочесть подробнее можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26
🚀 Ускоряем работу Python с Numba
Numba — это JIT-компилятор, способный повысить производительность путём трансляции кода на Python в машинный код прямо во время работы программы. Так, Numba анализирует функцию, определяет типы данных и затем компилирует её в машинный код.
✔️ Пример:
В статье дана простая инструкция, как начать работу с этим инструментом. Есть мнение, что Numba выводит скорость Python примерно на уровень Julia.
Numba — это JIT-компилятор, способный повысить производительность путём трансляции кода на Python в машинный код прямо во время работы программы. Так, Numba анализирует функцию, определяет типы данных и затем компилирует её в машинный код.
✔️ Пример:
@jit(nopython=True)
def sum_array(arr):
result = 0
for i in arr:
result += i
return result
В статье дана простая инструкция, как начать работу с этим инструментом. Есть мнение, что Numba выводит скорость Python примерно на уровень Julia.
👍21