Блог python программиста
Изображение гика

Блог питониста

Пишем змейку на pygame

Есть такая библиотека для разработки двухмерных игр - pygame. Недавно я прошел курс на образовательном сайте udemy - Python Game Development : Creating a Snake Game from scratch. Этот курс посвещен созданию классической змейки на pygame. Хотел бы поделиться получившейся игрой. Весь код в данном посте я взял из данного курса, правда изрядно его изменил, в частности добавил использование классов.

Читать далее

Книга про нейтронные звезды

Недавно прочитал научно-популярную книгу про нейтронные звезды. Хочу рассказать о прочитанном. Называется книга "Cуперобъекты. Звезды размером с город". Автор - Сергей Попов, доктор физико-математических наук, астрофизик и популяризатор науки, ведущий научный сотрудник института имени П.К. Штернберга (ГАИШ МГУ). Несколько лет проработал в европейских университетах и обсерваториях. Основная область его научных интересов - астрофизика нейтронных звезд.

Читать далее

Немного об импортах в питоне

Хотелось бы рассказать об одном моменте, связанном с системой импортов в питоне. Неподготовленному человеку может иногда показаться, что происходят нелогичные вещи, несоответствующие его ожиданиям. Так было со мной, когда я впервые столкнулся с данной проблемой.

Читать далее

Делаем navbar

Иногда нужно сделать navbar и переключать класс active на выбранной ссылке. Это можно сделать по-разному, расскажу об одном решении. Допустим у вас есть простое Flask - приложение:

Читать далее

Попытка разобраться с многопоточностью

Многопоточность подразумевает, что несколько потоков будут исполняться параллельно. В идеале использование многопоточности ускоряет выполнение программы. Однако, в python есть такая штука как GIL, Global Interpreter Lock, которая обеспечивает то, что в каждый момент времени активен только один поток.

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

Читать далее