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 - сборище Питонистов
Что выведет код выше?
👨‍💻Разбор 😎


Разберем построчно:


🌝Создаём функцию-декоратор. Она принимает функцию.
🌝Создаём обвертку, по сути дела эта обвертка выполняется вместо декорируемой функции. Обратите внимание что она принимает все аргументы, и позициональные, и именные.
🌝Выводим "Welcome"
🌝Вызываем оригинальную функцию. Обратите внимание что мы в нее ничего не передаём!
🌝Выводим "bye"
🌝Возвращаем обвертку.

🌝Декорируем функцию нашим декоратором
🌝Создаём функцию
🌝🌝выводим все позициональные аргументы, разделяя их через ", " с помощью параметра sep (от англ. separator -- разделитель). Но тут ничего не выведется! В декораторе мы не передали никаких аргументов!

🌝🌝Вызываем функцию


В итоге выведется только "welcome!" и "bye"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Пример отлично подойдет тем, кто только недавно познакомился с циклом while.

while not a —> while not 0 —> while True —> цикл бесконечен.
Внутри есть while a —> while 0 —> while False —> мы даже не зайдем во вложенный цикл.

Далее идет print(2) —> выведем 2 в консоль.

Ну а после -> break —> остановим наш бесконечный цикл и завершим работу программы.

Ответ: просто число 2
👍3
🎓 Генераторы в Python [общие положения] 🎓


Генераторы являются одной из мощных возможностей языка Python. Они позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти.

· Что такое генераторы? · 🧐

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

· Преимущества генераторов · 👍

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

· Как использовать генераторы? ·

Для создания генератора в Python нужно определить функцию, внутри которой будет использоваться ключевое слово yield. Когда вызывается этот генератор, он возвращает итерируемый объект, который можно использовать в циклах for или получать значения с помощью функции next(). Каждый вызов yield возвращает значение из генератора и "замораживает" его состояние, позволяя продолжить выполнение с того же места в следующий раз.
👍6
Что выдаст код выше?
Anonymous Quiz
7%
123
17%
124
24%
134
2%
6
3%
7
36%
Error
10%
Не знаю
👍2
◽️ Iterable object или итерируемый объект в Python. Что это?

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

Когда мы используем цикл for в Python для перебора элементов, он фактически работает с iterable объектами. Например, если у нас есть список чисел numbers = [1, 2, 3, 4, 5], мы можем перебрать его элементы следующим образом:

numbers = [1, 2, 3, 4, 5]

for number in numbers:
print(number)


Здесь numbers является iterable объектом, и цикл for позволяет нам последовательно обойти все элементы списка.

Iterable в Python обеспечивает удобство итерации по данным, что очень полезно при работе с коллекциями элементов разного типа. Важно помнить, что не все объекты являются iterable - для этого они должны реализовывать метод __iter__(), который возвращает итератор, или поддерживать итерацию через протокол итераторов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
📤 Распаковка значений в Python

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

Комбинации с примерами и краткими описаниями:

1. Распаковка в несколько переменных:
a, b, c = 1, 2, 3
# a = 1, b = 2, c = 3



Присваивание значений из кортежа переменным.

2. Распаковка посимвольно в строки:
a, b = "12"
# a = '1', b = '2'



Разделение строки на отдельные символы и присваивание их переменным.

3. Распаковка с использованием звёздочки (*):
a, *b = 1, 2, 3
# a = 1, b = [2, 3]



Сбор оставшихся значений в список с использованием звёздочки.

4. Распаковка в переменную со звёздочкой (*):
a, *b, c = 1, 2, 3, 4
# a = 1, b = [2, 3], c = 4



Присваивание первого и последнего значения, а остаток помещается в список.

5. Игнорирование значений при распаковке:
a, _, b = 7, 8, 9
# a = 7, b = 9 (значение 8 игнорируется)



Пропуск значений, которые не нужны при присвоении.

Различные итерируемые объекты:

Можно использовать любые итерируемые объекты, такие как списки, кортежи, строки, объекты, поддерживающие итерацию и даже функция range():

- Список:
a, b, c = [4, 5, 6]
# a = 4, b = 5, c = 6



- Кортеж:
x, y = (10, 20)
# x = 10, y = 20


- Строка:
char1, char2, char3 = "xyz"
# char1 = 'x', char2 = 'y', char3 = 'z'



- Использование range():
a, b, c = range(1, 4)
# a = 1, b = 2, c = 3



Итог:

Распаковка значений в Python - удобный и эффективный способ присваивания значений переменным из итерируемых объектов, делая код более читаемым и компактным. Это дает гибкость при работе с данными различных типов и структур.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🐍 Singleton в Python. Что это такое и как его сделать.

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

⚡️ Давайте рассмотрим пример реализации синглтона в Python:

class Singleton:
_instance = None

def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance

# Пример использования синглтона
singleton_instance1 = Singleton()
singleton_instance2 = Singleton()

print(singleton_instance1 is singleton_instance2) # Вывод: True

🖥 В этом примере класс Singleton имеет переменную класса _instance, которая хранит единственный экземпляр объекта. При создании экземпляра класса Singleton проверяется, существует ли уже экземпляр. Если нет, то создается новый экземпляр; если уже есть, то возвращается существующий.

🌟 Зачем это полезно? Синглтоны пригодны, когда у вас есть ресурсоемкая задача, которая должна быть выполнена только один раз за время работы программы или когда требуется обеспечить глобальный доступ к определенному объекту.

👨‍💻 Понимание синглтонов может быть полезным для эффективной организации кода и управления ресурсами в ваших проектах на Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1🤯1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

.capitalize() - возвращает слово, сделав первую букву заглавной. bangkok —> Bangkok

a[0].upper() —> берем первую букву b и переводим ее в верхний регистр при помощи .upper(). Далее склеиваем со срезом с 1 индекса по конец. (angkok) —> получим Bangkok.

В результате получаем одинаковый результат с обеих сторон от ==

Тогда нужно вывести наше изначальное слово срезом от 1 до -1 (-1 — это последний индекс). Начинаем со второй буквы (индекс 1) и закачиваем предпоследней (правая граница не включается)

Ответ: angko
👍2
Python Hub - сборище Питонистов
Photo
👨‍💻 Разбор 🐍

Из этого поста мы знаем что
a, b = "ab"
это тоже самое что и
a = "a"
b = "b"

Следовательно код из викторины можно записать как

a = "1"
b = "2"
b = "3"
c = "4"

Обратите внимание что b мы перезаписываем. Следовательно
a = "1"
b = "3"
c = "4"

Все складываем вместе и выходит 134
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💻 Оказывается, что не все знают IT сленг, если его так можно назвать

Джуниор
(англ. junior — младший) в данном случае — младший разработчик. Также бывают мидл- (англ. middle — средний) и сеньор-разработчики (англ. senior — старший).

Интересно ли так разбирать периодически необычные слова?


Пишите свои слова в комменты или кидайте варианты в предложку
👍41
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

У нас есть текст, где находится 3 слова.

Сначала мы делаем срез в этом тексте 5:10 —> 5-9 индексы (10 не включается)
На выходе тут получим: ист и

Далее у этой строки берем третий индекс [3] —> это пустой символ (пробел)

Далее у этой строки, состоящей из одного символа-пробела берем нулевой индекс —> этот пробел и останется.

Если резюмировать, то я рекомендую такие задачи всегда делить на итерации. Сначала определяем результат первого действия, дальше над результатом проводим вторую операцию и тд.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
🖥 Нашел полезную картинку с разными популярными библиотеками и фреймворками Python'a 🖥

Они еще и разбиты по нишам!

Полезно
? ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤯21🔥1