Rullst AcademyRullst Academy/Lição
Python no Ubuntu · Lição 05 / 05

Minha oficina pronta e testada

Seu primeiro projeto vai calcular quanto tempo resta em um plano fictício. Quatro testes ajudam a perceber quando uma alteração quebra a regra.

Trilhas de aprendizado18 min

Vamos descobrir juntos

  1. 1

    Baixe a atividade e extraia numa pasta nova. mission.py contém uma função pequena; test_mission.py contém quatro testes. README.md explica os comandos do seu sistema. Não execute dentro do ZIP e não chame seu arquivo de unittest.py ou python.py: isso pode esconder módulos com esses nomes.

  2. 2

    def dá nome a uma regra reutilizável; total e used recebem os números. return entrega o resultado. max(0, total - used) escolhe o maior valor: o restante nunca fica negativo. Aqui usamos somente inteiros não negativos; não é um validador de qualquer entrada. O bloco __main__ imprime o exemplo quando o arquivo é executado diretamente.

  3. 3

    No terminal da pasta extraída, execute python3 mission.py: esperamos 15. Depois execute python3 -m unittest -v: devem ser executados quatro testes, com resultado OK. Ran 0 tests não comprova o projeto; confira a pasta e o nome test_mission.py. Os testes usam unittest, que vem com Python.

  4. 4

    Guarde uma cópia de mission.py como mission-backup.txt. Troque apenas return max(0, total - used) por return total - used, salve e repita os testes: o caso 20, 25 deve falhar por retornar -5. Restaure a linha original e confirme os quatro testes passando. Assim você vê o teste encontrar um defeito real.

PYTHON · ubuntu

Do navegador para o seu computador

As previsões desta página usam exemplos preparados. Para praticar de verdade, baixe a atividade, extraia numa pasta nova e siga README.md, uma etapa por vez. A Rullst Academy não instala nem executa Python no seu computador.

Comandos no terminal do seu sistema

python3 mission.py
python3 -m unittest -v

Código para salvar no editor

As linhas Python abaixo pertencem ao arquivo. Os comandos do terminal ficam no painel anterior. Não copie >>>, números de linha ou as cercas de Markdown.

# Para esta oficina, total e used são inteiros não negativos. Python I aprofundará funções e validação.
def minutes_left(total, used):
    return max(0, total - used)


if __name__ == "__main__":
    print(minutes_left(20, 5))
Passo opcional: um ambiente por projeto

Depois de concluir, você pode criar .venv em uma pasta que ainda não tenha esse nome. Os comandos usam o Python dessa pasta diretamente, sem ativação ou mudança da política do PowerShell. Não copie .venv para outro computador nem a publique; recrie-a quando precisar. Nenhum pacote extra é necessário aqui.

python3 -m venv .venv
./.venv/bin/python mission.py
./.venv/bin/python -m unittest -v
Links oficiais e próximo passo
Meus arquivos e GitHub

Nas duas primeiras lições, o editor guarda anotações .md. Depois, guarda o código .py. Baixe suas edições para levá-las a outro aparelho; o ZIP contém material inicial. Publicar no GitHub é opcional e envia um arquivo por operação, sem enviar seu ambiente Python.

Continuar para Python I
✦
SUA MISSÃO

Executar um programa e seus testes, provocar uma falha e corrigi-la.

Agora é a sua vez

Oficina de descobertas

Prepare, observe e explique

Os cenários preparados consultam a mesma regra com 20 minutos planejados: primeiro 5 usados, depois 25 usados. No computador, o kit também testa o limite exato e um plano de zero minutos. As respostas online não comprovam que você executou os testes locais.
Mini experimento

Simulação didática: compare os cartões e confira suas previsões. O navegador não está compilando Rust nem iniciando um servidor.

def minutes_left(total, used):
    return max(0, total - used)

print(minutes_left(20, 5))
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Por que provocar e depois corrigir a falha no teste?

Preciso de uma pista

Compare as ferramentas, o arquivo e o resultado. Não é preciso adivinhar.

Carregando sua jornada…

Como perceber o que aprendi?

Use os objetivos e o desafio abaixo como uma conversa com você mesmo ou com alguém que possa ajudar. É uma autoavaliação orientada: não envia respostas, não concede XP e não verifica automaticamente sua autonomia.

Em Fundamentos, altere um exemplo, preveja o resultado, confira um caso comum e um caso de erro, e explique suas escolhas. Se precisar de ajuda, identifique o trecho que quer praticar novamente.

Seu desafio de transferência

Crie um quinto caso, por exemplo 30 minutos planejados e 10 usados, com resultado esperado 20. Rode novamente e confira cinco testes. Registre a falha que você provocou e o que aprendeu; depois continue para Python I. Compartilhar no GitHub é opcional.

Guarde uma evidência: previsão, tentativa, resultado, uma mudança sua e o que ainda não consegue explicar. Quando possível, peça feedback a alguém; se estudar sozinho, retome depois sem copiar e compare suas tentativas.

Tente de novo em outro momento

Depois de uma pausa, explique a ideia sem abrir a solução e tente um exemplo diferente. Compare com sua primeira tentativa: o que consegue fazer sozinho e onde precisa de uma pista? Você pode escrever, falar ou desenhar; escolha uma forma que permita conferir a mesma ideia. Registre ajuda recebida, inclusive de IA, e volte ao trecho necessário. Não há prazo universal nem XP extra por esse registro.

Conclusões e XP registram as avaliações da Rullst Academy. Uma trilha introdutória pode ajudar na vida cotidiana e preparar próximos estudos; sozinha não comprova domínio completo ou preparo profissional. O nível indica profundidade, não idade.

Leve com você

Crie um quinto caso, por exemplo 30 minutos planejados e 10 usados, com resultado esperado 20. Rode novamente e confira cinco testes. Registre a falha que você provocou e o que aprendeu; depois continue para Python I. Compartilhar no GitHub é opcional.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.