Pythoner
7.22K subscribers
862 photos
28 videos
4 files
657 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️Werkzeug предлагает множество полезных функций для разработки веб-приложений. Одной из главных особенностей этой библиотеки является ее простота использования. Werkzeug предоставляет простой API для обработки HTTP-запросов и ответов, а также для работы с URL-адресами. Она также поддерживает различные протоколы, такие как WSGI (Web Server Gateway Interface), что делает ее идеальным выбором для создания веб-приложений в Python.

Werkzeug также имеет встроенные инструменты для обработки форм и файлов, что значительно упрощает процесс обработки пользовательского ввода.

➡️Преимущества:

Одним из главных преимуществ использования Werkzeug является его гибкость. Она предоставляет разработчику полный контроль над процессом обработки запросов и ответов, что позволяет создавать высокопроизводительные и эффективные веб-приложения.

Еще одним преимуществом Werkzeug является его интеграция с популярными фреймворками веб-разработки, такими как Flask и Django.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
➡️Функция ord() возвращает целое число, представляющее символ Юникода. Эта функция принимает строку единичной длины в качестве аргумента и возвращает эквивалентность переданного аргумента в Юникоде.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
➡️У списка (и только у него) есть особые методы .sort() и .reverse() которые делают тоже самое, что соответствующие функции sorted() и reversed(), но при этом:

💬Меняют сам исходный список, а не генерируют новый.

💬Возвращают None, а не новый список.

💬Поддерживают те же дополнительные аргументы.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1
➡️Допустим данные нужно отсортировать сначала по столбцу А по возрастанию, затем по столбцу B по убыванию, и наконец по столбцу C снова по возрастанию.

➡️Если данные в столбце B числовые, то при помощи подходящей функции в key можно поменять знак у элементов B, что приведёт к необходимому результату.
А если все данные текстовые? Тут есть такая возможность.
Дело в том, что сортировка sort в Python устойчивая (начиная с Python 2.2), то есть она не меняет порядок «одинаковых» элементов.

Поэтому можно просто отсортировать три раза по разным ключам.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
➡️Чтобы избавится от «магических констант», особенно в случае, когда один и тот же срез надо применять многократно, можно задать константы с именованными срезами с пользованием специальной функции slice()()

Примечание: Nonе соответствует опущенному значению по-умолчанию. То есть [:2] становится slice(None, 2), а [1::2] становится slice(1, None, 2).

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
➡️В python есть классный модуль itertools для создания собственных итераторов. Функции данного модуля довольно эффективны в работе, поэтому их часто используют в реальных проектах.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
➡️Со встроенным модулем shutil многие уже, вероятно, знакомы, но его обычно используют в контексте задач копирования, переноса файлов и папок.

🔎Но с помощью shutil мы можем даже получить информацию о памяти на жестком диске компьютера. Метод disk_usage возвращает количество всей, занятой и свободной памяти.

Пример выведет:
Total : 245.11 GB
Used : 128.38 GB
Free : 99.04 GB


⬆️Так как все три значения возвращаются в байтах, в примере мы их перевели и вывели в гигабайты для лучшей наглядности.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥43
✈️WebApp (или веб-приложение) в Telegram — это приложение, которое запускается прямо внутри мессенджера. Это делает его доступным в любое время и в любом месте, где у вас есть доступ к Telegram.

🔎Преимущества WebApp в Telegram:

➡️Удобство и доступность

WebApp работает прямо в Telegram, поэтому вам не нужно устанавливать дополнительные приложения.

➡️Мгновенное обновление

Веб-приложения всегда обновлены до последней версии. Вам не нужно беспокоиться об установке обновлений — разработчики делают это за вас!

➡️Кроссплатформенность

WebApp работает одинаково хорошо на всех устройствах: будь то iOS, Android или десктопная версия Telegram. Это значит, что вы получите единый опыт использования независимо от вашего устройства.

➡️Богатый функционал

WebApp предоставляет разработчикам больше возможностей для создания функциональных и интерактивных приложений. Это могут быть игры, сервисы для бронирования, образовательные платформы и многое другое!

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2🤔2
😁25🤣11👍2🔥2😐1
➡️Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.

Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.

Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError.

➡️Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥51
➡️Множеству инструментов командной строки или скриптов для работы требуется имя пользователя и пароль. Если вам придётся писать подобную программу – вы, возможно, сочтёте полезным модуль getpass.

Этот очень простой пакет позволяет запрашивать у пользователя его пароль, а также получать имя пользователя, извлекая имя, под которым он вошёл в систему.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍42
➡️Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.

🔎Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize.

➡️По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51👍1
🤣39👍6😁2
🔎ООП - это сокращение от "объектно-ориентированное программирование". Это парадигма программирования, которая использует объекты и их взаимодействие для решения задач. ООП стал широко распространенным подходом в программировании, и понимание его основных концепций может быть полезным для разработчиков.

➡️Преимущества ООП

ООП предлагает ряд преимуществ, которые делают его популярным подходом в программировании.

➡️Во-первых, ООП способствует повышению переиспользуемости кода. Разработчики могут создавать модули и классы, которые можно использовать в разных проектах.

➡️Во-вторых, ООП способствует упрощению поддержки и изменения программного кода. Если необходимо внести изменения в программу, то, в большинстве случаев, достаточно внести изменения только в одном месте - в классе или его методе.

➡️В-третьих, ООП позволяет создавать более надежные программы. Благодаря инкапсуляции и строгой организации кода, ошибки и проблемы могут быть обнаружены.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32
➡️Декоратор @ classmethod — это метод, который получает класс в качестве параметра, который принято обозначать как cls. Он указывает на класс ToyClass, а не на объект этого класса.

Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.

➡️Проще говоря, @ classmethod — это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥31
🔎LoginManager - это класс во Flask, который обрабатывает аутентификацию пользователей. Он предоставляет возможность работы с аутентификацией: проверка правильности введенных учетных данных, установка и удаление сеансов пользователя, проверка доступа к защищенным страницам.

➡️Использование LoginManager

Сначала необходимо создать экземпляр LoginManager и привязать его к приложению Flask. Затем можно определить функцию загрузки пользователя с помощью декоратора @login_manager.user_loader. Эта функция должна принимать идентификатор пользователя в качестве параметра и возвращать объект пользователя.

После настройки LoginManager можно использовать его для защиты определенных страниц и контролировать доступ к ним только для аутентифицированных пользователей. Для этого можно использовать декоратор @login_required, который применяется к функции представления и автоматически проверяет статус аутентификации пользователя перед выполнением функции.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53👍2
➡️Один из наиболее распространенных случаев использования оператора with - работа с файлами. Он позволяет автоматически управлять открытием и закрытием файлов, что делает код более читаемым и безопасным. Рассмотрим пример:

with open("file.txt", "r") as file:
data = file.read()
print(data)


⬆️В данном примере мы открываем файл "file.txt" в режиме чтения и с помощью оператора with. После выполнения блока кода, связанного с оператором with, файл автоматически закрывается. Это особенно полезно, когда нам нужно работать с файлами, так как мы не забудем закрыть их и не получим утечку памяти.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1👏1
➡️Оператор with также может использоваться для работы с другими типами контекстов, такими как сетевые соединения, базы данных и другие ресурсы. Контексты являются объектами, которые могут выполнять некоторые действия перед входом в блок кода и после его выхода. Рассмотрим пример с использованием оператора with для работы с сетевым соединением:

import socket

with socket.create_connection(("example.com", 80)) as connection:
connection.sendall(b"GET / HTTP/1.1\\r\\nHost: example.com\\r\\n\\r\\n")
response = connection.recv(4096)
print(response.decode())


⬆️В данном примере мы создаем сетевое соединение с хостом http://example.com/ на порту 80. Блок кода, связанный с оператором with, выполняет отправку HTTP-запроса и получение ответа. После выполнения блока кода сетевое соединение автоматически закрывается.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥3
🔎Если вы когда-либо работали с Python проектами, вы наверняка сталкивались с папкой venv. Но что это за папка и зачем она нужна?

➡️Папка venv - это сокращение от "виртуальная среда" (virtual environment) и представляет собой изолированное окружение Python, в котором можно устанавливать и использовать различные версии пакетов и зависимостей. Виртуальная среда позволяет изолировать проект от других проектов и иметь разные версии пакетов для разных проектов.

➡️Зачем она вообще тогда нужна?

При разработке проектов на Python часто возникает необходимость использовать различные зависимости и библиотеки. Однако, каждый проект может требовать разные версии пакетов или зависимостей. Использование общей системной установки пакетов может привести к конфликтам и несовместимости. Вот где на помощь приходит папка venv - она позволяет создать изолированную среду, в которой можно устанавливать и использовать нужные версии пакетов без влияния на системные установки.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126🔥2
🔎Объекты - это экземпляры классов, и классы являются шаблонами для создания объектов. Каждый объект имеет свои собственные атрибуты (переменные, данные) и методы (функции, действия), которые определяют его поведение и взаимодействие с другими объектами.

Например, если у нас есть класс "Автомобиль", мы можем создать несколько объектов этого класса, таких как "Машина1" и "Машина2". У каждого объекта будет свой набор атрибутов, таких как "марка", "модель" и методов, таких как "завести двигатель" или "передвинуться вперед".

➡️Преимущества использования объектов в Python

Во-первых, объектно-ориентированное программирование облегчает структурирование кода и делает его более логичным и понятным. Каждый объект отвечает за свои собственные данные и методы.

Во-вторых, объекты позволяют создавать сложные структуры данных и абстракции. Мы можем создавать классы, которые представляют реальные или воображаемые объекты, и определять, их взаимодействие друг с другом.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
👍7