Словарь (dict)
Словарь — это неупорядоченная структура данных, хранящая пары «ключ — значение», при этом каждый ключ, в рамках одного словаря, является уникальным. Как и списки, объект словаря хранит лишь указатели, а не сами значения.
Важно: если использовать изменяемый тип данных в качестве ключа, возникнет ошибка. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же.
#типы_данных
Словарь — это неупорядоченная структура данных, хранящая пары «ключ — значение», при этом каждый ключ, в рамках одного словаря, является уникальным. Как и списки, объект словаря хранит лишь указатели, а не сами значения.
Важно: если использовать изменяемый тип данных в качестве ключа, возникнет ошибка. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же.
#типы_данных
🤯1
NumPy
NumPy является основной библиотекой для многих проектов и других библиотек, связанных с научными вычислениями. Основное предназначение — работа с массивами и матрицами.
Ее преимущество заключается в быстрой и эффективной обработке данных, поддержке математических операций и возможности работы с большими объемами данных. Основные вычисления выполняются на языке C, что и обеспечивает высокую производительность.
Широко используется в научных вычислениях, обработке данных, машинном обучении, анализе изображений, статистике и других областях, где требуется эффективная работа с массивами числовых данных.
#библиотеки
NumPy является основной библиотекой для многих проектов и других библиотек, связанных с научными вычислениями. Основное предназначение — работа с массивами и матрицами.
Ее преимущество заключается в быстрой и эффективной обработке данных, поддержке математических операций и возможности работы с большими объемами данных. Основные вычисления выполняются на языке C, что и обеспечивает высокую производительность.
Широко используется в научных вычислениях, обработке данных, машинном обучении, анализе изображений, статистике и других областях, где требуется эффективная работа с массивами числовых данных.
#библиотеки
Метод list.reverse()
Метод reverse() изменяет порядок элементов списка на обратный. Вызов этого метода изменяет существующий список, а не возвращает новый. Если нужно получить доступ к отдельным элементам списка в обратном порядке, лучше использовать функцию reversed()
#практика
Метод reverse() изменяет порядок элементов списка на обратный. Вызов этого метода изменяет существующий список, а не возвращает новый. Если нужно получить доступ к отдельным элементам списка в обратном порядке, лучше использовать функцию reversed()
#практика
Оценка сложности алгоритма
Оценка сложности алгоритма представляет собой способ определения скорости выполнения алгоритма в зависимости от размера входных данных. Обычно сложность алгоритма измеряется с учетом времени выполнения (временная сложность) и использования ресурсов (пространственная сложность).
Временная сложность алгоритма определяет сколько времени потребуется на выполнение алгоритма в зависимости от размера входных данных. Временная сложность обычно выражается в "O-нотации". Например, алгоритм с временной сложностью O(n) будет иметь линейную зависимость от размера входных данных n.
Пространственная сложность алгоритма определяет сколько памяти потребуется на выполнение алгоритма в зависимости от размера входных данных. Например, алгоритм с пространственной сложностью O(n) будет занимать память пропорционально размеру входных данных n.
Оценка сложности алгоритма позволяет оценить эффективность алгоритма и выбрать наиболее подходящий под конкретную задачу.
#теория
Оценка сложности алгоритма представляет собой способ определения скорости выполнения алгоритма в зависимости от размера входных данных. Обычно сложность алгоритма измеряется с учетом времени выполнения (временная сложность) и использования ресурсов (пространственная сложность).
Временная сложность алгоритма определяет сколько времени потребуется на выполнение алгоритма в зависимости от размера входных данных. Временная сложность обычно выражается в "O-нотации". Например, алгоритм с временной сложностью O(n) будет иметь линейную зависимость от размера входных данных n.
Пространственная сложность алгоритма определяет сколько памяти потребуется на выполнение алгоритма в зависимости от размера входных данных. Например, алгоритм с пространственной сложностью O(n) будет занимать память пропорционально размеру входных данных n.
Оценка сложности алгоритма позволяет оценить эффективность алгоритма и выбрать наиболее подходящий под конкретную задачу.
#теория
🤓2👍1
Сортировка пузырьком
Самый простой и известный способ сортировки элементов массива. Вместе с этим это самый неэффективный алгоритм, на выполнение которого уходит много времени.
Временная сложность = O(n²).
В наихудшем случае внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени.
Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве
#алгоритмы
Самый простой и известный способ сортировки элементов массива. Вместе с этим это самый неэффективный алгоритм, на выполнение которого уходит много времени.
Временная сложность = O(n²).
В наихудшем случае внутренний цикл работает не менее n раз. Поэтому операция займет не менее n² времени.
Пространственная сложность = O(1).
Дополнительная память не используется, потому что происходит обмен элементов в исходном массиве
#алгоритмы
Книга: "Знакомство с Python (Дэн Бейдер)"
Лаконичное руководство по Python от автора книги "Чистый Python" и проекта RealPython. Хорошее и плавное погружение в Питон с разбором полезных библиотек: включая обработку CSV файлов, установку пакетов с помощью pip, работу с PDF, знакомство с базами данных, парсинг сайтов, научные вычисления в NumPy и создание приложений с графическим интерфейсом.
Книга не сильно глубокая, но как старт в программирование на Python вполне хороша.
#книги
Лаконичное руководство по Python от автора книги "Чистый Python" и проекта RealPython. Хорошее и плавное погружение в Питон с разбором полезных библиотек: включая обработку CSV файлов, установку пакетов с помощью pip, работу с PDF, знакомство с базами данных, парсинг сайтов, научные вычисления в NumPy и создание приложений с графическим интерфейсом.
Книга не сильно глубокая, но как старт в программирование на Python вполне хороша.
#книги
Метод string.count()
Метод count для строк возвращает количество непересекающихся совпадений. При необходимости, можно установить начальную и конечную позиции поиска, используя аргументы start и end. Обратите внимание: метод чувствителен к регистру.
#практика
Метод count для строк возвращает количество непересекающихся совпадений. При необходимости, можно установить начальную и конечную позиции поиска, используя аргументы start и end. Обратите внимание: метод чувствителен к регистру.
#практика
Сегодня отмечается день рождения одного из самых популярных и универсальных языков программирования - Python! Этот язык был разработан Гвидо ван Россумом и впервые выпущен 20 февраля 1991 года. С тех пор Python завоевал огромную популярность благодаря своей простоте, гибкости и множеству библиотек для различных задач. Он используется во многих областях, включая разработку веб-приложений, анализ данных, искусственный интеллект, машинное обучение и многое другое. Поздравляем язык Python с его днем рождения и благодарим его создателя и сообщество разработчиков за их труд и вклад в мир программирования! 🎉🎂🐍
❤4
Функция zip()
Функция zip() объединяет элементы из двух или более итерируемых объектов в кортежи. Эти кортежи могут быть использованы для одновременного перебора последовательности, создания словарей, сортировки нескольких связанных между собой списков. Результатом вызова zip() является итератор кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности.
Обратите внимание, что если объекты имеют разную длину, итерация происходит по минимальной длине из всех объектов.
#практика
Функция zip() объединяет элементы из двух или более итерируемых объектов в кортежи. Эти кортежи могут быть использованы для одновременного перебора последовательности, создания словарей, сортировки нескольких связанных между собой списков. Результатом вызова zip() является итератор кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности.
Обратите внимание, что если объекты имеют разную длину, итерация происходит по минимальной длине из всех объектов.
#практика
Функция range()
Функция range() возвращает итератор – объекта класса range, содержащий целые числа в указанном диапазоне. Если функции передается только один аргумент (stop), то возвращается последовательность чисел, начиная с 0 и заканчивая указанным числом, но не включая его. Если в функцию передаются два аргумента (start, stop), то возвращается последовательность чисел, начиная с числа start и заканчивая числом stop, но не включая его. Третий аргумент функции – это шаг последовательности, по умолчанию 1.
#практика
Функция range() возвращает итератор – объекта класса range, содержащий целые числа в указанном диапазоне. Если функции передается только один аргумент (stop), то возвращается последовательность чисел, начиная с 0 и заканчивая указанным числом, но не включая его. Если в функцию передаются два аргумента (start, stop), то возвращается последовательность чисел, начиная с числа start и заканчивая числом stop, но не включая его. Третий аргумент функции – это шаг последовательности, по умолчанию 1.
#практика
Алгоритм Евклида
Алгоритм Евклида — это эффективный алгоритм для нахождения наибольшего общего делителя двух целых чисел путем последовательных вычитаний одного числа из другого. Метод состоит в том, чтобы последовательно вычитать меньшее число из большего до тех пор, пока они не станут равны друг другу. Этот метод основан на том факте, что НОД(a, b) = НОД(b, a-b) для любых натуральных чисел a и b.
Записанный в таком виде алгоритм неэффективен, так как многократно использует вычитания. Чтобы оптимизировать алгоритм необходимо заменить операцию вычитания на взятие остатка.
#алгоритмы
Алгоритм Евклида — это эффективный алгоритм для нахождения наибольшего общего делителя двух целых чисел путем последовательных вычитаний одного числа из другого. Метод состоит в том, чтобы последовательно вычитать меньшее число из большего до тех пор, пока они не станут равны друг другу. Этот метод основан на том факте, что НОД(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
Записанный в таком виде алгоритм неэффективен, так как многократно использует вычитания. Чтобы оптимизировать алгоритм необходимо заменить операцию вычитания на взятие остатка.
#алгоритмы
Модуль math: округление
Модуль math предоставляет несколько функций для округления чисел. Функция floor() округляет число в меньшую сторону. Функция ceil() округляет число в большую сторону. Функция trunc() отбрасывает дробную часть числа.
#практика
Модуль math предоставляет несколько функций для округления чисел. Функция floor() округляет число в меньшую сторону. Функция ceil() округляет число в большую сторону. Функция trunc() отбрасывает дробную часть числа.
#практика
Функции chr() и ord()
Функция chr() принимает целое число в качестве аргумента и возвращает символ, соответствующий этому числу в таблице символов Unicode.
Функция ord() принимает символ в качестве аргумента и возвращает соответствующее ему целое число в таблице символов Unicode.
#практика
Функция chr() принимает целое число в качестве аргумента и возвращает символ, соответствующий этому числу в таблице символов Unicode.
Функция ord() принимает символ в качестве аргумента и возвращает соответствующее ему целое число в таблице символов Unicode.
#практика
👍2
Функция repr()
Функция repr() возвращает строку, которая представляет печатаемое формальное представление объекта. Внутренне функция вызывает метод
👉 Читать статью
#статьи
Функция repr() возвращает строку, которая представляет печатаемое формальное представление объекта. Внутренне функция вызывает метод
__repr__
передаваемого объекта. Подробнее об использовании этой функции можно прочитать в статье.👉 Читать статью
#статьи
Класс datetime: метод now()
Метод now() класса datetime возвращает объект класса datetime с текущей локальной датой и временем (на устройстве) .
#практика
Метод now() класса datetime возвращает объект класса datetime с текущей локальной датой и временем (на устройстве) .
#практика
Красивая визуализация ошибок
Программистам важны хорошие сообщения об ошибках, поскольку они помогают лучше понимать что произошло в программе, а также быстрее и эффективнее исправлять проблемы.
Библиотека
Установка:
#практика
Программистам важны хорошие сообщения об ошибках, поскольку они помогают лучше понимать что произошло в программе, а также быстрее и эффективнее исправлять проблемы.
Библиотека
rich.traceback
предоставляет улучшенный и красивый способ отображения сообщений об ошибках. Она позволяет добавить цветовую разметку, форматирование, отображение локальных переменных, трассировку стека ошибки и другие улучшения, улучшающие визуальное представление ошибок. Это делает процесс отладки более эффективным и приятным.Установка:
pip install rich
#практика
🔥3