Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
⚙️ itertools.cycle

В Python функция itertools.cycle() создаёт бесконечный цикл по переданному итерируемому объекту. Это полезно для повторения элементов последовательности.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🆒1
👩‍💻 Задача по Python: Поиск первого неповторяющегося символа в строке

Напишите функцию, которая находит первый символ в строке, который не повторяется. Если все символы повторяются, функция должна вернуть None.

Пример:

print(first_unique_char("swiss"))  # Ожидаемый результат: "w"
print(first_unique_char("aabb")) # Ожидаемый результат: None


Решение задачи на картинке

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥5💔2
Что будет выведено при выполнении кода?

Пояснение
⬇️
Декоратор заменяет функцию say_hello на функцию wrapper. Когда вызывается say_hello, выполняется wrapper, который сначала выводит Before function call, затем вызывает оригинальную функцию func() (say_hello) и выводит её результат Hello!. После этого завершается фразой After function call.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Вопрос на собеседовании

Как работает функция zip() в Python, что произойдет, если переданные итерируемые объекты имеют разную длину, и как можно преобразовать результат работы этой функции обратно в оригинальные последовательности?

Ответ ⬇️
Функция zip() берет несколько итерируемых объектов и объединяет их в один итератор, который возвращает кортежи, сформированные из элементов входных последовательностей. Если переданные итерируемые объекты имеют разную длину, zip() завершает свою работу, как только самая короткая из последовательностей исчерпается.

Чтобы преобразовать результат zip() обратно в исходные последовательности, можно использовать распаковку с * (оператор звездочка), которая разделяет кортежи на отдельные списки.


Пример использования ⚙️
# Объединяем два списка
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]

# zip объединяет элементы двух списков
zipped = zip(names, ages)
print(list(zipped)) # [('Alice', 25), ('Bob', 30)]

# Разъединяем с помощью распаковки
zipped_again = zip(names, ages) # Создаем заново, так как zip() исчерпаем
unzipped_names, unzipped_ages = zip(*zipped_again)

print(unzipped_names) # ('Alice', 'Bob')
print(unzipped_ages) # (25, 30)


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🥰1
Друзья, планирую в историях публиковать разбор задачек с собеседований и смешные мемасики.

Проголосуйте пожалуйста 🐍

https://yangx.top/boost/Python_per_month
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43❤‍🔥12🔥2
⚙️ itertools.accumulate()

В Python функция itertools.accumulate() вычисляет накопительные суммы или результаты других операций (например, произведение) над итерируемым объектом. Полезна для анализа последовательностей.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥2
⚙️heapq.nlargest() и heapq.nsmallest()

В Python функции heapq.nlargest() и heapq.nsmallest() позволяют получить n наибольших или наименьших элементов из коллекции. Это удобно для задач, связанных с выборкой экстремальных значений.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
⚙️ string.Template

В Python класс string.Template из модуля string позволяет подставлять значения в строки с использованием плейсхолдеров. Это удобный способ работы с шаблонами текста.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
👩‍💻 Задача по Python: Объединение и сортировка двух списков

Напишите функцию, которая принимает два списка чисел, объединяет их, удаляет дубликаты и возвращает отсортированный список.

Пример:

list1 = [3, 1, 4, 1, 5]
list2 = [9, 2, 6, 5, 3, 5]
result = merge_and_sort(list1, list2)
print(result)
# Ожидаемый результат: [1, 2, 3, 4, 5, 6, 9]


Решение задачи на картинке ☝️

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36🤔1😢1
Что будет выведено при выполнении кода?

Пояснение
⬇️
Статические методы вызываются напрямую через имя класса, без необходимости создавать экземпляр. Метод static_method возвращает строку "Static Method". Метод class_method получает ссылку на класс cls и использует её для возвращения строки "Class Method from MyClass".


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🥰2
⚙️ reversed()

В Python встроенная функция reversed() возвращает итератор, который перебирает элементы последовательности в обратном порядке. Это удобно для работы с последовательностями, когда нужен обратный порядок.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥2
⚙️collections.defaultdict

В Python класс collections.defaultdict автоматически создаёт значения для отсутствующих ключей. Это удобно для работы со словарями, где нужно избегать ошибок при доступе к несуществующим ключам.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🆒2🔥1
⚙️str.startswith() и str.endswith()

В Python методы str.startswith() и str.endswith() проверяют, начинается или заканчивается строка на указанную подстроку. Это удобно для работы с текстом, например, валидации данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥3
⚙️round()

В Python функция round() округляет число до заданного количества знаков после запятой. Это полезно для форматирования чисел и работы с математическими расчётами.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍253
⚙️math.ceil() и math.floor()

В Python функции math.ceil() и math.floor() из модуля math используются для округления чисел вверх или вниз до ближайшего целого значения. Это полезно для контроля направления округления.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Вопрос на собеседовании

Что такое __slots__ в Python, как они работают, и в каких случаях их стоит использовать?

Ответ ⬇️
__slots__ — это специальный атрибут класса, который определяет фиксированный набор атрибутов для экземпляров класса. Это уменьшает потребление памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__), они хранятся в виде фиксированной структуры. __slots__ полезны, если нужно создавать большое количество объектов одного класса, где экономия памяти критична. Однако __slots__ ограничивает добавление новых атрибутов, что делает классы менее гибкими.

Пример использования ⚙️
class OptimizedClass:
__slots__ = ['name', 'age'] # Указываем фиксированные атрибуты

def __init__(self, name, age):
self.name = name
self.age = age

# Пример использования
obj = OptimizedClass('Иван', 30)
print(obj.name) # Иван
print(obj.age) # 30

try:
obj.address = 'Москва' # Ошибка: нельзя добавить новый атрибут
except AttributeError as e:
print(e) # "'OptimizedClass' object has no attribute 'address'"


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3
⚙️list.append()

В Python метод list.append() добавляет элемент в конец списка. Это самый простой способ динамически расширять список.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26😁6🗿4
⚙️set.intersection()

В Python метод set.intersection() возвращает пересечение множеств, то есть элементы, которые присутствуют во всех переданных множествах. Это удобно для нахождения общих данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥5🔥3