Posts for: #Python

Advent of code 2024 - Dia 01 de 25

O Advent of Code é um desafio de programação que acontece entre os dias 1 e 25 de dezembro de cada ano. O de 2024, é a décima edição do evento que é independente de linguagem de programação, você pode usar as ferramentas que você quiser.

Todo dia, a partir do dia primeiro de dezembro, um novo problema é disponibilizado. Embora o nome seja Advent of Code (Advento é um evento cristão que antecede o Natal), os problemas não envolvem necessariamente religião, mas são problemas divertidos com os duendes de Papai Noel.

Ler mais

Acompanhador de Exercícios

Desde que escrevi meu livro tive uma ideia que poderia criar um aplicativo simples, para facilitar ou estimular a realização dos exercícios. Uma aplicação web que poderia ser usada no computador e mesmo a partir de um celular. Muitos anos depois, finalmente consegui colocar em prática uma parte do que havia imaginado. Eu espero, que se você estiver fazendo os exercícios do livro, use este aplicativo de forma a lhe estimular chegar ao final e concluir todos os exercícios. Rumo a 100%!

Ler mais

Python 3.13

Ontem saiu o Python 3.13, uma das versões mais aguardadas do interpretador. A principal atração para mim sempre foi a possibilidade de rodar código em Python sem o GIL. O GIL, ou Global Interpreter Lock, assombrou o Python por muito tempo e sempre foi motivo de muitas discussões.

Há muito tempo vem se tentando remover o GIL do interpretador. Mas o que ele atrapalha? Quando rodamos um código com múltiplos threads em Python, o GIL garante que as estruturas comuns do interpretador estavam protegidas entre estes threads, ou seja, contra problemas de concorrência. Várias tentativas foram feitas, mas todas deixavam o Python mais lento ou só funcionavam em casos específicos. Um rant do Guido - It isn’t Easy to Remove GIL em resposta a este post Data Services and Integration, An open letter to Guido van Rossum: Mr Rossum, tear down that GIL!. Nada melhor que a PEP-703 para entender como estas conversas acabaram. Na realidade, não acabaram, o GIL pode ser ativado ou desativado e cada utilizador pode escolher qual versão do interpretador quer usar. Nem tudo são flores, pois várias bibliotecas ainda precisam de mais tempo para suportar esta opção e mesmo para estabilizarem seus códigos.

Ler mais

Juros e lógica

Um dos problemas de lógica de programação que mais quebram a cabeça de quem está começando são os problemas com cálculo de porcentagens ou juros.

Começa assim: Calcule 10% de aumento de um salário de R$2.500,00

Dependendo da base matemática do aluno, porcentagem se aprende na quarta/quinta série… alguns conceitos tem que ser relembrados. Como diz o nome, a 10% significa que a cada 100 do valor, você deve retirar 10. O cálculo é bem simples, pode ser realizado com uma multiplicação. Por exemplo: 10/100 * 2500, que resulta em 250. Até aí tudo bem, mas alguns alunos perguntam por que as vezes fazemos 0.1 * 2500. Bem, é apenas a forma de representar que muda, pois 10/100 é equivalente a 0.1, alias 100/1000 também e por aí vai. Mas está é a parte fácil e depois de acertar a notação, as coisas voltam a andar novamente.

Ler mais

Efeitos gráficos com Python, Tkinter, Cython e Numba

Ontem, sábado, fiquei com vontade de criar um efeito de flamas (fogo) em Python. Este efeito era bem popular no início dos anos 90. Eu lembrava que o algoritmo era bem simples, mas tinha uns truques a fazer com a paleta de cores.

Achei este artigo com a implementação em C: https://lodev.org/cgtutor/fire.html

Do mesmo artigo, podemos ter uma ideia de como fica o efeito:

Efeito de flamas

Depois de ler o artigo e ver uns vídeos no Youtube, vi-me com dois problemas:

Ler mais