Рисуем 3D-куб с помощью Python
В этой посте мы рассмотрим трехмерные графики кубов с использованием matplotlib и Numpy. Кубы — одна из самых основных трехмерных фигур.
Куб — это трехмерный твердый объект, ограниченный 6 одинаковыми квадратными гранями. Куб имеет 6 граней, 12 ребер и 8 углов. Все грани — квадраты одинакового размера. Общая площадь поверхности куба равна сумме площадей шести одинаковых квадратов.
Наш куб находится в посте сверху.
Подробнее пояснение по коду можно найти здесь.
В этой посте мы рассмотрим трехмерные графики кубов с использованием matplotlib и Numpy. Кубы — одна из самых основных трехмерных фигур.
Куб — это трехмерный твердый объект, ограниченный 6 одинаковыми квадратными гранями. Куб имеет 6 граней, 12 ребер и 8 углов. Все грани — квадраты одинакового размера. Общая площадь поверхности куба равна сумме площадей шести одинаковых квадратов.
Наш куб находится в посте сверху.
Подробнее пояснение по коду можно найти здесь.
❤14👍4🍾3🏆1
Лайфхаки Python: сэкономить память и ускорить выполнение программы
Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
Смотреть статью
Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
Смотреть статью
Tproger
Как ускорить программу на Python и сэкономить память
Python часто ругают за то, что он медленный, но есть несколько способов ускорить код. В этой статье поговорим про обработку списков.
👍9🏆2❤1
#Вопросы_с_собеседования
❓Что делает функция zip()?
Она возвращает итератор кортежей, формирует n-пару значений из перечисляемых, передаваемых функции. n — кол-во итерируемых, которые передают функции.
Чтобы лучше понять работу zip, изучите картинку. В результате работы функции мы получаем список массивов.
❓Что делает функция zip()?
Она возвращает итератор кортежей, формирует n-пару значений из перечисляемых, передаваемых функции. n — кол-во итерируемых, которые передают функции.
Чтобы лучше понять работу zip, изучите картинку. В результате работы функции мы получаем список массивов.
🤔12👍11❤2🏆2
🎵 🎵 🎵 🎵
Немного отвлечемся от Pythonчика 🐍 🐍 🐍 🐍
Я уже долгое время не могу пополнить свой плейлист новыми хорошими треками, поэтому хотел бы узнать у вас, дорогих подписчиков, какую музыку вы слушаете и что могли бы порекомендовать 🎤 🎤 🎤 🎤
Немного отвлечемся от Pythonчика 🐍 🐍 🐍 🐍
Я уже долгое время не могу пополнить свой плейлист новыми хорошими треками, поэтому хотел бы узнать у вас, дорогих подписчиков, какую музыку вы слушаете и что могли бы порекомендовать 🎤 🎤 🎤 🎤
🤔11🏆4❤3👍1
😢25🤔10👍6🎉5😱4🍾4
Аудиомодуль Dejavu
Dejavu – это аудиомодуль на Python с открытым исходным кодом. Он может запоминать записанный звук, прослушивая его один раз, и этот звук сохраняется в базе данных.
После этого, когда проигрывается песня, микрофонный вход или дисковый файл, Dejavu пытается сопоставить звук с сохраненными в базе данными, и вернуть песню или запись, которая была воспроизведена ранее.
Модуль Dejavu превосходит распознавание отдельных сигналов с реалистичным количеством шума.
Подробнее можно почитать здесь.
Dejavu – это аудиомодуль на Python с открытым исходным кодом. Он может запоминать записанный звук, прослушивая его один раз, и этот звук сохраняется в базе данных.
После этого, когда проигрывается песня, микрофонный вход или дисковый файл, Dejavu пытается сопоставить звук с сохраненными в базе данными, и вернуть песню или запись, которая была воспроизведена ранее.
Модуль Dejavu превосходит распознавание отдельных сигналов с реалистичным количеством шума.
Подробнее можно почитать здесь.
👍21❤3🎉1🏆1
defaultdict: безошибочный словарь
Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку.
Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:
— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.
Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку.
Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:
— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.
🍾15❤3👍3🎉3🏆2😢1
#Вопросы_с_собеседования
❓Что будет выведено после второго вызова append() в коде выше?
Ответ:
Когда значением по умолчанию для аргумента функции является выражение, оно вычисляется только один раз, а не всегда при вызове функции. Таким образом, после того как аргумент list был инициализирован в пустой массив, последующие вызовы функции без аргументов продолжат использовать тот же самый массив, что был инициализирован изначально.
>>> append() # при первом вызове без аргумента используется значение по умолчанию []
[0]
>>> append() # но затем...
[0, 1]
>>> append() # последовательные вызовы расширяют список по умолчанию
[0, 1, 2]
>>> append() # и так продолжается...
[0, 1, 2, 3].
❓Что будет выведено после второго вызова append() в коде выше?
Ответ:
Когда значением по умолчанию для аргумента функции является выражение, оно вычисляется только один раз, а не всегда при вызове функции. Таким образом, после того как аргумент list был инициализирован в пустой массив, последующие вызовы функции без аргументов продолжат использовать тот же самый массив, что был инициализирован изначально.
[0]
>>> append() # но затем...
[0, 1]
>>> append() # последовательные вызовы расширяют список по умолчанию
[0, 1, 2]
>>> append() # и так продолжается...
[0, 1, 2, 3].
👍24🔥5🍾1
Проверка четности или нечетности числа без использования оператора %
Хотя этот трюк не намного лучше, чем использование оператора %, но иногда он эффективен (с большими числами).
Рассмотрим пару примеров:
k = 3
Двоичный: «11 & 1» будет 001, поэтому число нечетное
k = 4
Двоичный: «100 & 1» будет 000, поэтому число четное.
Хотя этот трюк не намного лучше, чем использование оператора %, но иногда он эффективен (с большими числами).
Рассмотрим пару примеров:
k = 3
Двоичный: «11 & 1» будет 001, поэтому число нечетное
k = 4
Двоичный: «100 & 1» будет 000, поэтому число четное.
👍56🔥2❤1😱1
Каким будет результат выполнения кода?
Anonymous Quiz
25%
Ошибка, для множества не существует метода update
33%
{1, 2, 3, 4, 5}
21%
Ошибка, список нельзя добавить во множество
7%
Ошибка, в списке есть дубликат значения
15%
Узнать ответ
😢14👍9🤔6🔥1🗿1
#Вопросы_с_собеседования
❓Объясните функции help() и dir() в Python.
Функция help() отображает строку документации и справку для ее аргумента. Пример по при вызове с функцией copy на картинке.
Функция dir() отображает все члены объекта (любого типа). Например:
```dir(copy.copy)
```
❓Объясните функции help() и dir() в Python.
Функция help() отображает строку документации и справку для ее аргумента. Пример по при вызове с функцией copy на картинке.
Функция dir() отображает все члены объекта (любого типа). Например:
```dir(copy.copy)
```
# ['__annotations__', '__call__', '__class__', '__closure__', ...
👍19😢2
This media is not supported in your browser
VIEW IN TELEGRAM
tqdm
Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:
На гифке пример прогрессбара. В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания, а сам модуль не требует никаких внешних библиотек.
Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:
from tqdm import tqdm
from tqdm.notebook import tqdm # для использования в Jupyter Notebook
for i in tqdm(range(10000)):
...
На гифке пример прогрессбара. В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания, а сам модуль не требует никаких внешних библиотек.
👍25❤2🎉1
Эффективный трюк, чтобы узнать, является ли число степенью двойки
Обычный метод деления имеет сложность O(logN), но эту задачу можно решить со сложностью O(v), где v — количество цифр числа в двоичной форме.
Подробнее ознакомиться с тем как работает данный трюк можно здесь.
Обычный метод деления имеет сложность O(logN), но эту задачу можно решить со сложностью O(v), где v — количество цифр числа в двоичной форме.
Подробнее ознакомиться с тем как работает данный трюк можно здесь.
👍36🔥1😱1
Изучение SQL с нуля
👉@SQl_and_DB_Learning👈
Подписывайся и изучай новый для себя язык программирования.
👉@SQl_and_DB_Learning👈
Подписывайся и изучай новый для себя язык программирования.
👍1