Python Hub - сборище Питонистов
Open in Telegram
Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат
Show more1 711
Subscribers
No data24 hours
-107 days
-1630 days
Posts Archive
👩💻 Лучшие пакеты PyPi!
Решил проверить, какие вообще самые популярные (по каким-то критериям, хз сам каким) библиотеки на PyPi
PyPI (Python Package Index) — это официальный репозиторий пакетов для языка программирования Python. Здесь собраны тысячи библиотек, модулей и приложений, которые могут быть полезны для разработчиков Python.
https://pypistats.org/top
https://hugovk.github.io/top-pypi-packages/
Вот два ресурса. Мне понравился больше первый.
Для ленивых предлагаю скрин!
❓Стоит ли вообще сделать краткий обзор этих либ из списка?
▶️ Субботний чилловый видос с решением задач на CodeWars! ▶️
😊 Уже на канале!
https://www.youtube.com/watch?v=R3DGJ-iO12k
Были бы интересны видео, где пилим большой проект? Или лучше маленькие проекты на 10-15 минут?
‼️‼️
📹 Думаю, что один из последних видосов по Tkinter вышел на канале! 📹
Есть тут еще олдовые любители Tk GUI?
(показываю варианты реализации paint приложения, ссылаясь на авторов. Все исходники в описании)
https://www.youtube.com/watch?v=YtTAdFCWsHc
Умер создатель языка программирования Pascal Николаус Вирт
Ему было 89 лет.
По данным iTWire, Вирт умер в своём доме в окружении родных 1 января 2024 года.
Почитать подробнее можно тут
Кто из вас писал на паскале? 🖥
Разбор 👨💻
'2' + '2' —> '22' текстовый формат.
При умножении текста на число, текст дублируется столько раз, чему равно число.
В нашем случае '22' * 3 —> '222222'
Если было бы, например 'hello' * 3 —> 'hellohellohello'
❗️ Округление чисел в Python
➡️ Функция round()
Один из самых простых способов округления числа в Python - использовать встроенную функцию round(). Функция round() округляет число до ближайшего целого значения. Например, если у нас есть число 3.7, функция round() округлит его до 4, а если у нас есть число 3.4, оно будет округлено до 3. Важно отметить, что если дробная часть числа равна 0.5, функция round() округлит число в сторону ближайшего четного значения. Например, число 2.5 будет округлено до 2, а число 3.5 будет округлено до 4.
num1 = 3.7
num2 = 3.4
rounded_num1 = round(num1)
rounded_num2 = round(num2)
print(rounded_num1) # Output: 4
print(rounded_num2) # Output: 3
➡️ Методы floor() и ceil()
Кроме функции round(), в Python также доступны методы floor() и ceil(). Метод floor() округляет число до наибольшего целого значения, которое меньше или равно данному числу. Например, если у нас есть число 4.8, метод floor() округлит его до 4. С другой стороны, метод ceil() округляет число до наименьшего целого значения, которое больше или равно данному числу. Например, если у нас есть число 2.2, метод ceil() округлит его до 3.
import math
num = 4.8
floored_num = math.floor(num)
ceiled_num = math.ceil(num)
print(floored_num) # Output: 4
print(ceiled_num) # Output: 5
➡️ Модуль math
Еще один способ округления чисел в Python - использование модуля math. Модуль math предоставляет различные функции для работы с числами, включая функции округления. Например, функция math.floor() эквивалентна методу floor(), а функция math.ceil() эквивалентна методу ceil(). Кроме того, модуль math также предоставляет функции округления вниз и вверх до ближайшего целого значения, а также функцию для округления до определенного количества знаков после запятой.
import math
num = 3.7
floored_num = math.floor(num)
ceiled_num = math.ceil(num)
print(floored_num) # Output: 3
print(ceiled_num) # Output: 4Кэширование результатов функций в Python 🐍
💬 Что такое кеширование?
Кеширование позволяет сохранять результаты выполнения функций, избегая повторных вычислений. Это полезно, особенно если функция часто вызывается с одними и теми же данными или выполняет сложные операции.
❓ Как это сделать?
В Python есть модуль
functools, включающий декоратор lru_cache, который автоматически кеширует результаты функции.
🥸 Зачем это нужно?
Кеширование ускоряет программу, сохраняя результаты вычислений функций. Это особенно полезно при работе с большими данными или сложными расчетами.
Пример:
from functools import lru_cache
@lru_cache(maxsize=20) # 20 - это максимальное количество "запоминаний"
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)) # Первый вызов - вычисляем
print(fibonacci(10)) # Результат уже закеширован
💻 Теперь вы знаете, как использовать кеширование в Python для улучшения производительности кода.
Оставайтесь с нами для еще больше интересной информации о Python! 😉🥳Привет, Python и не Python герои! 🐍
С наступающим 2024 годом! 🥳
От имени всей команды сообщества Shcoder, мы желаем вам бесконечного цикла успеха и счастья, чтобы ваш код всегда был чистым, а переменные — всегда именованными с любовью! 💻❤️
Пусть новый год принесет вам меньше багов, больше интересных проектов и нового опыта! 🎁🐞
Пусть ваши проекты будут масштабируемыми, а итерации — всегда успешными! 🔄🚀
Пусть у вас всегда будет актуальная и понятная документация! 📚🤝
С наступающим вас, Шкодеры! Пусть 2024 год будет полон новых версий ваших идей! 🥳🔍
🥳🥳🥳 УРА! 🥳🥳🥳
⭕️ Создать список, который хранит в себе объекты в Python (на примере списка с людьми)
Python предоставляет нам множество возможностей для работы с данными. Одной из таких возможностей является использование списков для хранения объектов. Сейчас мы рассмотрим, как создать класс, создать объекты на основе этого класса, поместить эти объекты в список и обратиться к ним.
👀 1. Создание класса
Для начала, давайте создадим класс, который будет представлять людей. Класс будет иметь атрибуты "имя" и "возраст". Вот пример такого класса:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
👀 2. Создание объектов
Теперь, когда у нас есть класс, мы можем создать объекты на его основе. Например, давайте создадим двух людей:
person1 = Person("John", 25)
person2 = Person("Alice", 30)
👀 3. Помещение объектов в список
Чтобы поместить объекты в список, мы можем использовать метод append(). Например, чтобы создать список людей и добавить туда наших двух людей, мы можем написать следующий код:
people = []
people.append(person1)
people.append(person2)
Теперь у нас есть список people, в котором хранятся объекты, представляющие двух людей.
👀 4. Обращение к объектам в списке
Чтобы обратиться к объектам в списке, мы можем использовать индексы. Например, чтобы получить имя первого человека в списке people, мы можем написать следующий код:
first_person_name = people[0].name
Теперь в переменной first_person_name будет храниться значение "John".🤟 Суббота - время отдыхать и решать задачки на Codewars или leetcode? 🤟
💻 В этот раз задачи решаю на кодварс — закрываю год на любимом алгоритмическом сайте!
https://youtu.be/6y19_r6XxvE
▶️ Вышел скучный, но полезный видос по Python! ▶️
❗️В нем мы разбираем, что такое рекурсия на примерах❗️
Если формат зайдет, то продолжим в том же духе!
https://www.youtube.com/watch?v=w3FlW2THtUk
🔐 Модуль
secrets в Python: Защита вашей информации
✨ Модуль secrets предоставляет инструменты для создания безопасных случайных данных, сложнее предсказать.
🔑 Функции модуля secrets:
1. secrets.choice(sequence): Выбирает случайный элемент из последовательности. Полезно для генерации случайных выборок или паролей из определенного набора символов.
2. secrets.randbelow(n): Возвращает случайное число от 0 до n-1. Используется для генерации случайных чисел в определенном диапазоне.
3. secrets.randbits(k): Генерирует k случайных битов. Полезно для создания случайных битовых строк или чисел.
4. secrets.token_bytes(nbytes=None): Генерирует безопасную случайную последовательность байтов длиной nbytes (по умолчанию - 32 байта).
5. secrets.token_hex(nbytes=None): Генерирует безопасную случайную строку в шестнадцатеричном формате длиной nbytes (по умолчанию - 32 байта).
6. secrets.token_urlsafe(nbytes=None): Генерирует безопасную случайную URL-совместимую строку длиной nbytes (по умолчанию - 32 байта).
7. secrets.compare_digest(a, b): Сравнивает две строки для предотвращения временных атак. Это полезно при сравнении хэшей паролей или токенов без утечки информации о длине сравниваемых строк.
🔍 Почему использовать secrets лучше?
- secrets предоставляет криптографически безопасные данные, что делает их сложными для предсказания.
- Эти функции обеспечивают высокий уровень безопасности при генерации случайных данных, паролей и токенов в Python.
Используйте модуль secrets для защиты вашей информации и обеспечения безопасности ваших данных в Python. 🔐✨❕ Оператор моржа в Python :=❕
В программировании, оператор моржа в Python, также известный как оператор присваивания с условием, является нововведением в версии Python 3.8. Он предоставляет удобный способ проверить условие и присвоить значение переменной, если условие истинно.
Оператор моржа в Python обозначается двумя символами ":= ", за которыми следует символ ">" для сравнения. Этот оператор может быть использован в выражениях if и while, чтобы одновременно проверить условие и присвоить значение переменной. Например:
if (x := some_function()) > 10:
print("x is greater than 10")
else:
print("x is less than or equal to 10")
В этом примере, если значение, возвращаемое функцией some_function(), больше 10, то оно будет присвоено переменной x, и будет выведено сообщение "x is greater than 10". В противном случае будет выведено сообщение "x is less than or equal to 10".
➕ Преимущества использования оператора моржа
Оператор моржа предлагает несколько преимуществ, которые могут значительно упростить кодирование. Во-первых, он позволяет объединить проверку условия и присваивание значения в одной строке, что делает код более компактным и легким для чтения. Во-вторых, он устраняет необходимость использования временных переменных для хранения результатов выражений, что уменьшает количество кода и повышает эффективность. Наконец, оператор моржа может быть использован в циклах, что позволяет более эффективно использовать ресурсы и улучшить производительность программы.Разбор 👨💻
В переменную L будет помещен список [1, 1, 1, 2, 2, 2]
Далее мы считаем длину set'a этого списка. set убирает все повторяющиеся элементы —> длина 1, 2 —> 2
Далее то же самое, только со всей длиной списка —> 6
Задача на внимательность: выводим выражение 2 in 6 —> мы не можем in'ом проверять int в int'е.
Ответ: ошибка
кто попался?💀
❗️ Что такое Linked List в примере на Python'e?
Linked List (связанный список) - это структура данных, которая позволяет хранить и организовывать элементы в памяти компьютера. Он состоит из узлов, каждый из которых содержит данные и ссылку на следующий узел. Отличительной особенностью связанного списка является то, что элементы могут быть расположены в разных областях памяти и связаны между собой с помощью ссылок.
👩💻 Пример на Python
Давайте рассмотрим пример создания связанного списка на языке программирования Python. Для начала, мы создадим класс Node, который будет представлять узел связанного списка. Каждый узел будет содержать данные и ссылку на следующий узел.
class Node:
def __init__(self, data):
self.data = data
self.next = None
Затем мы создадим класс LinkedList, который будет представлять сам связанный список. У него будет ссылка на первый узел списка (голова).
class LinkedList:
def __init__(self):
self.head = None
Теперь мы можем добавить методы для работы со связанным списком, такие как добавление элемента и вывод списка.
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def display(self):
current = self.head
while current:
print(current.data)
current = current.next
Теперь мы можем создать экземпляр класса LinkedList и использовать его для создания и отображения связанного списка.
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.display()
Вывод:
1 2 3🧐 А приходилось ли вам где-то применять знания Linked List'ов?
Available now! Telegram Research 2025 — the year's key insights 
