Introdução à programação
com Python em um contexto visual


Os modos de py5

Uma breve visão geral

A biblioteca py5 pode ser usada de várias maneiras, são estilos ou contextos de programação que chamamos de “modos”. Mais detalhes podem ser encontrados em py5coding.org - The Five py5 Modes.

⚠️ Se estiver em um Mac:
Leia Special Notes for OSX Users.

Module mode (modo de módulo)

Este modo pode parecer familiar para alguns programadores Python. Você importa a biblioteca no começo do código e define algumas funções especiais que o py5 chama para você, como setup() (executa uma vez quando o sketch é iniciado), draw() (repete continuamente, usado para interação e animações ) e, se quiser, algumas outras funções de evento. No final você chama py5.run_sketch().

O exemplo a seguir cria um pequeno sketch que desenha retângulos na posição atual do mouse:

import py5

def setup():
    py5.size(300, 200)
    py5.rect_mode(py5.CENTER)

def draw():
    py5.rect(py5.mouse_x, py5.mouse_y, 10, 10)

py5.run_sketch()

imagem

⚠️ Cuidado:
Não use from py5 import *, isso quebra muitas coisas! Se você quiser evitar os prefixos py5., considere usar o imported mode.

ℹ️ Detalhe interno:
Se você não definir uma função settings() (opcional neste modo), a função setup() será dividida em setup() e settings() para você “automagicamente” sob o capô, de acordo com algumas regras especiais, pois a infra do Processing requer que size() esteja em settings(), mas você não precisa se preocupar com isso.

Imported mode (modo importado)

Originalmente criado para programadores iniciantes, o modo importado é análogo ao modo como as pessoas programamam no Processing IDE. Você não precisa digitar py5. o tempo todo.

Para usar este modo, você precisa do py5 Jupyter Notebook Kernel (instruções de instalação aqui) ou, se estiver usando outros editores de código, precisa executar o seu código a partir da ferramenta de linha de comando run_sketch ($ run_sketch your_sketch.py).

Outra opção é usar o Thonny IDE com o plug-in thonny-py5mode instalado, que cria um menu py5 com a opção Imported mode for py5, que, quando estiver marcada, faz o Thonny executar a ferramenta run_sketch para você.

Este é o exemplo anterior escrito para imported mode:

def setup():
    size(300, 200)
    rect_mode(CENTER)

def draw():
    rect(mouse_x, mouse_y, 10, 10)

# Se estiver usando um Jupyter Notebook precisa acrescentar:
run_sketch()

Se estiver usando a ferramenta run_sketch ou o plugin thonny-py5mode no Thonny não precisa run_sketch() no final.

Static mode (modo estático)

No static mode podemos criar imagens estáticas usando código sem precisar de declarações de função. Ele foi pensado para quem está dando seus primeiros passos na programação com Python.

O código abaixo, escrito para static mode, criará uma imagem de 300 por 200 pixels com fundo cinza e 20 quadrados posicionados aleatoriamente:

size(300, 200)
rect_mode(CENTER)
for _ in range(20):
    rect(random_int(width), random_int(height), 10, 10)

imagem

Para usar o modo estático no Jupyter Lab, instale o py5bot Kernel conforme descrito na página de instalação do py5, depois inicie o Jupyter Lab usando $ jupyter lab. Você verá py5bot apresentado como uma opção no Launcher. Clique nele e coloque o código em uma célula do notebook.

Você também pode usar a ferramenta run_sketch ou o plug-in Thonny IDE conforme descrito para modo importado.

Class mode (modo de classe)

Para usuários mais avançados que desejam executar vários esboços ao mesmo tempo, o class mode convida você a criar uma classe com um método settings, agora necessário, setup,draw e outros métodos desejados.

O primeiro exemplo de module mode convertido para class mode seria assim:

from py5 import Sketch


class TestSketch(Sketch):

    def settings(self):
        self.size(300, 200)

    def setup(self):
        self.rect_mode(self.CENTER)

    def draw(self):
        self.rect(self.mouse_x, self.mouse_y, 10, 10)


test = TestSketch()
test.run_sketch()

Leitura adicional

Para mais detalhes, visite a documentação do py5 completa em py5coding.org