Code Wars – Treine seu Python

Você conhece o Code Wars?

Codewars é uma comunidade educacional para programação de computadores. Na plataforma, os desenvolvedores de software treinam nos desafios de programação conhecidos como kata.

No site do Codewars você escolhe qual linguagem de programação você quer treinar e ele pede qual nível você quer iniciar.

Você pode começar do básico de Python e o site ainda sugere soluções para te ajudar a resolver os problemas.

De forma gradativa, você vai adquirindo mais conhecimento.

Programação aprende-se programando.


É necessário manter uma rotina para treinar a programação e você sentirá a evolução e os benefícios.

O site está em inglês, mas existe a extensão do Google Tradutor para você instalar no seu Chrome, ou ainda copiar e colar no Google Tradutor, mas se quiser, você pode traduzir a página do CodeWars diretamente do tradutor.

Até a próxima e boa prática!

Evento da Py013 – 20/08/22

No dia 20/08/2022 a Py013 realizou um encontro da comunidade com palestrantes que são membros da própria comunidade.

O João Carlos Santos abriu o evento com a apresentação da comunidade Py013, propósito e agradecendo o apoio do Juicyhub, Novatec e 4Linux.

Ao final do evento, tivemos o sorteio de um livro cedido pela Novatec e vouchers para cursos da 4Linux, além de código de desconto para os membros da comunidade adquirirem mais conhecimento na 4Linux.

Na primeira apresentação, o Victor Dias apresentou o uso do Python no Back-End e como ele se integra com várias ferramentas para o processamento de alto volume de dados.

Victor Dias

Na apresentação seguinte, o Robert Silva apresentou como publicar uma aplicação Python em Kubernetes.

Robert Silva

Fotos do evento

Até o próximo!

Espelhar uma imagem com a biblioteca Pillow (PIL)

A biblioteca Pillow, conhecida como PIL (Python Imaging Library) acrescenta capacidade de processamento de imagens ao Python.

A PIL fornece suporte a alguns formatos de arquivos baseados em pixels e com um rápido poder de processamento.

Vamos a um exemplo.

Objetivo: Espelhar a imagem na horizontal

Imagem Original
Imagem Espelhada

Photo de Jonathan Borba no Unsplash

Veremos o código fonte.

# Carrega o módulo Image da biblioteca PIL (para tratamento de imagens)

from PIL import Image

# Atribui a imagem original à variável img.
# Coloque a imagem na mesma pasta que esse programa estará rodando)
# Photo by Jonathan Borba on Unsplash

img = Image.open('teste.jpg')

# Inverte a imagem no sentido horizontal

espelha_imagem = img.transpose(Image.FLIP_LEFT_RIGHT)

# Grava a imagem espelhada na mesma pasta e com outro nome
# para não sobrepor a original

espelha_imagem.save(r'teste_espelhado.jpg')

# Sua imagem espelhada estará na mesma pasta da imagem original,
# porém com  outro nome


Python 3.11 ganha maior desempenho em troca de ‘um pouco mais de memória’

Claylson Martins – Published 01/06/2022

Uma nova versão do Python deve sair até o mês de outubro com muitos novos recursos aguardados. Sendo assim, o próximo Python 3.11 terá como principal destaque o melhor desempenho. “O Python 3.11 é até 10-60 por cento mais rápido que o Python 3.10”, afirmam as notas de lançamento. Porém, ao mesmo tempo em que o Python 3.11 ganha maior desempenho, ele passa a consumir também ‘um pouco mais de memória’.

Como isso está sendo feito? Python 3.11 é a primeira versão a se beneficiar de um projeto chamado Faster CPython. Já o CPython é a versão padrão do interpretador.

Faster CPython é um projeto financiado pela Microsoft, cujos membros incluem o inventor do Python Guido van Rossum, o engenheiro de software sênior da Microsoft Eric Snow e Mark Shannon – que está sob contrato com a Microsoft como líder de tecnologia para o projeto.

Uma sessão agendada para o evento EuroPython a ser realizado em Dublin em julho centra-se em algumas das mudanças que permitem a aceleração. Shannon descreverá o “intérprete especializado adaptativo” no Python 3.11, que é o PEP (Python Enhancement Proposal) 659. Isso descreve uma técnica chamada especialização que, explica Shannon, “normalmente é feita no contexto de um compilador JIT [just in time], mas pesquisas mostram que a especialização em um interpretador pode aumentar significativamente o desempenho”.

O interpretador identifica o código que pode se beneficiar da especialização e “uma vez que uma instrução em um objeto de código tenha executado o suficiente, essa instrução será “especializada” substituindo-a por uma nova instrução que deverá ser executada mais rapidamente para essa operação”, afirma o PEP. A aceleração pode ser de “até 50 por cento”.

Shannon também identifica quadros de execução alocados consecutivamente, try-except de custo zero, layout de objeto mais regular e dicionários de objetos criados preguiçosamente em sua prévia da palestra.

Python 3.11 ganha maior desempenho em troca de ‘um pouco mais de memória’

Quando Devclass conversou com o membro do Python Steering Council e desenvolvedor principal Pablo Galindo sobre o novo criador de perfil de memória Memray, ele descreveu como a equipe Python está usando o trabalho da Microsoft na versão 3.11.

“Uma das coisas que estamos fazendo é tornar o interpretador mais rápido”, disse ele, “mas também usará um pouco mais de memória, só um pouco, porque a maioria dessas otimizações tem algum tipo de custo na memória , porque precisamos armazenar algumas coisas para usar mais tarde, ou porque temos uma versão otimizada, mas às vezes alguém precisa solicitar uma versão não otimizada para depuração, então precisamos armazenar ambas.”

Como ocorrerá esse maior desempenho?

Galindo explicou como o gerenciamento de memória é fundamental para o desempenho. O Python “tem seu próprio alocador de memória que não é o alocador do sistema”, disse ele. Não é porque “sabemos melhor como alocar a memória”, disse ele. Em vez disso, é porque o alocador do sistema precisa ser genérico, enquanto o interpretador Python sabe que usará a memória.

Um dos truques é reduzir o número de chamadas para o alocador do sistema em favor de alocar um pedaço maior. “Deixe-me ter um grande pedaço de memória, vou usar as diferentes partes dele e liberá-lo de uma só vez quando terminar, porque senão será muito lento”, disse ele.

Respondendo aos recentes testes de velocidade do Python 3.11, um desenvolvedor disse que “este pode ser o primeiro Python 3 que será realmente mais rápido (cerca de 5%) que o Python 2.7. Esperamos 12 anos por isso.”

Link do artigo: SempreUpdate

Open Data Day 2022 – Explorar os dados de monitoramento da pandemia o Estado de São Paulo

No Open Data Day 2022, João Carlos Santos e Lucas Ribeiro realizaram a análise dos dados de contaminação do vírus SARS-COV 2 (Coronavírus) que gerou a pandemia que iniciou em 2020.

Eles apresentaram como montar um Heat Map e também como colorir mapas para demonstrar dados.

Open Data Day 2022 – Explorar os dados de monitoramento da pandemia o Estado de São Paulo

Python pode ficar mais rápido em breve!

Jardeson Márcio – Published 19/05/2022

Python é uma linguagem de programação muito popular e conta com algumas vantagens que a colocam nesse lugar. Estamos falando de uma linguagem de programação fácil de aprender, versátil e que possui milhares de bibliotecas úteis para ciência de dados. No entanto, mesmo com todas essas vantagens, uma desvantagem é suficiente para render muitas críticas: a lentidão de Python. Mas, isso deve mudar em breve, já que ela pode ficar mais rápida.

Python mais rápido

Na conferência PyCon US 2021, o pai do Python garantiu que, no Python 3.11 em 2022, a velocidade do Python seria aumentada em 2 vezes e, em 4 anos, a velocidade será aumentada em 5 vezes, para resolver o problema problema de comparar Python com outras linguagens de programação, como C++.

O Python 3.11 está atualmente na primeira fase beta de sua versão de visualização (versão 3.11.0b1) antes de uma versão estável ainda este ano. O CPython 3.11 é 1,25 vezes mais rápido que 3.10, o que já é um avanço.

Na recente conferência PyCon US 2022, o desenvolvedor do Core Python (CPython) Mark Shannon compartilhou detalhes sobre a aceleração de projetos Python, e os desenvolvedores também mostraram progresso em direção ao objetivo de executar o código Python no navegador.

No ano passado, a Microsoft financiou um projeto Python Software Foundation (PSF), o “Shannon Plan”, liderado pelos criadores do Python Guido van Rossum e Mark Shannon, que prometeram torná-lo 2x mais rápido no Python 3.11 deste ano. Sua visão é empurrar o Python para o desempenho do C.

O projeto Faster CPython fornece algumas atualizações de desempenho sobre o CPython 3.11 no ano passado. Antes da conferência PyCon US 2022, o projeto anunciou mais resultados: uma comparação da versão beta 3.11 e 3.10 em dezenas de métricas de desempenho mostrou que 3.11.0b1 foi 1,25 vezes mais rápido que 3.10 em geral.

Novo interpretador de bytecode torna o tratamento de erros mais eficiente

Infelizmente, a otimização de máquinas virtuais é “cara” e geralmente requer um longo tempo de “aquecimento”. Para evitar essa sobrecarga de tempo, a máquina virtual deve especular que “a especialização é razoável mesmo depois de uma função ter sido executada várias vezes”. Portanto, o intérprete precisa ser otimizado e desotimizado continuamente e de forma muito barata.

Isso deve resultar em um interpretador CPython mais rápido que pode rastrear bytecodes individuais durante a execução do programa. De acordo com a Python Software Foundation (PSF) , o trabalho no novo interpretador está quase completo, mas a especialização dinâmica de loops e operações binárias ainda precisa ser feita.

Esperamos que Python saia desse campo de lentidão atual, receba as “atualizações” necessárias e se torne mais rádo para os usuários.

Link da notícia: SempreUpdate