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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️Рекурсия - это механизм в программировании, когда функция вызывает саму себя. В Python рекурсия широко используется для решения задач, которые могут быть разбиты на более простые подзадачи.

⬆️Код на фото определяет функцию factorial, которая вызывает саму себя, пока n не станет равным 0. Когда n достигает 0, функция возвращает 1. Затем все вложенные вызовы функции умножаются между собой, чтобы получить итоговый результат.

💡Однако следует помнить о возможных проблемах с рекурсией, таких как переполнение стека вызовов при слишком глубоком вложении функций, что может привести к ошибке "RecursionError: maximum recursion depth exceeded". Поэтому нужно быть осторожным при использовании рекурсии и думать о возможности оптимизации кода.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥3
➡️Модель в Django - это специальный класс Python, который определяет структуру таблицы в базе данных. Каждый атрибут класса соответствует столбцу в таблице, а тип атрибута определяет тип данных, хранимых в столбце. Django предоставляет множество типов полей, таких как CharField, IntegerField, BooleanField и другие, которые можно использовать для определения различных типов данных.

👩‍💻 Создание модели

Чтобы создать модель в Django, нужно создать новый класс Python в файле models.py вашего приложения. Например, если вы создаете блог, вы можете создать модель для статей следующим образом:

from django.db import models

class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)

⬆️В этом примере мы создали модель Article с тремя полями: title, content и pub_date. Поле title определено как CharField с максимальной длиной 100 символов. Поле content определено как TextField, который может хранить длинные тексты. Поле pub_date определено как DateTimeField, который автоматически заполняется текущей датой и временем при создании новой записи.

Все поля для моделей и их описание

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
⬆️Памятка для поста выше про типы моделей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍52
🐍При работе над проектом на Python часто используются внешние библиотеки и пакеты, которые не являются частью стандартной библиотеки Python. В этом случае необходимо отслеживать все зависимости и их соответствующие версии, чтобы гарантировать, что код выполняется ожидаемым образом на разных машинах. В этом нам поможет файл requirements.txt.

👩‍💻Что такое requirements.txt?

Файл requirements.txt - это текстовый файл, который хранит список всех внешних зависимостей, необходимых для проекта на Python. Он содержит имена пакетов и их соответствующие версии, разделенные переносом строки. Этот файл позволяет автоматизировать установку всех зависимостей, необходимых для вашего проекта, запустив одну команду.

👩‍💻Создание файла requirements.txt

Чтобы создать файл requirements.txt, вы можете использовать команду pip freeze. Эта команда генерирует список всех установленных пакетов и их соответствующие версии. Затем вы можете перенаправить вывод в файл, используя символ '>'. Вот пример:

pip freeze > requirements.txt


Эта команда создаст файл requirements.txt в текущем каталоге и заполнит его списком установленных пакетов.

👩‍💻 Использование файла requirements.txt

После создания файла requirements.txt вы можете использовать его для установки всех зависимостей, необходимых для вашего проекта, на другой машине. Для этого вы можете использовать команду pip install вместе с флагом -r, за которым следует путь к файлу requirements.txt. Вот пример:

pip install -r requirements.txt


Эта команда установит все пакеты, перечисленные в файле requirements.txt, вместе с их соответствующими версиями.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍224🔥4
🎮Игровой цикл - это основной механизм Pygame, который позволяет создавать и управлять игрой. Он состоит из нескольких этапов, которые повторяются в цикле, пока игра не завершится.

➡️Первым этапом является обработка событий. В этом этапе Pygame проверяет все события, произошедшие с игроком, такие как нажатия клавиш, движения мыши и т.д. Затем Pygame обрабатывает эти события и делает соответствующие действия, например, изменение положения игрового персонажа.

➡️Вторым этапом является обновление игрового состояния. В этом этапе Pygame обновляет все объекты на экране, включая игровые персонажи, фоны и препятствия. Pygame также обрабатывает физику игры, такую как гравитация и столкновения.

➡️Третий этап - это отрисовка графики. В этом этапе Pygame рисует все игровые объекты на экране, включая фоны, персонажей и препятствия.
Затем Pygame отображает это на экране.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥54
👍11
Что выдаст код выше?
Anonymous Quiz
8%
a
9%
a b
17%
a b c
32%
a c
1%
a c b
33%
Error
👍15
Разбор

У нас уже была как-то задача, где есть 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