🐍Выражения-генераторы в Python
Внешне похожи на List comprehension, который позволяет создавать списки. Однако выражение-генератор возвращает итератор, что более эффективно по памяти. Это значит, что элементы коллекции вызываются по очереди вместо создания полной коллекции сразу.
В примере выше по запросу вычисляются квадраты чисел от 0 до 999. После вызова функции next() дважды цикл for продолжит выводить оставшиеся квадраты чисел, начиная с 4 (2^2). genexpr сохраняет своё состояние между запросами.
#код
Внешне похожи на List comprehension, который позволяет создавать списки. Однако выражение-генератор возвращает итератор, что более эффективно по памяти. Это значит, что элементы коллекции вызываются по очереди вместо создания полной коллекции сразу.
genexpr = (x**2 for x in range(1000))
print(genexpr) # -> <generator object <genexpr> at 0x784874692030>
print(next(genexpr)) # -> 0
print(next(genexpr)) # -> 1
for num in genexpr:
print(num)
В примере выше по запросу вычисляются квадраты чисел от 0 до 999. После вызова функции next() дважды цикл for продолжит выводить оставшиеся квадраты чисел, начиная с 4 (2^2). genexpr сохраняет своё состояние между запросами.
#код
👍20
Forwarded from Библиотека программиста | программирование, кодинг, разработка
✍️ Почему отсутствие технической документации убьёт ваш проект?
Читатель «Библиотеки программиста» объясняет, почему техническая документация важна, а её наличие — обязательная составляющая успеха проекта. Не верите? 5 (почти) реальных историй, представленных в статье, вас убедят!
🔗 Читать статью
🔗 Зеркало
Читатель «Библиотеки программиста» объясняет, почему техническая документация важна, а её наличие — обязательная составляющая успеха проекта. Не верите? 5 (почти) реальных историй, представленных в статье, вас убедят!
🔗 Читать статью
🔗 Зеркало
👍15
✨ Новый год — новые знания
Автор одного из самых высокооценённых курсов по Python на Udemy дарит бесплатный доступ к нему. Речь о The Python Mega Course 2022: Build 10 Real-World Applications с рейтингом 4.8.
Курс содержит:
🐍 Основы Python (типы данных, функции, модули и прочее)
🐍 Гайды по созданию интерактивной карты в вебе, приложения для распознавания движений через вебку, географического веб-приложения с Flask и Pandas.
🐍 Обработку изображений и видео.
🐍 Парсинг веб-страниц.
🐍 ООП.
И это далеко не весь список. Чтобы получить доступ к курсу, нужно:
✔️Зайти в свой аккаунт на Udemy (или создать новый).
✔️Перейти на страницу курса.
✔️Ввести пароль
Автор одного из самых высокооценённых курсов по Python на Udemy дарит бесплатный доступ к нему. Речь о The Python Mega Course 2022: Build 10 Real-World Applications с рейтингом 4.8.
Курс содержит:
🐍 Основы Python (типы данных, функции, модули и прочее)
🐍 Гайды по созданию интерактивной карты в вебе, приложения для распознавания движений через вебку, географического веб-приложения с Flask и Pandas.
🐍 Обработку изображений и видео.
🐍 Парсинг веб-страниц.
🐍 ООП.
И это далеко не весь список. Чтобы получить доступ к курсу, нужно:
✔️Зайти в свой аккаунт на Udemy (или создать новый).
✔️Перейти на страницу курса.
✔️Ввести пароль
mega_course
.👍23
🧑💻 Первый в этом году #дайджест по Python
🐍 Как я устроился Python разработчиком без опыта. Реальное собеседование
Ролик Вадима Новоселова с записью реального собеседования на позицию Python-разработчика. Автор получил оффер на 250 тысяч рублей.
🐍 Что произошло в мире Python за 2023 год
Выпуск подкаста MoscowPython про итоги года с Григорием Петровым и Михаилом Корнеевым.
🐍 Настройка WSGI- и ASGI-серверов для Flask, Django и FastAPI
В статье приводятся лучшие практики для настройки таких веб-серверов, как Gunicorn, Uvicorn и Hypercorn.
🐍 Пишем свой GraphQL клиент на Python
Это пошаговое руководство по созданию своего GraphQL клиента на Python с нуля.
🐍 Учимся анализировать данные на примере API Codewars
Основной акцент сделан на Python и практическом применении библиотек для анализа данных, таких как Pandas и Matplotlib.
🐍 Как я устроился Python разработчиком без опыта. Реальное собеседование
Ролик Вадима Новоселова с записью реального собеседования на позицию Python-разработчика. Автор получил оффер на 250 тысяч рублей.
🐍 Что произошло в мире Python за 2023 год
Выпуск подкаста MoscowPython про итоги года с Григорием Петровым и Михаилом Корнеевым.
🐍 Настройка WSGI- и ASGI-серверов для Flask, Django и FastAPI
В статье приводятся лучшие практики для настройки таких веб-серверов, как Gunicorn, Uvicorn и Hypercorn.
🐍 Пишем свой GraphQL клиент на Python
Это пошаговое руководство по созданию своего GraphQL клиента на Python с нуля.
🐍 Учимся анализировать данные на примере API Codewars
Основной акцент сделан на Python и практическом применении библиотек для анализа данных, таких как Pandas и Matplotlib.
👍15❤1
Можно ли сказать, что интерпретатор Python (CPython) имеет в составе компилятор?
Anonymous Poll
28%
Да
59%
Да, но есть нюанс
13%
Нет
🤔22
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
🐍 А вы знаете про «Дзен Пайтона»?
Если выполнить
Он разместил эти принципы в списке рассылки Python в 1999 году. Вместе они отражают философию дизайна языка.
Вот их перевод на русский:
▫️Красивое лучше, чем уродливое.
▫️Явное лучше, чем неявное.
▫️Простое лучше, чем сложное.
▫️Прямое лучше, чем запутанное.
▫️Плоское лучше, чем вложенное.
▫️Разреженное лучше, чем плотное.
▫️Читаемость имеет значение.
▫️Особые случаи не настолько особые, чтобы нарушать правила.
▫️При этом практичность важнее безупречности.
▫️Ошибки никогда не должны замалчиваться.
▫️Если они не замалчиваются явно.
▫️Встретив двусмысленность, отбрось искушение угадать.
▫️Должен существовать один и, желательно, только один очевидный способ сделать это.
▫️Хотя он поначалу может быть и не очевиден, если вы не голландец.
▫️Сейчас лучше, чем никогда.
▫️Хотя никогда зачастую лучше, чем прямо сейчас.
▫️Если реализацию сложно объяснить — идея плоха.
▫️Если реализацию легко объяснить — идея, возможно, хороша.
▫️Пространства имён — отличная штука! Будем делать их больше!
Если выполнить
import this
в интерпретаторе, то выведется список принципов работы с Python, составленный Тимом Петерсом.Он разместил эти принципы в списке рассылки Python в 1999 году. Вместе они отражают философию дизайна языка.
Вот их перевод на русский:
▫️Красивое лучше, чем уродливое.
▫️Явное лучше, чем неявное.
▫️Простое лучше, чем сложное.
▫️Прямое лучше, чем запутанное.
▫️Плоское лучше, чем вложенное.
▫️Разреженное лучше, чем плотное.
▫️Читаемость имеет значение.
▫️Особые случаи не настолько особые, чтобы нарушать правила.
▫️При этом практичность важнее безупречности.
▫️Ошибки никогда не должны замалчиваться.
▫️Если они не замалчиваются явно.
▫️Встретив двусмысленность, отбрось искушение угадать.
▫️Должен существовать один и, желательно, только один очевидный способ сделать это.
▫️Хотя он поначалу может быть и не очевиден, если вы не голландец.
▫️Сейчас лучше, чем никогда.
▫️Хотя никогда зачастую лучше, чем прямо сейчас.
▫️Если реализацию сложно объяснить — идея плоха.
▫️Если реализацию легко объяснить — идея, возможно, хороша.
▫️Пространства имён — отличная штука! Будем делать их больше!
👍38
Какой алгоритм сортировки используют функции 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