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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️Декларативное программирование

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

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

➡️Императивное программирование

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

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

Разница между декларативным и императивным программированием

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

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔64👍2🔥1🥰1
➡️Декларативное программирование в Python

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

numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]


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

➡️Императивное программирование в Python

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

numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
squares.append(num ** 2)


В этом примере мы указываем, как достичь желаемого вывода, создав список квадратов от 1 до 5. Мы используем цикл for для итерации по каждому числу и добавляем его квадрат в новый список.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
🤣18👍7😁4😢32
👍6
Что выдаст код выше
Anonymous Quiz
18%
2
2%
a
30%
b
12%
self
37%
Error
🤔11😢3🤨3👍1
Разбор

У нас есть два класса, причем один наследуется от другого. Здесь идет простое создание объекта, а потом вызов метода у класса-ребенка. В методе классе-ребенка вызывается метод класса-родителя, а там выводится 'b'.
Переданные параметры никак не влияют на ответ, важно только их количество.
Важно помнить, что self принимает в себя сам объект. Если вызов идет через объект, то self передается автоматически.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯117🔥3🤓2👍1👀1
➡️Метод .isnumeric()

Метод .isnumeric() в Python используется для проверки, содержит ли строка только числа. Если все символы в строке являются числами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод очень полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только числа.

str1 = '12345'
print(str1.isnumeric()) # Вывод: True

str2 = '12345abc'
print(str2.isnumeric()) # Вывод: False


➡️Метод .isalpha()

Метод .isalpha() в Python, с другой стороны, используется для проверки, содержит ли строка только буквы. Если все символы в строке являются буквами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод также полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только буквы.

str3 = 'abc'
print(str3.isalpha()) # Вывод: True

str4 = 'abc123'
print(str4.isalpha()) # Вывод: False



🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🤝2🔥1👏1
💻Copilot - это инструмент искусственного интеллекта, разработанный GitHub и OpenAI. Он использует глубокое обучение и нейронные сети для создания кода на основе контекста.

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

Сам Copilot

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3👍2👏1
✈️Python поддерживает множество кодировок, которые могут использоваться для представления текста. Некоторые из наиболее распространенных кодировок, поддерживаемых Python, включают UTF-8, ASCII и Latin-1. UTF-8 является наиболее распространенной кодировкой и используется в большинстве веб-приложений.

➡️Как работает encoding в Python

Python использует объекты типа str для хранения строковых значений. Когда вы создаете строку в Python, она сохраняется в памяти в виде последовательности символов Unicode. Однако, когда необходимо сохранить строку в файл или передать ее по сети, она должна быть преобразована в байты, и для этого используется определенная кодировка. Это происходит с помощью метода encode.

Пример:

text = 'Пример текста'
encoded_text = text.encode('utf-8')

В этом примере мы создаем строку text, содержащую русские символы, и затем преобразуем ее в байты, используя кодировку UTF-8. Результатом будет объект типа bytes, содержащий закодированные данные.

Обратное преобразование из байтов в строку осуществляется с помощью метода decode:

decoded_text = encoded_text.decode('utf-8')



🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥2👻2
🤣32👍3😁3👌2
✈️Pydantic - это библиотека Python, которая предоставляет инструменты для проверки данных и сериализации (преобразования объектов Python в JSON-подобную структуру данных). Pydantic также предоставляет возможность создавать собственные классы с валидацией и автоматической сериализацией данных.

➡️Валидация данных с Pydantic

Одной из основных функций Pydantic является проверка данных. Pydantic позволяет определить структуру данных в Python-классе и автоматически проверять, соответствует ли входной объект этой структуре. Например, мы можем создать класс "Person" со свойствами "name" и "age", а затем использовать этот класс для проверки данных о человеке, которые мы получаем из внешнего источника.

python
from pydantic import BaseModel

class Person(BaseModel):
name: str
age: int

person_data = {"name": "Alice", "age": 25}
person = Person(**person_data)


В этом примере мы создали экземпляр класса "Person" из словаря "person_data". Pydantic автоматически проверяет, что ключи "name" и "age" существуют в словаре и что "name" имеет тип "str", а "age" - тип "int".

В следующем посте продолжим рассматривать Pydantic, а точнее сериаллизацию данных и создание своих классов.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥43👀1
➡️Сериализация данных с Pydantic

Еще одна полезная функция Pydantic - это сериализация данных. При сериализации объект Python преобразуется в JSON-подобную структуру данных, которая может быть передана по сети или сохранена в файл. Pydantic позволяет автоматически сериализовать объекты Python, определенные в классах Pydantic.

python
class Person(BaseModel):
name: str
age: int

person = Person(name="Alice", age=25)
person_json = person.json()


В этом примере мы создали экземпляр класса "Person", а затем сериализовали его в формат JSON с помощью метода "json()". Результатом будет строка JSON с полями "name" и "age", соответствующими свойствам объекта "person".

➡️Создание своих классов Pydantic

Pydantic также позволяет создавать собственные классы с валидацией и автоматической сериализацией данных. Для создания такого класса необходимо унаследоваться от базового класса Pydantic "BaseModel" и определить свойства класса с аннотациями типов данных.

python
class User(BaseModel):
username: str
password: str
email: str
age: Optional[int] = None


В этом примере мы создали класс "User" со свойствами "username", "password", "email" и "age". Свойство "age" определено как необязательное с помощью "Optional[int]". Если значение "age" не указано при создании экземпляра класса, то оно будет равно "None".

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥21👀1
👍8
Что выдаст код выше
Anonymous Quiz
28%
Error
6%
1 1
40%
1
6%
value
20%
False
👍53👏1🤓1
Разбор

В этом случае, значение "1 or value" вернет 1, так как оператор "или" (or) вернет первое истинное значение (1). Далее, оператор "and" будет проверять 1 and False, и так как второе значение False, результатом этого выражения будет False, однако это значение не будет использовано, так как первое значение уже было определено как 1. Следовательно, результатом всего выражения будет 1.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥53🤯2👀1
➡️Список с повторами:
>>> num = [4, 8, 5, 8]

Можно использовать множества для удаления повторов.

➡️Из списка сделаем множество, а из множества - список:

>>> list(set(num))
[8, 4, 5]

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

➡️Начиная с Python 3.7 для этих целей подойдут словари, у них гарантированно сохраняется порядок вставки, а так же ключи являются уникальными.

>>> list(dict.fromkeys(num))
[4, 8, 5]

Создали словарь с ключами из num и значениями None, преобразовали в список

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185🔥2
⬆️В примере выше первая и вторая строчки очень похожи, но различаются видами скобок. В списковом включении они квадратные, а в генераторном выражении – круглые.

➡️Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.

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

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74👍2
Подход основан на CSPRNG, что гарантирует хорошую безопасность.

➡️Что такое CSPRNG?
Это стандарт, который расшифровывается как: Криптографически стойкий генератор псевдослучайных чисел. В отличие от обычных генераторов псевдослучайных чисел (PRNG), CSPRNG спроектированы так, чтобы быть устойчивыми к криптографическим атакам и обеспечивать высокий уровень безопасности.


➡️Основные преимущества:
1. CSPRNG нацелен на создание выходных данных, которые статистически неотличимы от истинной случайности. Это означает, что сгенерированные числа должны обладать свойствами случайности, такими как равномерное распределение и непредсказуемость.

2. Даже если злоумышленник знает алгоритм генератора и предыдущие выходные данные, он все равно не сможет вычислять будущие значения, так как данные непредсказуемы.

3. CSPRNG защищен от попытки предсказания данных и влияния на сгенерированные числа.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🔥2
Media is too big
VIEW IN TELEGRAM
➡️Trafilatura - это Python бибилиотека и инструмент командной строки для парсинга и сбора текста с сайтов.

Инструмент способен к сбору основного текста, метаданных и комментариев.

🖥Github

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4👍3
👍16🤣12😁51🤓1