Pythoner
Open in Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Show more6 774
Subscribers
-224 hours
-357 days
-5730 days
Posts Archive
6 774
📋Как создать список, который хранит в себе объекты в Python (на примере списка с людьми)
Python предоставляет нам множество возможностей для работы с данными. Одной из таких возможностей является использование списков для хранения объектов. Сейчас мы рассмотрим, как создать класс, создать объекты на основе этого класса, поместить эти объекты в список и обратиться к ним.
👀 1. Создание класса
Для начала, давайте создадим класс, который будет представлять людей. Класс будет иметь атрибуты "имя" и "возраст". Вот пример такого класса:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
👀 2. Создание объектов
Теперь, когда у нас есть класс, мы можем создать объекты на его основе. Например, давайте создадим двух людей:
person1 = Person("John", 25)
person2 = Person("Alice", 30)
👀 3. Помещение объектов в список
Чтобы поместить объекты в список, мы можем использовать метод append(). Например, чтобы создать список людей и добавить туда наших двух людей, мы можем написать следующий код:
people = []
people.append(person1)
people.append(person2)
Теперь у нас есть список people, в котором хранятся объекты, представляющие двух людей.
👀 4. Обращение к объектам в списке
Чтобы обратиться к объектам в списке, мы можем использовать индексы. Например, чтобы получить имя первого человека в списке people, мы можем написать следующий код:
first_person_name = people[0].name
Теперь в переменной first_person_name будет храниться значение "John".6 774
Конструкция try-except-else
Конструкция try-except-else используется для обработки исключений. Особенность этой конструкции заключается в
else, этот блок выполняется, если в блоке try не было исключений.
В этом примере в блоке try происходит деление на ноль, которое генерирует исключение ZeroDivisionError. Оно перехватывается в блоке except и обрабатывается. Блок else не выполняется, так как было исключение.6 774
Библиотека PyQt6
PyQt6 — это кроссплатформенная библиотека для создания графических пользовательских интерфейсов. Она позволяет разрабатывать приложения с графическим интерфейсом для desktop и mobile устройств.
PyQt6 основана на фреймворке Qt и использует систему сигналов и слотов для организации взаимодействия в приложении.
С помощью этой библиотеки можно создавать оконные приложения, виджеты, диалоги, меню и другие элементы GUI.
PyQt6 широко применяется для разработки кроссплатформенных приложений под Windows, Linux и macOS.6 774
🐍Оператор моржа в Python := 🦭
В программировании, оператор моржа в Python, также известный как оператор присваивания с условием, является нововведением в версии Python 3.8. Он предоставляет удобный способ проверить условие и присвоить значение переменной, если условие истинно.
Оператор моржа в Python обозначается двумя символами ":= ", за которыми следует символ ">" для сравнения. Этот оператор может быть использован в выражениях if и while, чтобы одновременно проверить условие и присвоить значение переменной. Например:
if (x := some_function()) > 10:
print("x is greater than 10")
else:
print("x is less than or equal to 10")
В этом примере, если значение, возвращаемое функцией some_function(), больше 10, то оно будет присвоено переменной x, и будет выведено сообщение "x is greater than 10". В противном случае будет выведено сообщение "x is less than or equal to 10".
➕ Преимущества использования оператора моржа
Оператор моржа предлагает несколько преимуществ, которые могут значительно упростить кодирование. Во-первых, он позволяет объединить проверку условия и присваивание значения в одной строке, что делает код более компактным и легким для чтения. Во-вторых, он устраняет необходимость использования временных переменных для хранения результатов выражений, что уменьшает количество кода и повышает эффективность. Наконец, оператор моржа может быть использован в циклах, что позволяет более эффективно использовать ресурсы и улучшить производительность программы.6 774
Разбор ❓
🎊В переменную L будет помещен список [1, 1, 1, 2, 2, 2]
Далее мы считаем длину set'a этого списка. set убирает все повторяющиеся элементы —> длина 1, 2 —> 2
Далее то же самое, только со всей длиной списка —> 6
Задача на внимательность: выводим выражение 2 in 6 —> мы не можем in'ом проверять int в int'е.
Ответ: ошибка
кто попался?🎊
6 774
🐍Метод id()
Метод id() возвращает уникальный идентификатор объекта.
Каждый объект в Python имеет свой идентификатор, который назначается при создании объекта. Этот идентификатор гарантированно уникален в пределах жизни объекта.
id() позволяет получить числовое представление идентификатора объекта. Это может быть полезно при отладке и тестировании программы.6 774
❓ Что такое Linked List в примере на Python'e?
Linked List (связанный список) - это структура данных, которая позволяет хранить и организовывать элементы в памяти компьютера. Он состоит из узлов, каждый из которых содержит данные и ссылку на следующий узел. Отличительной особенностью связанного списка является то, что элементы могут быть расположены в разных областях памяти и связаны между собой с помощью ссылок.
👩💻 Пример на Python:
Давайте рассмотрим пример создания связанного списка на языке программирования Python. Для начала, мы создадим класс Node, который будет представлять узел связанного списка. Каждый узел будет содержать данные и ссылку на следующий узел.
class Node:
def __init__(self, data):
self.data = data
self.next = None
Затем мы создадим класс LinkedList, который будет представлять сам связанный список. У него будет ссылка на первый узел списка (голова).
class LinkedList:
def __init__(self):
self.head = None
Теперь мы можем добавить методы для работы со связанным списком, такие как добавление элемента и вывод списка.
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def display(self):
current = self.head
while current:
print(current.data)
current = current.next
Теперь мы можем создать экземпляр класса LinkedList и использовать его для создания и отображения связанного списка.
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.display()
Вывод:
1 2 3
6 774
🖥 Коды состояния HTTP
Каждый из кодов сгруппирован в разные категории и рассказывает уникальную историю о результате запроса.
1. 1xx — Informational/Информационный: предварительные коды состояния, указывающие, что сервер получил запрос и продолжает процесс.
2. 2xx — Success/Успех: означает, что запрос был успешным, показывая различные результаты, например:
- 200 ОК: Все прошло гладко, сервер успешно обработал запрос.
- 201 Created/Создано: новый ресурс успешно создан.
3. 3xx — Redirection/Перенаправление: означает, что для выполнения запроса необходимо выполнить дополнительные действия, например:
- 301 Moved Permanently/Перемещено навсегда: запрошенный ресурс был окончательно перемещен в другое место.
4. 4xx — Client Error/Ошибка клиента: эти коды обозначают ошибки, вызванные запросом клиента, в том числе:
- 400 Bad Request: сервер не может понять запрос из-за ошибки клиента.
- 404 Not Found/Не найден: запрошенный ресурс не существует на сервере.
5. 5xx — Server Error/Ошибка сервера: указывает на проблемы на стороне сервера, например:
- 500 Internal Server Error/Внутренняя ошибка сервера: на сервере произошло что-то неожиданное, что привело к ошибке.
6 774
🐍collections.MutableMapping
Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь).
Он наследуется от интерфейса
Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear.
❗Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь.
Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.6 774
🌐На Реддите составили таблицу с лучшими нейросетями для разных задач на конец 2023 года
6 774
Атрибут __slots__
Этот атрибут позволяет ограничить создание новых атрибутов в экземплярах класса.
емплярах клопределяется как список имен атрибутов в определении класса. Экземпляры класса сэкземплярахмогут иметь атрибуты только с именами, определенными воздание нов Попытка создать новый атрибут приведет к ошибке.
Использованиевых атрибутэкономит память, так как экземпляры не создают словарьоздание нодля атрибутов.
__
Этот атне наследуются, для каждого подкласса нужно определять свои слоты.
Атрибут полезен, когда заранее известны все атрибуты класса и не нужна динамическая задача новых. Например, для простых данных или immutable классов.
6 774
Функции, поддерживающие только именованные аргументы (kwargs)
**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.
В функциях после позиционных и обычных именованных аргументов указывают параметр
**kwargs.
В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов.
Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию.
Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args.6 774
🖥 Context Managers, a must-use Python feature
Most know them for file handling, but they shine in other areas too, like managing database connections.
Контекстные менеджеры, обязательные для использования 🐍 функции Python.
Вот почему они полезны:
- Управление ресурсами: С их поимщью вы можете Автоматизировать настройку и удаление ресурсов для более чистого, защищенного от утечек кода.
- Обработка ошибок: Элегантно управляйте исключениями, обеспечивая экономию ресурсов.
- Ясность кода: с помощью менеджеров задается четкая область использования ресурсов, что повышает читабельность.
Большинство использует контекстные менеджер для работе с файлами, но они отлично работают и в других случаях, например, при управлении соединениями с базами данных.
6 774
⚡️ Отус приглашает 11 января в 19:00 мск на бесплатный вебинар «Освойте искусство обработки Excel-таблиц с Pandas».
Вебинар приурочен к старту курса «Специализация Python Developer».
На вебинаре вы научитесь:
– Основам Pandas (создание, чтение, запись данных в Excel)
– Продвинутым методам обработки таблиц (фильтрация, сортировка, группировка данных)
– Визуализации данных (создание информативных графиков из Excel-таблиц)
– Автоматизации рутинных задач (ускорение работы с помощью функций Pandas)
Также мы обеспечим вас всеми необходимыми материалами и пошаговыми инструкциями, чтобы вы смогли эффективно применять полученные знания на практике!
➡️ Регистрация на вебинар: https://otus.pw/w7gt6/?erid=LjN8K4TUo
Этот вебинар идеально подходит как для новичков, так и для опытных пользователей, стремящихся улучшить свои навыки в обработке и анализе данных.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Available now! Telegram Research 2025 — the year's key insights 
