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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
11🤣9😁7👍2🔥1🙈1
➡️Эта функция хорошо сказывается на производительности, но, с точки зрения потребления памяти, это неэффективно. Обычно, правда, проблем эта особенность не вызывает. Однако если вы столкнулись в подобной ситуации с нехваткой памяти — можете попробовать воспользоваться атрибутом slots.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
➡️Функция literaleval() в Python - это функция из библиотеки ast (Abstract Syntax Trees), которая позволяет безопасно вычислять выражения из строкового представления. Она может использоваться для безопасного преобразования строк, содержащих литералы Python (такие как списки, словари, числа и т. д.), в соответствующие Python объекты.

➡️Преимущества использования literaleval() включают в себя:

➡️Безопасность: функция literaleval() обрабатывает только литералы Python и отсекает поврежденные или нежелательные выражения, предотвращая выполнение вредоносного кода.

➡️Удобство: благодаря literaleval() можно легко преобразовывать строки с литералами Python в соответствующие объекты Python без необходимости использования более сложных методов.

🔎Обратите внимание, что функция literaleval() должна использоваться с осторожностью, так как она может привести к ошибкам, если в строке содержатся несоответствующие литералы Python или некорректный синтаксис.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
💎Soft Skills - это набор личностных качеств и навыков, которые позволяют человеку быть успешным в работе и личной жизни. Они не связаны с техническими знаниями, а скорее определяют, как мы взаимодействуем с окружающими людьми и как эффективно решаем задачи в команде. Важно понимать, что Soft Skills нельзя приобрести, как знания из книги, они формируются с помощью опыта и постоянной практики.

➡️Какие навыки входят в Soft Skills?

Среди навыков, которые входят в Soft Skills, можно выделить коммуникационные навыки, умение работать в команде, эмоциональный интеллект, лидерские качества, умение принимать решения и адаптироваться к новым условиям. Коммуникационные навыки включают умение слушать, говорить и писать на разных языках, убеждать и убеждаться, умение находить общий язык с людьми разного статуса и возраста. Умение работать в команде подразумевает способность находить компромиссы, делегировать задачи, решать конфликты и добиваться общей цели. Эмоциональный интеллект включает в себя умение управлять своими эмоциями, понимать эмоциональное состояние других людей и адекватно реагировать на него. Лидерские качества включают в себя умение мотивировать людей, делегировать задачи, принимать решения и выстраивать стратегию. Умение принимать решения и адаптироваться к новым условиям является важным навыком в современном мире, где требуется быстро реагировать на изменения и принимать решения в условиях неопределенности.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1
⚡️Hard Skills - это конкретные знания и умения, которые могут быть изучены и измерены. Они часто требуются для выполнения конкретных задач и могут быть измерены с помощью тестов или экзаменов. Некоторые примеры Hard Skills включают в себя знания программирования, математики, английского языка и многих других.

➡️Примером Hard Skills в программировании могут быть навыки написания кода на различных языках, знание алгоритмов и структур данных, опыт работы с базами данных

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
➡️Декоратор - это функция, которая принимает функцию в качестве аргумента и возвращает другую функцию. В основном, декораторы используются для добавления дополнительного поведения к функциям или классам. Декораторы могут быть использованы для регистрации функций, логирования, кэширования и многих других задач.

➡️Как использовать декоратор?

Для использования декоратора в Python, вы можете определить функцию, которая будет принимать функцию в качестве аргумента и возвращать другую функцию, которая будет выполнять дополнительный код. Затем вы можете применить эту функцию к вашей целевой функции.

⬆️В примере на фото мы определили декоратор my_decorator, который принимает функцию в качестве аргумента и возвращает другую функцию wrapper, которая будет выполнять дополнительный код до и после вызова целевой функции. Затем мы применяем декоратор к функции say_hello с помощью символа @. При вызове функции say_hello, будет вызвана функция wrapper, которая выполнит дополнительный код.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥2
🤣20👍95😁3
➡️Хеш-таблица - это структура данных, которая используется для эффективного хранения и поиска информации. Она основана на идее хеширования, где каждый элемент имеет уникальный хеш-код, который используется для быстрого доступа к данным.

➡️Как работает хеш-таблица?

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

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

➡️Преимущества использования хеш-таблицы:

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥1
➡️deepcopy - это функция в Python, которая используется для создания копии объектов, включая все вложенные объекты. Она глубоко копирует все элементы объекта, включая вложенные списки, словари и т.д. Это означает, что изменения, внесенные в копию, не влияют на оригинальный объект.

Для использования deepcopy в Python нужно импортировать модуль copy. Затем можно использовать функцию deepcopy, чтобы создать копию объекта. Например:

import copy

list1 = [1, [2, 3], 4]
list2 = copy.deepcopy(list1)


⬆️В этом примере мы создали список list1, который содержит два элемента: число 1 и список [2, 3]. Затем мы использовали deepcopy, чтобы создать копию этого списка и присвоить ее переменной list2. Теперь у нас есть два списка, которые содержат одинаковые элементы.

list2[1][0] = 5
print(list1) # [1, [2, 3], 4]
print(list2) # [1, [5, 3], 4]


Как видно из примера, изменение элемента в копии не влияет на оригинальный список.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1
👍53🔥1
⁉️Что выдаст код выше?
Anonymous Quiz
11%
1
6%
0
16%
5
20%
6
31%
7
15%
Error
👍7🔥3🤔1
Разбор

Вызываем функцию rec, передавая туда значение 3.
Внутри функции идет проверка, где мы в return'e возвращаем результат n + новый вызов функции rec(n-1) —> rec(2)

Операция повторяется и мы возвращаем результат n + rec(n-1) —> n + rec(1)

Заходим заново в функцию и возвращаем n + rec(0) —> теперь после вызова сработает return 1, т.к. if проверяет что n==0.

После чего, идем замыкать рекурсию в обратную сторону.

n + rec(0) —> 1 + 1 —> 2
n + rec(1) —> 2 + 2 —> 4
n + rec(2) —> 3 + 4 —> 7
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯13🔥5👍4👏2🤓1👀1
😁13🤣9👍2
➡️NamedTuple

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

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

from collections import namedtuple

Person = namedtuple('Person', ['name', 'age'])

person1 = Person(name='John', age=30)
person2 = Person(name='Jane', age=25)

print(person1.name) # John
print(person2.age) # 25

Или например:

from collections import namedtuple

Person = namedtuple('Person', 'name age')

person1 = Person('John', 30)
person2 = Person(name='Jane', age=25)

print(person1.name) # John
print(person2.age) # 25


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3🤔1
➡️Одной из главных функций Collections Counter является подсчет элементов в коллекции. Для этого необходимо импортировать модуль collections и создать объект Counter с передачей коллекции в качестве аргумента. В результате выполнения функции мы получим словарь, где ключами будут элементы коллекции, а значениями — их количество. Рассмотрим пример:

from collections import Counter

lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
counted_elements = Counter(lst)
print(counted_elements)


В результате выполнения этого кода мы получим следующий словарь:

{1: 1, 2: 2, 3: 3, 4: 4}


➡️Переопределение элементов коллекции

С помощью Collections Counter мы также можем переопределить элементы коллекции. Для этого необходимо создать объект Counter для исходной коллекции и передать новые значения с помощью метода update(). Рассмотрим пример:

from collections import Counter

lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
counted_elements = Counter(lst)
print(counted_elements)

counted_elements.update({2: 5, 5: 1})
print(counted_elements)


В результате выполнения этого кода мы получим следующий словарь:

{1: 1, 2: 2, 3: 3, 4: 4}
{1: 1, 2: 7, 3: 3, 4: 4, 5: 1}


➡️Нахождение n наиболее часто встречающихся элементов

Collections Counter также позволяет находить n наиболее часто встречающихся элементов в коллекции. Для этого необходимо использовать метод most_common(n), где n — количество наиболее часто встречающихся элементов, которые нужно найти. Рассмотрим пример:

from collections import Counter

lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
counted_elements = Counter(lst)

most_common_elements = counted_elements.most_common(2)
print(most_common_elements)


В результате выполнения этого кода мы получим следующий список:

[(4, 4), (3, 3)]


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥2
🔎ORM - это аббревиатура от Object-Relational Mapping, что в переводе означает "отображение объектов на реляционные структуры данных". ORM - это технология, которая позволяет программистам работать с данными в базах данных, используя объектно-ориентированный подход.

➡️Как работает ORM

ORM позволяет программистам работать с базами данных, не взаимодействуя с ними напрямую. Вместо этого, ORM предоставляет программистам API, который позволяет им работать с данными, как если бы они были объектами в коде. ORM берет на себя задачу преобразования объектов в данные, которые могут быть сохранены в базе данных, и обратно.

➡️Преимущества ORM

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4👍2
➡️Существует множество популярных библиотек ORM, доступных в Python, каждая со своими преимуществами и недостатками. Некоторые из наиболее популярных библиотек включают SQLAlchemy, Django ORM и Peewee.

➡️SQLAlchemy является популярным выбором, потому что он настраиваемый и предоставляет широкий спектр функций, включая поддержку нескольких баз данных. Django ORM - это еще один популярный выбор, особенно для разработчиков, использующих веб-фреймворк Django. Peewee - это легкий ORM, который легко использовать и предоставляет простой API для взаимодействия с базами данных.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
🔎GIL, или Global Interpreter Lock, является механизмом в CPython, который ограничивает выполнение Python-кода одним потоком в один момент времени. Это означает, что даже если у вас есть несколько потоков в Python-программе, только один поток может выполняться в любой момент времени.

➡️Как работает GIL?

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

➡️Влияние GIL на производительность

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1
🔎Хакатоны - это мероприятия, на которых программисты собираются вместе, чтобы работать в коллективе над проектами. Они обычно проходят на выходных и включают в себя много работы за короткое время.

➡️Цель и формат хакатонов

Цель хакатонов - это создание рабочих прототипов программных продуктов в короткие сроки. Это помогает разработчикам проверить, насколько их идеи реализуемы, и получить обратную связь от других участников и экспертов. Формат хакатонов очень разнообразен - от небольших встреч в офисах компаний до крупных соревнований, на которых участвуют сотни программистов. В любом случае, участники работают в командах, обычно состоящих из 3-5 человек, и имеют на выбор несколько тематик для работы.

➡️Преимущества участия в хакатонах

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍6🔥1🤝1
🔎В программировании, сборщик мусора - это механизм, который автоматически удаляет объекты, которые больше не используются программой, освобождая память. Сборщик мусора очень полезен для устранения утечек памяти и других проблем с управлением памятью.

➡️В Python сборка мусора - это часть виртуальной машины Python. Сборка мусора в Python работает следующим образом:

1. Когда объект создается, он помещается в "кучу" (heap).
2. Когда объект больше не используется, сборщик мусора помечает его как "мусор".
3. Сборщик мусора периодически запускается и проверяет все объекты в куче.
4. Если объект помечен как "мусор", сборщик мусора удаляет его из памяти.

➡️Сборка мусора в Python происходит автоматически и не требует дополнительного управления со стороны разработчика. Однако, если вы работаете с большими объемами данных, может быть полезно вручную вызывать сборщик мусора с помощью метода gc.collect().

➡️Сборщик мусора имеет некоторые недостатки. Он может замедлять работу программы, так как сборка мусора занимает время процессора. Кроме того, сборка мусора может быть непредсказуемой, особенно если программа использует много памяти.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🔥1