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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
Что выдаст код выше
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
➡️Функция casefold() в Python возвращает копию строки, в которой все символы приведены к нижнему регистру. Однако, в отличие от функции lower(), casefold() учитывает особенности ввода-вывода в различных языках, таких как турецкий, где некоторые символы могут быть приведены к другому символу при приведении к нижнему регистру.

s = "Привет, МИР!"
print(s.casefold()) # выведет "привет, мир!"

➡️Применение функции casefold()

Функция casefold() может быть полезна во многих задачах. Она может использоваться для сравнения строк без учета регистра. Это может быть полезно при поиске определенной строки в большом текстовом файле, где регистр может варьироваться.

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥3🤬1👌1
➡️Многопоточность в Python

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

➡️Как создать 2 одновременных цикла

Для создания двух одновременно работающих циклов вам потребуется создать два потока. Каждый поток будет выполнять свой собственный цикл. Вот пример того, как это может выглядеть:

import threading
import time

def loop1():
for i in range(10):
print('Loop 1:', i)
time.sleep(1)

def loop2():
for i in range(10):
print('Loop 2:', i)
time.sleep(1)

thread1 = threading.Thread(target=loop1)
thread2 = threading.Thread(target=loop2)

thread1.start()
thread2.start()

thread1.join()
thread2.join()


В этом примере два цикла выполняются одновременно, каждый в своем собственном потоке.

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

➡️ORM в SQLAlchemy

Одним из главных преимуществ SQLAlchemy является его ORM (Object-Relational Mapping) слой. ORM - это способ связать объекты Python с записями в базе данных. SQLAlchemy позволяет создавать классы Python, которые отображают таблицы в базе данных, и работать с ними как с обычными объектами. Это упрощает взаимодействие с базой данных и уменьшает количество кода, необходимого для выполнения задач.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84👀2🔥1
🤣21😢19😁3