Posts for: #Python

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.
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: Depois de ler o artigo e ver uns vídeos no Youtube, vi-me com dois problemas:
Ler mais →

Consultas do Telegram - Questões interessantes

Semana passada tive a oportunidade de ver 3 questões interessantes a discutir nos grupos do Telegram, mas que a explicação seria grande demais para apresentar em um chat. Por que True, True, True == (True, True, True) retorna True, True, False? Por que -2 * 5 // 3 + 1 retorna -3? Como adicionar tempos em Python? Por que True, True, True == (True, True, True) retorna True, True, False? Esta questão foi apresentada como sendo uma sintaxe bizarra do Python, mas na realidade é uma pegadinha visual.
Ler mais →

Um bot para Telegram com o Jogo da Velha.

Este post é uma reedição do artigo publicado na Revista Portugal a Programar número 55 de março de 2017, páginas 26 a 34. Eu um mundo com tantos aplicativos de chat instantâneo, o Telegram se destaca pela rica API que disponibiliza para criação de bots. Os bots são pequenos programas que podem interagir com os usuários e prestar serviços, como executar comandos, gerenciar arquivos ou imagens e até mesmo propor jogos!
Ler mais →

Migrando o servidor de chat para Python 3.6

Na época do lançamento do Python 3.4, eu estava tão contente com a integração do Asyncio que escrevi um servidor de chat aqui. O tempo passou e novas versões do Python foram lançadas. Resolvi então migrar o servidor para Python 3.6. Uma das grandes mudanças que ocorreram no Python 3.5, foi o suporte a async e await para substituir @asyncio.corroutine e yield from respectivamente. Esta pequena mudança por si só já facilita em muito a leitura do código, que ficou mais leve.
Ler mais →

Consultas via Telegram

Seria legal se profissionais de informática dessem consultas como médicos ou advogados, mas algo nos impede de cobrar por tudo e esse desejo ou intenção de compartilhar ideias nos consome. Eu participo de vários grupos de Telegram, principalmente sobre Python, um deles é o PyCoding e o outro é o pybr. Normalmente eu leio os grupos quando estou usando meu celular, então nem sempre é possível ajudar com as dúvidas, mas vou tentar separar um pouco de tempo para explorar algumas ideias aqui e lá.
Ler mais →

Uso de UUIDs como chave primária com Django e Postgres

Por default, o Django cria chaves primárias do tipo inteiro (32 bits) quando usado com o banco PostgreSQL. Estes campos são incrementados automaticamente e funcionam perfeitamente bem em ambiente local. Um problema que aparece quando você cria uma API é o fato de seus ids sequenciais e numéricos exporem detalhes de sua base de dados. Imagine que seu cliente tem o id 1, ele pode imaginar (e com razão) que é seu primeiro cliente.
Ler mais →