Копирование объектов
При стандартном присваивании обычно новый объект не создается, а лишь копируется ссылка на уже имеющийся. Если использовать
Если же использовать
При стандартном присваивании обычно новый объект не создается, а лишь копируется ссылка на уже имеющийся. Если использовать
copy.copy(), произойдет поверхностное копирование, т.е. создастся новый объект, но его ссылки на другие объекты будут те же.Если же использовать
copy.deepcopy(), то получатся "настоящие" копии объекта и всех его ссылок.💯16👍6🆒1
Избегайте вложенных циклов с помощью product
Когда программа становится сложной, неизбежно приходится писать вложенные циклы. Однако вложенные циклы делают программы более сложными для чтения и сопровождения.
К счастью, в Python всегда можно избежать вложенных циклов с помощью встроенной функции product().
Например, у нас есть следующая программа, которая содержит трехуровневые вложенные циклы for.
Чтобы сделать код более аккуратным и чистым, мы можем использовать функцию product(), которая находится в модуле itertools, для оптимизации кода.
Когда программа становится сложной, неизбежно приходится писать вложенные циклы. Однако вложенные циклы делают программы более сложными для чтения и сопровождения.
К счастью, в Python всегда можно избежать вложенных циклов с помощью встроенной функции product().
Например, у нас есть следующая программа, которая содержит трехуровневые вложенные циклы for.
Чтобы сделать код более аккуратным и чистым, мы можем использовать функцию product(), которая находится в модуле itertools, для оптимизации кода.
👍45🆒9🔥3😱3💯3❤1🤔1
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
Смотреть статью
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
Смотреть статью
👍31💯3🆒3❤2🍾2
Узнаем информацию о стране
countryinfo - модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них.
Установка пакета - pip install countryinfo.
В нашем примере мы узнаем население, официальный язык и столицу Испании.
Документацию пакета можно найти здесь.
P.S. Не забываем ставить реакции
countryinfo - модуль Python для возврата данных о странах, информации ISO и штатах/провинциях внутри них.
Установка пакета - pip install countryinfo.
В нашем примере мы узнаем население, официальный язык и столицу Испании.
Документацию пакета можно найти здесь.
P.S. Не забываем ставить реакции
👍42💯7🆒6
👍27🤔10🗿7👨💻4🔥3😢2🎉1💯1🆒1
Данные о памяти
Благодаря пакету
Благодаря пакету
shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.👍23💯3🆒3
Самый легкий способ мерджить словари
Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.
Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.
Как показано в примере выше, мы можем просто использовать оператор | для слияния двух разных словарей. Более того, он также поддерживает объединение in-place.
Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.
Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.
Как показано в примере выше, мы можем просто использовать оператор | для слияния двух разных словарей. Более того, он также поддерживает объединение in-place.
👍30🗿5💯3😱2🆒2
🤔41👍23🆒9
Как сделать "Тетрис" на Python
В этом видео вы узнаете как сделать игру Тетрис на Python, используя библиотеку Pygame.
Смотреть видео
В этом видео вы узнаете как сделать игру Тетрис на Python, используя библиотеку Pygame.
Смотреть видео
👍33💯2🆒2
Универсальный парсер статей
Пакет
В качестве примера на картинке парсим статью https://proglib.io/sh/DhyuCFH5p3. Плюс пакета в том, что весь процесс парсинга автоматизирован и не надо вручную искать нужные теги и тянуть из них данные.
Точность парсера зависит в основном от того, как хорошо сверстана запрашиваемая страница, поэтому в некоторых случаях результат может отличаться от ожиданий.
Пакет
newspaper3k позволяет парсить статьи и извлекать из них заголовки, текст, дату публикации, имена авторов и много другой информации. Полный список возможностей в документации.В качестве примера на картинке парсим статью https://proglib.io/sh/DhyuCFH5p3. Плюс пакета в том, что весь процесс парсинга автоматизирован и не надо вручную искать нужные теги и тянуть из них данные.
Точность парсера зависит в основном от того, как хорошо сверстана запрашиваемая страница, поэтому в некоторых случаях результат может отличаться от ожиданий.
👍27💯1🆒1
Узнаем курс биткоина за определенный промежуток времени
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Текущая программа выдает нам цену одного биткоина в рублях за каждый день в промежуток времени начиная с 10:10:10 18 мая 2020 года и заканчивая 10:10:10 20 мая 2020 года.
Документация библиотеки находиться здесь.
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Текущая программа выдает нам цену одного биткоина в рублях за каждый день в промежуток времени начиная с 10:10:10 18 мая 2020 года и заканчивая 10:10:10 20 мая 2020 года.
Документация библиотеки находиться здесь.
👍11🆒2💯1
#Вопросы_с_собеседования
Напишите в одну строку как можно получить самую позднюю по коду букву в строке
Строковый метод max() будет сравнивать значение ASCII каждого символа в строке и возвращает максимальный алфавитный символ.
Напишите в одну строку как можно получить самую позднюю по коду букву в строке
Строковый метод max() будет сравнивать значение ASCII каждого символа в строке и возвращает максимальный алфавитный символ.
👍33🆒6🤔2💯1
🤔29👍10🔥4🆒4🗿3😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Моделирование лесных пожаров: теория, клеточный автомат на Python
Простая модель лесного пожара определяется как двумерный клеточный автомат на сетке клеток, которые принимают одно из трёх состояний: пустая клетка, занята деревом или горит.
Смотреть статью
Простая модель лесного пожара определяется как двумерный клеточный автомат на сетке клеток, которые принимают одно из трёх состояний: пустая клетка, занята деревом или горит.
Смотреть статью
👍29🆒2❤1💯1
Ограничение использования памяти и процессора
Если вместо оптимизации программы вы хотите ограничить используемые ею ресурсы компьютера, можно использовать полезные библиотеки. На картинке показано, как реализовать ограничения процессорного времени и объема используемой памяти.
Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
Если вместо оптимизации программы вы хотите ограничить используемые ею ресурсы компьютера, можно использовать полезные библиотеки. На картинке показано, как реализовать ограничения процессорного времени и объема используемой памяти.
Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
👍13🆒4❤2💯2