Python Map | Обучение
246 subscribers
196 photos
4 videos
1 file
85 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – @HackingIP
Download Telegram
Функция bool()

Функция bool() в Python возвращает логическое значение для объекта. Логический тип данных может хранить только 2 значения: True и False.

Вот случаи, в которых функция bool() возвращает False . За исключением этого, все остальные значения возвращают True.
● Если передано значение False
● Если ничего не передано
● Если передается пустая последовательность, такая как (), [], и т.д.
● Если ноль передается в любом числовом типе, таком как 0, 0.0 и т.д.
● Если передается пустой словарь, например {}
● Если объекты классов имеют метод __bool__() или __len__(), возвращающий 0 или False

#теория
👍2
Функция all()

Функция all() возвращает значение True, если все элементы в итерируемом объекте – истинны, в противном случае она возвращает значение False. Если передаваемая последовательность пуста, то функция all() также возвращает True.

#практика
👍1
Функция any()

Функция any() возвращает значение True, если по крайней мере один элемент в итерируемом объекте является истинным, в противном случае она возвращает значение False. Если передаваемая последовательность пуста, то функция any() возвращает False.

#практика
Функция round()

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

Поведение встроенной функции round() для типа float может быть неожиданным: например, round(2.675, 2) вернёт 2.67 вместо ожидаемого 2.68. Это не ошибка: это результат того, что большинство десятичных дробей невозможно представить точно как число с плавающей запятой.

#практика
Хэширование

Хэш — это строка символов фиксированной длины, которая идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.

Для хэширования значений используется встроенная функция hash(). Она применяется в основном для сравнения разных объектов, так как сравнивать хэши легче и выгоднее.

Также важно учитывать, что могут возникать коллизии, когда у разных значений совпадают хэши. Например, хэши чисел -1 и -2 совпадают.

#теория
👍2
Словарь (dict)

Словарь — это неупорядоченная структура данных, хранящая пары «ключ — значение», при этом каждый ключ, в рамках одного словаря, является уникальным. Как и списки, объект словаря хранит лишь указатели, а не сами значения.

Важно: если использовать изменяемый тип данных в качестве ключа, возникнет ошибка. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же.

#типы_данных
🤯1
NumPy

NumPy является основной библиотекой для многих проектов и других библиотек, связанных с научными вычислениями. Основное предназначение — работа с массивами и матрицами.

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

Широко используется в научных вычислениях, обработке данных, машинном обучении, анализе изображений, статистике и других областях, где требуется эффективная работа с массивами числовых данных.

#библиотеки
Метод list.reverse()

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

#практика
Оценка сложности алгоритма

Оценка сложности алгоритма представляет собой способ определения скорости выполнения алгоритма в зависимости от размера входных данных. Обычно сложность алгоритма измеряется с учетом времени выполнения (временная сложность) и использования ресурсов (пространственная сложность).

Временная сложность алгоритма определяет сколько времени потребуется на выполнение алгоритма в зависимости от размера входных данных. Временная сложность обычно выражается в "O-нотации". Например, алгоритм с временной сложностью O(n) будет иметь линейную зависимость от размера входных данных n.

Пространственная сложность алгоритма определяет сколько памяти потребуется на выполнение алгоритма в зависимости от размера входных данных. Например, алгоритм с пространственной сложностью O(n) будет занимать память пропорционально размеру входных данных n.

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

#теория
🤓2👍1
Сортировка пузырьком

Самый простой и известный способ сортировки элементов массива. Вместе с этим это самый неэффективный алгоритм, на выполнение которого уходит много времени.

Временная сложность = O(n²).
В наихудшем случае внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени.

Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве

#алгоритмы
Книга: "Знакомство с Python (Дэн Бейдер)"

Лаконичное руководство по Python от автора книги "Чистый Python" и проекта RealPython. Хорошее и плавное погружение в Питон с разбором полезных библиотек: включая обработку CSV файлов, установку пакетов с помощью pip, работу с PDF, знакомство с базами данных, парсинг сайтов, научные вычисления в NumPy и создание приложений с графическим интерфейсом.

Книга не сильно глубокая, но как старт в программирование на Python вполне хороша.

#книги
Метод string.count()

Метод count для строк возвращает количество непересекающихся совпадений. При необходимости, можно установить начальную и конечную позиции поиска, используя аргументы start и end. Обратите внимание: метод чувствителен к регистру.

#практика
Сегодня отмечается день рождения одного из самых популярных и универсальных языков программирования - Python! Этот язык был разработан Гвидо ван Россумом и впервые выпущен 20 февраля 1991 года. С тех пор Python завоевал огромную популярность благодаря своей простоте, гибкости и множеству библиотек для различных задач. Он используется во многих областях, включая разработку веб-приложений, анализ данных, искусственный интеллект, машинное обучение и многое другое. Поздравляем язык Python с его днем рождения и благодарим его создателя и сообщество разработчиков за их труд и вклад в мир программирования! 🎉🎂🐍
4
Функция zip()

Функция zip() объединяет элементы из двух или более итерируемых объектов в кортежи. Эти кортежи могут быть использованы для одновременного перебора последовательности, создания словарей, сортировки нескольких связанных между собой списков. Результатом вызова zip() является итератор кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности.

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

#практика
Функция range()

Функция range() возвращает итератор – объекта класса range, содержащий целые числа в указанном диапазоне. Если функции передается только один аргумент (stop), то возвращается последовательность чисел, начиная с 0 и заканчивая указанным числом, но не включая его. Если в функцию передаются два аргумента (start, stop), то возвращается последовательность чисел, начиная с числа start и заканчивая числом stop, но не включая его. Третий аргумент функции – это шаг последовательности, по умолчанию 1.

#практика
Алгоритм Евклида

Алгоритм Евклида — это эффективный алгоритм для нахождения наибольшего общего делителя двух целых чисел путем последовательных вычитаний одного числа из другого. Метод состоит в том, чтобы последовательно вычитать меньшее число из большего до тех пор, пока они не станут равны друг другу. Этот метод основан на том факте, что НОД(a, b) = НОД(b, a-b) для любых натуральных чисел a и b.

Пример:
Найти НОД для a = 24 и b = 18
24 - 18 = 6
a = 6 и b = 18
18 - 6 = 12
a = 6 и b = 12
12 - 6 = 6
a = 6 и b = 6
Ответ: 6


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

#алгоритмы