Pythoner
رفتن به کانال در Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
نمایش بیشتر6 786
مشترکین
-824 ساعت
-197 روز
-4430 روز
آرشیو پست ها
6 784
🖥SQLAlchemy - это библиотека Python, которая обеспечивает доступ к базам данных с помощью SQL-запросов. Она предоставляет набор инструментов для управления соединениями с базой данных, создания таблиц и выполнения запросов.
➡️ORM в SQLAlchemy
Одним из главных преимуществ SQLAlchemy является его ORM (Object-Relational Mapping) слой. ORM - это способ связать объекты Python с записями в базе данных. SQLAlchemy позволяет создавать классы Python, которые отображают таблицы в базе данных, и работать с ними как с обычными объектами. Это упрощает взаимодействие с базой данных и уменьшает количество кода, необходимого для выполнения задач.
🐍Pythoner
6 784
➡️Многопоточность в 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()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()
В этом примере два цикла выполняются одновременно, каждый в своем собственном потоке.
🐍Pythoner6 784
Погрузитесь в мир Python с нашим бесплатным курсом!
🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.
Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.
📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.
Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!
6 784
➡️Функция casefold() в Python возвращает копию строки, в которой все символы приведены к нижнему регистру. Однако, в отличие от функции lower(), casefold() учитывает особенности ввода-вывода в различных языках, таких как турецкий, где некоторые символы могут быть приведены к другому символу при приведении к нижнему регистру.
s = "Привет, МИР!"
print(s.casefold()) # выведет "привет, мир!"
➡️Применение функции casefold()
Функция casefold() может быть полезна во многих задачах. Она может использоваться для сравнения строк без учета регистра. Это может быть полезно при поиске определенной строки в большом текстовом файле, где регистр может варьироваться.
Однако! есть некоторые особенности ее работы, которые следует учитывать. Во-первых, при использовании этой функции может произойти потеря данных, если символы не могут быть приведены к нижнему регистру. Во-вторых, эта функция может работать медленнее, чем другие функции для приведения к нижнему регистру, такие как lower().
🐍Pythoner6 784
🌴BST - это древовидная структура данных, в которой каждый узел имеет максимум два потомка. Основное свойство BST заключается в том, что каждый узел на большее значение, чем все узлы в его левом поддереве и на меньшее значение, чем все узлы в его правом поддереве. Этот уникальный атрибут делает BST идеальным для быстрого поиска данных.
➡️Пример BST на Python
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def insert(root, key):
if root is None:
return Node(key)
else:
if root.val < key:
root.right = insert(root.right, key)
else:
root.left = insert(root.left, key)
return root
def inorder(root):
if root:
inorder(root.left)
print(root.val),
inorder(root.right)
r = Node(50)
r = insert(r, 30)
r = insert(r, 20)
r = insert(r, 40)
r = insert(r, 70)
r = insert(r, 60)
r = insert(r, 80)
inorder(r)
В этом примере мы создаем BST с помощью Python. Мы определяем класс Node, который представляет узел в BST. Затем мы определяем функции для вставки нового узла и для обхода BST.
➡️Преимущества и недостатки BST
BST имеют множество преимуществ, благодаря которым они широко используются. Они позволяют быстро осуществлять поиск, вставку и удаление данных. Однако BST также имеют некоторые недостатки. Например, если дерево не сбалансировано, время поиска может увеличиться.
То есть, по сути, это сортированное дерево, поиск в котором легко выполнить, из-за того, что оно упорядочено.
🐍Pythoner6 784
+1
Подписывайтесь на наш канал!
🖥 Рассказываем про импортозамещение, IT-новости собственное производство. ⚙️
Ищем сотрудников и партнёров. 👥
Обсуждаем ПО 🖥и ОС. 🖥️
https://tglink.io/447d919c4d64
6 784
🧐НУЖНЫ КАЧЕСТВЕННЫЕ ПРОКСИ?
Тебе в VPROXY — лучший агрегатор резидентных прокси во всей телеграм индустрии!
🔥Именно VPROXY предоставит стабильное подключение к IP-адресам из более чем 150 стран, скроет ваш истинный IP и всё это за самую низкую цену в сегменте!
🚀Помимо того, VPROXY ежедневно проводит раздачи на бесплатный трафик.
Залетай и лицезрей истинное качество, которого ты не видел ранее: https://t.me/V_Proxy_bot
6 784
🧐НУЖНЫ КАЧЕСТВЕННЫЕ ПРОКСИ?
Тебе в VPROXY — лучший агрегатор резидентных прокси во всей телеграм индустрии!
🔥Именно VPROXY предоставит стабильное подключение к IP-адресам из более чем 150 стран, скроет ваш истинный IP и всё это за самую низкую цену в сегменте!
🚀Помимо того, VPROXY ежедневно проводит раздачи на бесплатный трафик.
Залетай и лицезрей истинное качество, которого ты не видел ранее: https://t.me/V_Proxy_bot
6 784
🐍 Начни учить Python со скидкой уже сейчас, чтобы через год уже работать в IT!
Первый шаг самый сложный, но вполне реальный. Если хочешь попасть в IT:
- Изучай Python c ментором.
- Нарабатывай опыт уже в процессе обучения.
- Пополняй портфолио реальными проектами.
- Участвуй в пробных собеседованиях.
- Откликайся на предложения стажировок.
Все это есть на курсе Python разработчик в IT-школе TeachMeSkills. Сейчас ты можешь начать обучение с максимальной выгодой - скидка 20 000 рублей при записи в течение недели😉
Все что тебе нужно сейчас - это владеть достаточной мотивацией для обучения и оставить заявку по ссылке.
👉 Ссылка на сайт
С тобой свяжется консультант, ответит на все вопросы и активирует твою скидку.
6 784
❕Подход основан на CSPRNG, что гарантирует хорошую безопасность.
➡️Что такое CSPRNG?
Это стандарт, который расшифровывается как: Криптографически стойкий генератор псевдослучайных чисел. В отличие от обычных генераторов псевдослучайных чисел (PRNG), CSPRNG спроектированы так, чтобы быть устойчивыми к криптографическим атакам и обеспечивать высокий уровень безопасности.
➡️Основные преимущества:
1. CSPRNG нацелен на создание выходных данных, которые статистически неотличимы от истинной случайности. Это означает, что сгенерированные числа должны обладать свойствами случайности, такими как равномерное распределение и непредсказуемость.
2. Даже если злоумышленник знает алгоритм генератора и предыдущие выходные данные, он все равно не сможет вычислять будущие значения, так как данные непредсказуемы.
3. CSPRNG защищен от попытки предсказания данных и влияния на сгенерированные числа.
🐍Pythoner
6 784
🎓 Освойте востребованную IT-специальность с высокой З/П и рядом льгот в рассрочку и получите помощь с трудоустройством!
🔸 Открыт набор от ТГУ по профессии: "Data - Аналитик". ТГУ входит в 100 сильнейших вузов мира и Топ-5 России, а также использует лучшие практики преподавания ведущих университетов: MIT, Stanford, Carnegie Mellon.
🔸 Стартуйте в профессии сейчас, пока на рынке не хватает специалистов и действует скидка на обучение 30%.
https://tglink.io/c69ae2d6e075
🔸 Курс подойдет как новичкам, так и действующим специалистам.
🔸 На курсе вы подготовите индивидуальное итоговое задание от компании-партнера, демонстрирующее ваш профессиональный уровень Он подтвердит уровень ваших навыков, поможет быстрее привлечь внимание работодателей и получить работу в крупной компании.
🎓 Подписывайтесь на наш телеграм @tsuproject
6 784
⬆️В примере выше первая и вторая строчки очень похожи, но различаются видами скобок. В списковом включении они квадратные, а в генераторном выражении – круглые.
➡️Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.
Нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы — используйте генераторы коллекций.
➡️А если же значения понадобятся еще не скоро или неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
🐍Pythoner
6 784
➡️Список с повторами:
>>> num = [4, 8, 5, 8]
Можно использовать множества для удаления повторов.
➡️Из списка сделаем множество, а из множества - список:
>>> list(set(num))
[8, 4, 5]
Мы действительно получили список уникальных элементов, вот только порядок нарушился.
➡️Начиная с Python 3.7 для этих целей подойдут словари, у них гарантированно сохраняется порядок вставки, а так же ключи являются уникальными.
>>> list(dict.fromkeys(num))
[4, 8, 5]
Создали словарь с ключами из num и значениями None, преобразовали в список
🐍Pythoner6 784
❓Разбор
В этом случае, значение "1 or value" вернет 1, так как оператор "или" (or) вернет первое истинное значение (1). Далее, оператор "and" будет проверять 1 and False, и так как второе значение False, результатом этого выражения будет False, однако это значение не будет использовано, так как первое значение уже было определено как 1. Следовательно, результатом всего выражения будет 1.
6 784
➡️Сериализация данных с 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".
🐍Pythoner6 784
✈️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
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
