Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
278 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

1. У нас есть класс Animal, который служит абстракцией и определяет метод voice.

2. Класс Cat наследует от Animal и переопределяет метод voice, выводя "meow".

3. Мы создаем объект cat как экземпляр класса Cat.

4. Вызываем cat.voice() и выводим результат с print().
Но помним что cat.voice() только выводит результат принтом и не возвращает ничего с помощью return

5. Результат: создание cat, вызов cat.voice() выводит "meow", но тк мы пытаемся вывести результат, который возвращается из функции, а там нет явного return то получаем None.

Итак, код выведет "meow None".
👍5
❗️Match/case в Python 3.10: Новый способ обработки условий


Python 3.10 представил новый механизм обработки условий, известный как match/case. Этот механизм позволяет более явно и удобно обрабатывать различные варианты значений переменных или выражений.

match/case - это способ структурированной обработки значений переменных или выражений. Он предоставляет более читаемый и понятный способ определения различных случаев и действий, которые следует выполнить в зависимости от этих случаев.

Пример использования match/case:

match color:
case "red":
print("красный")
case "blue":
print("синий")
case "green":
print("зелёный")
case _:
print("это не красный, синий или зелёный")


В этом примере мы с помощью match мы проверяем значение color и, в зависимости от его значения, выполняем соответствующее действие.

Преимущества match/case

- Читаемость: match/case делает код более понятным и легко читаемым, особенно при обработке большого количества вариантов.

- Безопасность: Этот механизм позволяет избежать ошибок, связанных с неожиданными значениями переменных.

- Удобство: Синтаксис match/case является более удобным и гибким в сравнении с традиционными if/elif/else конструкциями.

🔹 Интересные особенности

- case поддерживает сопоставление с различными типами данных, включая кортежи, списки и др.

- case также может выполнять условия при сопоставлении, что позволяет создавать более сложные проверки.

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

🔹 Заключение

match/case - это мощный инструмент для обработки условий в Python 3.10 и выше. Он улучшает читаемость кода и делает его более безопасным, предоставляя более явный способ определения различных вариантов обработки данных. Поэтому, при работе с новыми версиями Python, рассмотрите возможность использования match/case для улучшения структуры вашего кода.
👍3❤‍🔥1
Когда Словари Превосходят match/case в Python

Python 3.10 внедрил новый механизм match/case, о котором мы говорили недавно, для обработки условий, что, безусловно, улучшило читаемость кода и сделало его более явным. Однако существуют ситуации, когда классический подход с использованием словарей превосходит match/case. В этой статье мы рассмотрим, почему иногда словари являются более предпочтительным решением.

📦 Простота и Читаемость

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


codes = {
200: "OK",
404: "Not Found",
500: "Server Error"
}


И использовать его для обработки значений:


code = 404
print(codes.get(code, "Unknown"))


Этот код читается легче и проще в поддержке.

🚀 Гибкость и Расширяемость

Используя словари, вы можете легко добавлять новые значения и действия без изменения кода в большинстве случаев. Например, если вы хотите добавить обработку кода 403, вы просто добавляете его в словарь:


codes[403] = "Forbidden"


С match/case вам придется добавлять новый case, что требует изменения кода в нескольких местах.

⚡️ Производительность

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

🔍 Когда Использовать match/case

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

🔗 Заключение

Словари предоставляют удивительно гибкий и простой способ обработки условий в Python. Иногда, вместо использования match/case, создание словарей для сопоставления значений с действиями может быть лучшим выбором, обеспечивая легкочитаемый, гибкий и производительный код. Выбор зависит от конкретных требований вашего проекта, но имейте в виду, что в Python есть множество инструментов для достижения одной и той же цели.
👍5🔥5
❗️ Что такое сокеты? (кратко)


Сокеты являются одним из основных понятий в компьютерных сетях. Они представляют собой программный интерфейс, который позволяет приложениям обмениваться данными через сеть.

Сокеты - это точка соединения между двумя программами, которые обмениваются данными через сеть. Один сокет может отправлять данные, а другой может принимать их. Сокеты работают на разных уровнях сетевой модели, таких как уровень транспорта (например, TCP или UDP) и уровень сети (например, IPv4 или IPv6).

🔻 Работа с сокетами

Для работы с сокетами в приложении необходимо выполнить несколько шагов. Во-первых, нужно создать сокет, указав его тип (например, TCP или UDP) и семейство адресов (например, IPv4 или IPv6). Затем необходимо привязать сокет к определенному порту или адресу. После этого можно начать передачу данных через сокет, используя методы отправки и приема данных.
👍4
❗️Что такое Миксины (Mixin) в Python?


Миксины (Mixin) - это одна из мощных возможностей языка Python, которая позволяет нам повторно использовать код и добавлять функциональность к классам. Миксин - это класс, содержащий методы, которые можно добавить в другие классы без необходимости наследования от него.

🔻 Определение

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

🔻 Преимущества использования Миксинов

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

🔻 Пример использования Миксинов

Давайте рассмотрим пример использования Миксинов. Предположим, у нас есть класс Person, который представляет человека и имеет метод greet(), который выводит приветствие. Мы хотим добавить в этот класс возможность отправки электронного письма. Мы можем создать Миксин EmailMixin, который содержит метод send_email(), и затем добавить этот Миксин к классу Person. Теперь объекты класса Person будут иметь и метод greet(), и метод send_email(), позволяющий отправлять письма.

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

def greet(self):
print(f"Привет, меня зовут {self.name}!")

class EmailMixin:
def send_email(self, recipient, subject, message):
print(f"Отправляю электронное письмо на адрес {recipient}:")
print(f"Тема: {subject}")
print(f"Сообщение: {message}")

class PersonWithEmail(Person, EmailMixin):
pass

person = PersonWithEmail("Иван")
person.greet()
person.send_email("example@example.com", "Привет!", "Как дела?")


В данном примере мы создали класс Person и Миксин EmailMixin. Затем мы создали класс PersonWithEmail, который наследуется от Person и добавляет функциональность EmailMixin. Мы создали объект person класса PersonWithEmail и использовали его методы greet() и send_email().
👍4❤‍🔥1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Статья о миксинах могла вам помочь при решении задачи.
Создаем класс миксин, в котором реализуем метод добавления к передаваемому слову приставки flex.

Далее создаем два класса с одинаковым методом output, однако внимательные заметят, один из них возвращает результат текстовый, а второй принтует сразу в консоль.

Ну и при инициализации списка, мы создаем в нем объект, для которого сразу вызываем метод output —> один результат выводит и возвращает в список None, а другое просто возвращает текст в список.

В консоли будет только flex Python
👍2
❗️Flask WTForms: Что это такое и как использовать?

🔻 Что такое Flask WTForms?

Flask WTForms - это расширение для Flask, которое интегрирует популярную библиотеку WTForms в приложения Flask. WTForms - это гибкая библиотека валидации и отображения форм для разработки веб-приложений на языке Python. Она предоставляет простой и интуитивно понятный способ создания HTML-форм и валидации пользовательского ввода. Используя Flask WTForms, вы можете легко определить свои формы в виде классов Python и отображать их в ваших шаблонах Flask.

🔻 Как использовать Flask WTForms

Чтобы начать использовать Flask WTForms в вашем приложении Flask, вам сначала необходимо установить его с помощью pip. Вы можете сделать это, запустив следующую команду:

pip install Flask-WTF


После установки Flask WTForms вам нужно импортировать его в ваше приложение Flask. В вашем файле Python добавьте следующую строку:

from flask_wtf import FlaskForm


Теперь вы можете определить свои формы как подклассы FlaskForm. Каждый класс формы будет представлять определенную форму в вашем приложении. Вы можете определить поля в вашей форме, используя различные классы полей, предоставленные Flask WTForms, такие как StringField, IntegerField, BooleanField и другие.

После определения формы вы можете отобразить ее в вашем шаблоне Flask, используя объект form.

Чтобы обрабатывать отправку формы, вам необходимо определить маршрут в вашем приложении Flask, который будет обрабатывать POST-запросы. В этом маршруте вы можете использовать объект request для доступа к данным формы и валидировать их с помощью функции form.validate_on_submit(). Если данные формы являются допустимыми, вы можете их обработать и выполнить необходимые действия.
👍3
❗️ Шифрование паролей и другой информации в Python


Шифрование позволяет защитить конфиденциальные данные, такие как пароли, от несанкционированного доступа.

🔻Использование модуля hashlib

Один из способов шифрования данных в Python - использование модуля hashlib. Модуль hashlib предоставляет ряд алгоритмов хеширования, таких как SHA-256 и MD5. Хеширование - это процесс преобразования исходных данных в фиксированную длину числового значения, известного как хеш. Хеширование полезно для сохранения паролей и другой информации в безопасной форме, поскольку хеш невозможно обратно преобразовать в оригинальные данные. Вот пример кода, демонстрирующий использование модуля hashlib для шифрования пароля:

import hashlib

password = "mysecretpassword"
hashed_password = hashlib.sha256(password.encode()).hexdigest()

print("Шифрованный пароль:", hashed_password)
👍3🔥1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Есть список. Ну а дальше циклы в списковых выражениях.
Первое - создание squared_numbers, где мы определяем четные числа и нечетные. Четные возводим в квадрат (x **2) и заносим обратно.

Получаем тут [1, 4, 3, 16, 5]

Ну а дальше просто создаем список filtered_numbers, где числа будут больше 5. То есть у нас это просто число 16.
Помним, что оно будет в списке.

Отсюда и ответ: [16]
👍2
❗️Библиотеки для создания игр на Python


🔻 Pygame

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

🔻 Arcade

Arcade - еще одна библиотека, которая предоставляет возможности для создания игр на Python. Она разработана с акцентом на создание 2D игр и имеет простой и интуитивно понятный интерфейс. Arcade предлагает широкий набор инструментов, включая графику, анимацию, физику и звук.

🔻 Panda3D

Panda3D - библиотека, которая предоставляет возможности для создания как 2D, так и 3D игр на Python. Она имеет мощный набор инструментов и функций, позволяющих разработчикам создавать высококачественные игры.
👍4
🔔Есть любители автотематики? Шашки в жизни или в игре? 🚘🚔

📹 Вторая часть гоночек или же шашек на Pygame. Добавили кнопки рестарта, систему поломок, меню и счет 📹
🔥 Смотрите, оставляйте отзыв в комментариях 🔥

Стоит ли делать продолжение игры дальше, зависит только от вас)

https://youtu.be/2uctvdLEftE
👍4
shcoder.zip
3.4 MB
Zip архив с исходниками игры версии 2.0😊
Может кому-то пригодится
👍5
На какой либе пишете телеграм ботов? (если пишете) [Несколько вариантов можно]
Anonymous Poll
58%
aiogram
40%
telebot
6%
pyrogram
8%
telethon
19%
другое
👍4
Решил сравнить ответы Chat GPT 3.5 и Bard от гугла. 🤖

Какой ИИ ответил лучше
👍4