Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Forwarded from Python Daily
Среда это маленькая пятница, поэтому вот вам немного пятничный пост.

1. Откройте в web гитхаба любой проект (например https://github.com/python/cpython)
2. Нажмите . (кнопка на клавиатуре, точка)
3. Вы прекрасны

#pydaily #nothabr
Forwarded from Python Daily
lona-web-org/lona - очень любопытный фреймворк, который позволяет писать веб-приложения полностью на пайтоне. Ни строчки на js впредь! 😁

from lona.html import HTML, Button, Div, H1
from lona import LonaApp, LonaView

app = LonaApp(__file__)

@app.route('/')
class MyView(LonaView):
def handle_request(self, request):
message = Div('Button not clicked')
button = Button('Click me!')

html = HTML(
H1('Click the button!'),
message,
button,
)

self.show(html)

# this call blocks until the button was clicked
input_event = self.await_click(button)

if input_event.node == button:
message.set_text('Button clicked')

return html


app.run(port=8080)


#github #github_explore #nothabr #pydaily
Forwarded from Python Daily
Вышел Docker Compose V2. Первая версия была написана на Python, вторая же теперь на Golang, что довольно логично. Наконец можно писать в терминале docker compose вместо docker-compose. Для более лёгкого перехода команда Docker написала тулзу compose-switch, которая транслирует docker-compose команды в новый docker compose.
Судя по документации первая версия всё еще будет поддерживаться и продолжит работать в штатном режиме.

#docker #nothabr #pydaily
Forwarded from Python Daily
А вы знали что у builtin функции iter() есть два варианта использования?

Первый, о котором знают все - вызывает у объекта метод __iter__() и возвращает результат.

А вот второй принимает Callable без аргументов и значение, на котором нужно остановиться. Можно применять, например, для чтения файлов блоками:
from functools import partial
with open('mydata.db', 'rb') as f:
for block in iter(partial(f.read, 64), b''):
process_block(block)

Более простой пример:
>>> a = (i for i in (1, 2, 3, 4, 5))
>>> list(iter(lambda: next(a), 4))
[1, 2, 3]

#python_cookbook #iter #nothabr #pydaily
Forwarded from Python Daily
“Zero-cost” exceptions are implemented. The cost of try statements is almost eliminated when no exception is raised. (Contributed by Mark Shannon in bpo-40222.)

Наконец-то сделали поддержку "бесплатных" исключений. Под бесплатностью имеется в виду что блок try не будет потреблять практически никаких ресурсов, если в нём не возникнет исключение. Во многих других языках это уже давно есть.
Мне кажется что только одна эта оптимизация поспособствовала значительному ускорению 3.11.

#pydaily
Forwarded from Python Daily
Если вы хотели попробовать сделать свою игру - вот список видео (+ бонус) с которых можно начать знакомство с pygame:

Введение: The ultimate introduction to Pygame
Тут объяснят основы: отрисовка изображений, позиционирование, коллизии, передвижение, анимации и т.д.

Большая и подробная серия видео про разработку платформера: Mario in Python with Pygame (and pirates)
Продолжение предыдущего ролика, которое объясняет такие вещи как: передвижение камеры, создание уровня в редакторе карт, глобальная карта локаций, UI и т.д.

Как работать с координатами в изометрических играх:
Introduction to Isometric Movement in Games
How Isometric Coordinates Work in 2D games

Основы создания тайлов для изометрических игр:
Pixel Art Class - Isometric Tile Basics!
Pixel Art Class - Isometric Character Basics

БОНУС
Огромный список примеров реализации разных механик и проблем: PyGame Examples and Answers

#pygame #gamedev #pydaily #nothabr