Pythoner
Открыть в Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Больше6 809
Подписчики
+124 часа
+27 дней
-3730 день
Архив постов
6 809
✈️Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатывает его инициализацию.
__new__ вызывается автоматически при вызове имени класса (при создании экземпляра), тогда как init вызывается каждый раз, когда экземпляр класса возвращается __new__, передавая возвращаемый экземпляр в __init__ в качестве параметра self, поэтому даже если вы сохранили экземпляр где-нибудь глобально/статически и возвращали его каждый раз из __new__, для него все-равно будет каждый раз вызываться __init__.
Пример:
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
print("Создание объекта")
cls._instance = super().__new__(cls)
return cls._instance
def __init__(self):
print("Инициализация объекта")
a = Singleton()
b = Singleton()
⬆️Вывод:
Создание объекта Инициализация объекта Инициализация объекта
6 809
✈️Модульные тесты (или unit-тесты) — это автоматические тесты, которые проверяют работу отдельных функций, методов или классов в изоляции от остальной программы.
➡️Цель модульного теста — убедиться, что маленький блок кода работает правильно при разных входных данных:
# Функция, которую будем тестировать
def add(a, b):
return a + b
Теперь напишем модульный тест с использованием стандартного модуля unittest:
import unittest
class TestAddFunction(unittest.TestCase):
def test_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
def test_add_negative_numbers(self):
self.assertEqual(add(-1, -2), -3)
def test_add_zero(self):
self.assertEqual(add(0, 5), 5)
if __name__ == '__main__':
unittest.main()
➡️Зачем нужны модульные тесты:
- Находят ошибки в логике функции.
- Упрощают рефакторинг (можно смело менять код — тесты покажут, что сломалось).
- Помогают при разработке: можно быстро проверить, работает ли новый код.
- Улучшают структуру кода — приходится писать функции так, чтобы их легко тестировать.
🐍 Pythoner6 809
✈️Функция .strip() в Python по умолчанию удаляет пробелы в начале и конце строки. Это может быть особенно полезно при работе с данными, которые могут содержать случайные пробелы, которые могут помешать анализу данных или программированию. Например, строка ' Привет, мир! ' станет 'Привет, мир!' после использования .strip().
s = ' Привет, мир! '
print(s.strip()) # Выведет: 'Привет, мир!'
➡️.strip() с аргументами
В дополнение к удалению пробелов, .strip() также может быть использован для удаления определенных символов из строки, передав их в качестве аргумента. Например, если мы хотим удалить определенный символ, такой как '#', из строки, мы можем это сделать, вызвав .strip('#'). Это удалит все экземпляры '#' из начала и конца строки.
s = '###Привет, мир!###'
print(s.strip('#')) # Выведет: 'Привет, мир!'
➡️.lstrip() и .rstrip()
Python также предлагает две вариации функции .strip(), которые являются .lstrip() и .rstrip(). Эти функции работают так же, как .strip(), но .lstrip() удаляет символы только с левой стороны строки, а .rstrip() - только с правой стороны.
s = '###Привет, мир!###'
print(s.lstrip('#')) # Выведет: 'Привет, мир!###'
print(s.rstrip('#')) # Выведет: '###Привет, мир!'
🐍 Pythoner6 809
Авторский канал посвященый языку Python и игровому движку для 2D и 3D игр - Ursina Engine . Подробные гайды и примеры кода.👨💻. Заходи и узнаешь , как написать игру на Python без сложностей!!!😉
А также автор канала запустил обучающий курс по Ursina Engine.
Все необходимые ссылки Вы найдёте на канале!
Присоединяйся к нашему сообществу!!!
6 809
⚙️ Нашли для вас самый крутой блог senior python-программиста
На своëм канале он уже осветил такие темы, как:
— Почему твой Python-код медленный?
— Walrus-оператор в Python
— Почему нужно писать is None, а не == None?
— Почему or в Python работает не так, как ты думаешь?
— Почему нельзя использовать изменяемые значения по умолчанию?
👀Подписывайся, чтобы не потерять
6 809
✈️Пагинация — это разбиение большого списка данных на страницы. Она помогает не перегружать интерфейс и backend. Например, когда выводим 10 товаров на страницу, а не все 1000 сразу.
➡️Вот простой пример пагинации с использованием Python и Flask:
from flask import Flask, request, jsonify
app = Flask(__name__)
# Наши "данные" — список из 100 чисел
DATA = list(range(1, 101))
@app.route('/items')
def get_items():
# Получаем параметры из запроса
page = int(request.args.get('page', 1))
per_page = int(request.args.get('per_page', 10))
# Вычисляем границы
start = (page - 1) * per_page
end = start + per_page
# Отдаём нужный кусок
return jsonify({
'page': page,
'per_page': per_page,
'items': DATA[start:end]
})
if __name__ == '__main__':
app.run(debug=True)
🔫Пример запроса:
http://localhost:5000/items?page=3&per_page=5 #Ответ: элементы с 11 по 15🐍 Pythoner
6 809
🐧Нашли для вас самый крутой блог Администратора Linux
На своëм канале он уже осветил такие темы, как:
— Что такое ядро Linux и зачем оно нужно?
— Как защитить свой Linux от взлома
— Как создать собственный ISO-образ в Linux
— Linux и управление пакетами
— Процессы в Linux и отладка зависаний
👀Подписывайся, чтобы не потерять
6 809
✈️Requests-HTML — это библиотека Python, которая объединяет простоту Requests и мощность PyQuery для парсинга HTML. Она позволяет не только извлекать данные из веб-страниц, но и выполнять JavaScript, что делает её идеальным инструментом для веб-скрапинга современных сайтов с динамическим контентом.
➡️Основные возможности Requests-HTML:
- Парсинг HTML: Requests-HTML предоставляет удобные методы для парсинга HTML-документов с помощью CSS-селекторов и XPath.
- Выполнение JavaScript: Библиотека может выполнять JavaScript на странице, что позволяет получать данные, загруженные динамически.
- Сессии и куки: Поддерживает работу с сессиями и куки, что полезно для авторизации и поддержания состояния.
➡️Примеры использования:
1. Парсинг HTML с CSS-селекторами:
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://example.com')
# Извлечение заголовков
titles = r.html.find('h1')
for title in titles:
print(title.text)
2. Выполнение JavaScript:
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://example.com')
# Выполнение JavaScript на странице
r.html.render()
# Извлечение динамического контента
dynamic_content = r.html.find('#dynamic-element', first=True)
print(dynamic_content.text)
⛓Полезные ссылки:
Официальный сайт
GitHub
🐍 Pythoner6 809
Подержанные автомобили в автосалоне со скидкой до 20%
В наличии 3500 автомобилей с пробегом под Ваши потребности по доступным ценам. Быстрое получение кредита по двум документам на лучших условиях.
Комплект шин в подарок при покупке авто!👍
Выгодные предложения. Бюджетные варианты. Широкий ассортимент подержанных машин.
— Спецпредложения до 100 000₽
— Гарантия 1 год
— Льготные программы кредитования
— Кредит по двум документам
— Первоначальный взнос от 15%
⚡ 15 банков-партнеров. Акции и подарки. Одобрение кредита за 60 минут. Выгодная ставка по кредиту.
Посмотрите цены в каталоге и выберите свой автомобиль на сайте уже сейчас!
Посмотреть каталог
Изучите все условия кредита (займа) на сайте в соответствующем разделе. Оценивайте свои финансовые возможности и риски. Финансовые услуги оказывает: АО "Альфа-Банк", ПАО "Банк ВТБ", Альфа-Страхование.
#реклама
tomsk.crystal-motors.ru
О рекламодателе
6 809
🌐GitLab - это веб-платформа для управления репозиториями Git, используемыми для хранения и управления исходным кодом приложений. Это инструмент для разработки программного обеспечения, который предоставляет широкий набор функций, в том числе управление версиями, совместную работу, непрерывную интеграцию и непрерывную доставку.
➡️Управление версиями
Одной из основных функций GitLab является управление версиями. Эта функция позволяет разработчикам сохранять различные версии кода, которые могут быть использованы для восстановления предыдущих версий при необходимости. Благодаря системе контроля версий, которая реализована в GitLab, разработчики могут работать над одним и тем же проектом, не опасаясь потерять свою работу.
➡️Совместная работа
GitLab также предоставляет широкие возможности для совместной работы над проектами. Разработчики могут создавать задачи, определять приоритеты и назначать ответственных за их выполнение. Это позволяет упростить коммуникацию между разработчиками и ускорить процесс разработки.
➡️Непрерывная интеграция и доставка
GitLab также предоставляет инструменты для непрерывной интеграции и доставки (CI/CD), что позволяет автоматизировать процесс сборки, тестирования и развертывания кода. Это ускоряет процесс разработки и повышает качество кода.
🐍 Pythoner
6 809
🔥 Самые нужные каналы для Python разработчика, чтобы расти в доходе 💸
• Python | Вопросы собесов
• Python | Вакансии с удаленкой
• Python | LeetCode
• Python | Тесты
Подпишись, чтобы не потерять ☝️
6 809
🤔Разбор
Функция any() используется для проверки наличия хотя бы одного True элемента в итерируемом объекте.
У нас есть:
False —> False
0 —> False
[] —> пустой список —> False
() —> пустой кортеж —> False
Все элементы - False, а функция any() требует хотя бы один True.
Ответ: False
🐍 Pythoner
6 809
Крупнейший университет искусственного интеллекта
Приглашаем на бесплатный однодневный интенсив по AI!
Освой искусственный интеллект для профессионального роста: создавай нейросети, автоматизируй бизнес-задачи и зарабатывай на AI-решениях.
✨ 8 000+ студентов со всего мира
✨ 600+ AI-проектов, созданных студентами
✨ Сборная Университета — победители крупнейших AI-хакатонов России
✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие)
✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие)
Будем рады видеть тебя в наших рядах!
Узнать больше
#реклама 16+
neural-university.ru
О рекламодателе
6 809
⚡️Пошаговый план: как стать аналитиком данных в 2025
Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?
Андрон Алексанян — эксперт по аналитике с 8 летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и четкий план, как устроиться в аналитику быстрее, даже если у вас нет опыта.
Что будет на вебинаре?
🟠 Разберем полный роадмап: что учить, в каком порядке, до какого уровня;
🟠 Лайфхаки трудоустройства:
— Покажем реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— Обсудим какие отклики работают, а какие сразу отправляют в корзину;
— Изнанка найма: инсайдерский взгляд на процессы отбора
🟠 Практические техники для новичков: разберём, как компенсировать недостаток опыта и быстро закрывать пробелы в знаниях.
🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от нас, который поможет бустануть карьеру.
😶Зарегистрироваться на бесплатный вебинар
6 809
✈️Декоратором называется функция, которая принимает функцию с таким же именем, как у исходной, но с расширенной функциональностью. Декораторы часто используются во фреймворках, чтобы упростить интеграцию пользовательских функций с фреймворком.
➡️Паттерн Декоратор настолько полезен, что в Python встроена специальная поддержка для него. Декорировать можно как функции, так и методы.
➡️Кроме того, Python поддерживает декораторы классов: функции, которые принимают класс в качестве аргумента и возвращают новый класс с таким же именем, как у исходного, но с дополненной функциональностью.
Иногда декораторы классов удобно использовать как альтернативу производным классам.
🐍 Pythoner
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
