Blogue Mathspp

Um blogue dedicado à matemática e à programação.

Neste blogue encontras uma coleção interessante de artigos sobre matemática e programação. Podes usar as etiquetas à direita para encontrar tópicos do teu interesse, podes usar o botão "Sinto-me com sorte" para leres um artigo aleatório ou então podes querer espreitar

Também podes subscrever a newsletter do blogue.

Usar atribuições estruturais tem o potencial de tornar o código bastante mais expressivo. Estas atribuições permitem melhorar a legibilidade do teu código e protegem-te contra alguns tipos de bugs. Aprender a usar esta ferramenta também é muito importante para conseguires aproveitar ao máximo a funcionalidade de execução condicional estrutural que vai ser lançada com o Python 3.10.

Estás a apanhar um belo banho de sol quando decides ir falar com uns amigos que estão noutro chapéu, mas primeiro queres ir molhar os pés na água. Qual é a maneira mais eficiente de fazer isto?

  637

Recursão é uma técnica que é útil para qualquer programador, mas isso não significa que deves estar sempre a user recursão quando escreves código Python. Às vezes é melhor reescrever a recursão com ciclos, ou às vezes até repensar a tua solução por completo.

  1708

Todos os objetos em Python podem ser usados em expressões que deviam resultar em valores Booleanos, tais como as condições de instruções if ou while. Há vários objetos que são Falsy (ou seja, que são interpretados como False) quando estão “vazios” ou quando “não têm valor”, e caso contrário são Truthy (interpretados como True). Também podes definir este comportamento para os teus objetos se implementares o método dunder __bool__.

Este problema é muito parecido com o Problema #028 - chave escondida, mas é ligeiramente mais difícil. Consegues resolvê-lo?

  619

Os métodos str e repr do Python podem ser parecidos, mas não são iguais. Usa str sempre que precisares de representações bonitas de objetos e usa repr para depurares código. Seguindo a mesma lógica, deves ter estes casos típicos de utilização em mente quando as tuas classes implementam os métodos __str__ e __repr__.

Hoje em dia as lojas criam todo o tipo de ações promocionais para nos chamar à atenção... Mas quanto dinheiro é que poupamos realmente com cada tipo de promoção?

O "operador morsa" := pode ser bastante útil, mas se o usares de forma errada vais acabar por piorar o teu código, em vez de o melhorares. Usa := para tornar mais linear uma série de ifs ou para reutilizar valores intermédios.

Há uma chave dentro de uma de três caixas, e cada caixa tem uma moeda em cima. Consegues usar as moedas para descobrir em que caixa a moeda está escondida?

Em Python, se queres fazer uma operação que pode dar um erro, há muitas situações em que "pedir desculpa é melhor que pedir permissão". Isto significa que deves utilizar um bloco try para capturar o erro, em vez de usares um if para impedir que o erro aconteça.

Como é que devemos "desempacotar" uma lista ou um tuplo, de modo a separar o primeiro elemento do resto? Ou de modo a separar o último elemento do resto? Não desempacotes com fatias, usa antes atribuições com um asterisco.

Cinco marinheiros e o macaco de estimação naufragam numa ilha deserta, e decidem ir arranjar cocos, que põem numa pilha. Desconfiados uns dos outros, durante a noite cada marinheiro vai à pilha retirar a sua quota parte, sem os outros verem. Quantos cocos havia no início..?

O “Zen of Python” é um conjunto de sugestões que são impressas no teu ecrã se executares o código import this. Se nunca leste o Zen do Python vai lê-lo agora e relê-o de tempos a tempos. Para escreveres código que pareça ter sido escrito por alguém que domina verdadeiramente Python tens de escrever código que segue o Zen do Python.

  716

Quase de certeza que já te cruzaste com uma daquelas publicações no Facebook em que tens uma grelha e a publicação pede para contares o número de quadrados que existem nessa grelha. Quando vais à secção dos comentários, vês que quase todos têm uma resposta diferente... Hoje vamos resolver esse problema de uma vez por todas.

  420

A Alice e o Bruno vão sentar-se, frente a frente, com um tabuleiro de xadrez entre eles. Vão jogar um jogo, mas neste jogo só entra uma única peça: um cavalo. Quem vai ganhar?

  1164

"Pydon'ts" são dicas curtas, objetivas e úteis de programação em Python. Uma Pydon't descreve algo que não devias fazer quando programas em Python. Em geral, se seguires as Pydon'ts vais acabar por escrever código mais idiomático.

  612

Algumas pessoas estão sossegadinhas e em fila, cada uma com um chapéu na cabeça. Os chapéus só podem ter uma de duas cores, mas quantas pessoas é que vão conseguir adivinhar a sua?

Neste artigo vou tentar agradar a matemáticos e a "Pokéfans". Juntos, vamos descobrir quanto tempo é que demoraríamos a completar uma Pokédex se só pudéssemos fazer trocas aleatórias.

Neste artigo vou mostrar-te como escreveres um interpretador para a linguagem de programação brainf*ck em apenas 14 linhas de Python. No entanto, preciso que te prepares para veres código Python que não é nada convencional!

Neste problema vais ter de encontrar uma estratégia para derrotares o computador num jogo para adivinhares um polinómio secreto.