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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
Разбор

У нас уже была как-то задача, где есть 2 функции, которые одинаково названы и есть вызов.

Сначала отработает самая последняя строка - она вызовет самую наружную функцию, в ней принтанется буква 'a'.

Далее у нас идет объявление двух функций подряд, а только потом вызов —> вызываться будет последняя объявленная функция, в которой написан вывод в принте 'c'.

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

Итог: а с
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203🔥3🤔1
Pythoner
Photo
В коде была опечатка, исправил, сейчас всё корректно, спасибо всем кто заметил и подсказал в комментариях ❤️‍🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👌12👍43
💰Библиотека bitcoinlib является мощным инструментом для работы с биткоином и другими криптовалютами в Python. Она обеспечивает удобный и гибкий интерфейс для создания, подписания и обработки транзакций, а также для работы с блокчейном.

➡️Создание и подписание транзакций

Библиотека bitcoinlib позволяет легко создавать и подписывать транзакции. Это можно сделать, используя класс Transaction. Вы можете добавить входы и выходы, затем подписать транзакцию с помощью своего приватного ключа. После этого вы можете воспользоваться функцией send, чтобы отправить транзакцию в сеть.

📌Пример кода:

from bitcoinlib.transactions import Transaction

# Создаем новую транзакцию
tx = Transaction()

# Добавляем входы и выходы
tx.add_input('input_address', 'input_value')
tx.add_output('output_address', 'output_value')

# Подписываем транзакцию
tx.sign('private_key')

# Отправляем транзакцию
tx.send()


➡️Работа с блокчейном

Библиотека bitcoinlib также предоставляет функции для работы с блокчейном. Вы можете получить информацию о блоках, транзакциях и адресах. Также есть возможность мониторить блокчейн на предмет новых транзакций или изменений в блоках.

📌Пример кода:

from bitcoinlib.blocks import Block

# Получаем информацию о блоке
block = Block('block_hash')
print(block.info())


➡️Интеграция с другими криптовалютами

В дополнение к биткоину, bitcoinlib поддерживает работу с другими криптовалютами, такими как Litecoin и Dash. Это позволяет разработчикам создавать мульти-валютные приложения и услуги, используя единый интерфейс.

📌Пример кода:

from bitcoinlib.wallets import HDWallet

# Создаем кошелек для Litecoin
ltc_wallet = HDWallet.create('my_litecoin_wallet', network='litecoin')

# Получаем баланс кошелька
print(ltc_wallet.balance())



🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥32👀1
😁17👍6🤣61
Проверка скорости интернета с помощью Python


➡️Использование модуля speedtest-cli

Python имеет библиотеку под названием speedtest-cli, которая облегчает проверку скорости вашего интернет-соединения. Этот модуль использует [speedtest.net](http://speedtest.net/) для проведения тестов. Установить его можно с помощью pip install speedtest-cli. После установки вы можете импортировать его в свою программу и использовать функции для проверки скорости.

➡️Написание кода для проверки скорости

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

import speedtest
s = speedtest.Speedtest()
print(f"Download: {s.download()}")
print(f"Upload: {s.upload()}")


Этот код выдаст скорости загрузки и загрузки в битах в секунду.

➡️Использование результатов

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥53
💡Начнем с определения: В Джанго формой называется набор полей, представляющий данные одного объекта.

➡️В Django для создания форм используется класс forms.Form. Этот класс определяет поля формы и правила их валидации. Например, для создания простой формы входа, мы можем определить следующий класс:

from django import forms

class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)


⬆️Здесь мы определяем два поля: username и password. Поле username создается с помощью класса CharField, который позволяет вводить текстовые данные. Поле password также является CharField, но мы используем аргумент widget для определения типа поля ввода. В данном случае мы используем PasswordInput, который скрывает введенный пользователем текст.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥1
➡️ SQLite

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

➡️PostgreSQL и MySQL

Django также поддерживает PostgreSQL и MySQL в качестве баз данных. Эти базы данных могут обрабатывать большие объемы данных и подходят для крупных и сложных приложений. При использовании этих баз данных вы можете использовать мощные функции, такие как репликация, кластеризация и балансировка нагрузки, что делает их идеальным выбором для больших проектов.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥2
👀Оператор "is" в Python сравнивает идентичность объектов, а не их эквивалентность. Это означает, что он проверяет, указывают ли две переменные на один и тот же объект в памяти. Если два объекта имеют одинаковое значение, это не обязательно означает, что они идентичны. Они могут быть разными объектами в памяти.

➡️Примеры использования оператора "is"

x = [1, 2, 3]
y = x
print(x is y) # True


➡️В этом примере мы создали список "x" и присвоили его переменной "y". Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "True", потому что "x" и "y" указывают на один и тот же объект в памяти.

x = [1, 2, 3]
y = [1, 2, 3]
print(x is y) # False


➡️В этом примере мы создали два разных списка "x" и "y", которые содержат одинаковые значения. Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "False", потому что "x" и "y" являются разными объектами в памяти, даже если они содержат одинаковые значения.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍263🔥3
👀Инкапсуляция - это один из четырех основных принципов объектно-ориентированного программирования. Она позволяет скрыть внутреннюю реализацию объекта от других объектов и защитить его состояние от неправильного использования.

➡️ Методы и атрибуты

В Python, чтобы скрыть атрибуты объекта, их нужно объявить как приватные, используя два подчеркивания перед именем атрибута. Например, для создания приватного атрибута name нужно написать __name. Также для доступа к этому атрибуту извне класса нужно использовать специальные методы get и set.

➡️Метод get возвращает значение приватного атрибута, а метод set устанавливает новое значение. Эти методы должны быть определены в самом классе. Например:

class Person:
def __init__(self, name):
self.__name = name

def get_name(self):
return self.__name

def set_name(self, name):
self.__name = name

person = Person("John")
print(person.get_name()) # "John"
person.set_name("Mike")
print(person.get_name()) # "Mike"


💡Для чего нужна инкапсуляция вообще?

- Защита данных от внешнего доступа
- Предотвращение случайных изменений данных
- Упрощение взаимодействия с объектами
- Сокрытие сложной логики работы объекта от пользователя

Будет ли код работать без нее?

- Да, будет

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥3
➡️Метод center() в Python используется для центрирования строки внутри указанной ширины. Он возвращает новую строку, в которой исходная строка располагается по центру, а слева и справа добавляется некоторое количество символов заполнения (обычно пробелов).

➡️Синтаксис метода center() выглядит следующим образом:

string.center(width, fillchar)


где width - ширина итоговой строки, fillchar - символ, который будет добавлен слева и справа от исходной строки для заполнения места (по умолчанию это пробел).

👀Таким образом, метод center() может быть использован для создания выравнивания текста по центру в строке определенной ширины.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥2
➡️img2pdf - это библиотека Python, которая предоставляет возможность преобразования изображений в формат PDF. С помощью img2pdf вы можете легко объединить несколько изображений в один многостраничный PDF файл или преобразовать отдельные изображения в отдельные PDF файлы.

⬆️На фото показан простой пример кода который преобразые изображение в PDF.

👀Таким образом, img2pdf является полезным инструментом для работы с изображениями и их конвертации в формат PDF в среде Python.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥1🥰1
➡️Основы множественного назначения.

Множественное назначение в Python позволяет присваивать нескольким переменным значения одновременно в одной строке кода. Это делает код более чистым и легко читаемым. Например, вместо того, чтобы присваивать значения переменным по отдельности, как в x = 1; y = 2; z = 3, вы можете использовать множественное назначение, такое как x, y, z = 1, 2, 3.

# Пример множественного назначения
x, y, z = 1, 2, 3
print(x) # Вывод: 1
print(y) # Вывод: 2
print(z) # Вывод: 3

➡️Применение множественного назначения для обмена значениями.

Множественное назначение также может быть использовано для обмена значениями между переменными без использования дополнительной переменной. Например, x, y = y, x позволит обменять значения x и y. Это очень полезно, особенно в задачах сортировки и алгоритмах.

# Пример обмена значений
x, y = 1, 2
x, y = y, x
print(x) # Вывод: 2
print(y) # Вывод: 1

➡️Множественное назначение и кортежи.

Множественное назначение тесно связано с кортежами в Python. В действительности, когда вы используете множественное назначение, Python автоматически упаковывает значения в кортеж и затем распаковывает их в переменные. Это значит, что вы можете использовать множественное назначение для распаковки кортежей, что упрощает работу с ними.

# Пример распаковки кортежа
t = (1, 2, 3)
x, y, z = t
print(x) # Вывод: 1
print(y) # Вывод: 2
print(z) # Вывод: 3


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍173🔥1
➡️Метод set.isdisjoint() в Python используется для проверки того, имеют ли два множества общие элементы. Если два множества не имеют общих элементов, то метод isdisjoint() вернет True, в противном случае он вернет False.

⬆️Как видно из примера, метод isdisjoint() проверяет наличие общих элементов между двумя множествами и возвращает соответствующее булево значение. Этот метод может быть полезен, когда вам необходимо убедиться, что два множества не пересекаются перед выполнением определенных операций.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥21
🗺Roadmap для Python разработчика.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥85
➡️Синхронный код

Синхронный код - это код, который выполняется последовательно. Это означает, что каждая операция должна быть выполнена до того, как начнется следующая операция. Это может быть очень медленным, особенно когда требуется много времени для выполнения каждой операции. Например, если вы напишете код для загрузки нескольких изображений из Интернета, каждый запрос на загрузку будет выполнен последовательно, что может занять много времени.

➡️Асинхронный код

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍155🔥2
✏️Scrubadub - это библиотека для Python, которая предназначена для обработки текстов и удаления из них личной информации, такой как имена, адреса, номера телефонов и другие конфиденциальные данные. Она используется для защиты личных данных пользователей при анализе текстов и работе с ними.

➡️С помощью Scrubadub можно легко очистить текст от различных видов личной информации. Библиотека предоставляет различные методы для обнаружения и удаления конфиденциальных данных, такие как scrubadub.clean для обработки строки текста, scrubadub.clean_bytes для обработки байтовых данных и другие.

➡️Библиотека Scrubadub также позволяет настраивать список типов конфиденциальных данных, который может быть изменен в зависимости от специфики работы. Также можно создавать пользовательские правила для обнаружения и удаления специфических данных.

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥3
➡️Метод pack()

Метод pack() используется для организации виджетов в блоках перед размещением их в родительском виджете. Когда виджеты упакованы, они автоматически изменяют размеры, чтобы поместиться в доступном пространстве. Метод pack() принимает несколько параметров, таких как side, fill, expand и anchor, которые можно использовать для управления позиционированием виджетов.

Вот пример использования метода pack() для позиционирования виджета кнопки:

import tkinter as tk

root = tk.Tk()

button = tk.Button(root, text="Нажми меня!")
button.pack(side="left", fill="both", expand=True, padx=10, pady=10)

root.mainloop()


В приведенном выше примере мы создаем виджет кнопки и упаковываем его слева в родительском виджете. Мы также устанавливаем параметры fill на both и expand на True, чтобы позволить виджету заполнить доступное пространство. Опции padx и pady добавляют отступы к виджету.

➡️Метод place()

Метод place() используется для позиционирования виджетов в конкретных координатах внутри родительского виджета. В отличие от pack(), метод place() не автоматически изменяет размеры виджетов, что может усложнить создание отзывчивых макетов. Метод place() принимает несколько параметров, таких как x, y, width, height и anchor, которые можно использовать для управления позиционированием виджетов.

Вот пример использования метода place() для позиционирования виджета метки:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Привет, мир!")
label.place(x=50, y=50)

root.mainloop()


В приведенном выше примере мы создаем виджет метки и размещаем его в координатах (50, 50) внутри родительского виджета.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥1
👍7