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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️В 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
Что выдаст код выше
Anonymous Quiz
34%
True
30%
False
28%
Error
8%
None
👍43
Разбор

Мы рандомим букву среди строки, но среди какой?

Сначала мы берем нулевой элемент списка - это и есть наша строка. А после, мы делаем выбор по индексу 1 —> получаем строку, которая состоит из 1-ого символа, который и рандомим)

Это символ -> "1"

Проверка isnumeric чекает на то, является ли это числом —> да. Значит if сработает и выдаст True
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2🤯1
🤣21👍4😁2
➡️Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.

➡️Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥2