O que podemos fazer com Python?

python book

Foto por Christina Morillo em Pexels.com

Quais são as principais aplicações que podem ser feitas com Python? Quais as principais ferramentas?

Essas são as maiores perguntas feitas por quem está iniciando no mundo da programação.

O Python é melhor que outras linguagens de programação?

A resposta é, depende. Isso por que vai depender do que vai fazer, existem linguagem que vão ter mais vantagens que outras para determinadas soluções.

Mas voltando para o assunto principal, o que podemos fazer com Python? Basicamente tudo.

Segue uma lista de algumas coisas que podem ser feitas com Python:

  • Aplicações Web;
  • Aplicações Desktop;
  • Machine learning;
  • Ciência de dados;
  • Web Scraping;
  • Iot;
  • Script de automação.

Essas são algumas das aplicações que podem ser feitas com Python.

Ferramentas Python.

A comunidade Python é bem forte e unida, além de uma vasta documentação que existe na internet de forma gratuita.

Além disso existem vários frameworks e libraries para facilitar o desenvolvimento de determinadas aplicações.

Para aplicações Web podemos utilizar Flask ou Django.

Aplicações Desktop podemos citar o PyQt, Tkinter e WxPython.

Para Machine Learning podemos utilizar o SCIKIT-LEARN, Pytorch, Caffe, TENSORFLOW e Apache Spark.

Em Ciência de Dados, podemos utilizar o Numpy, Pandas e SciPy.

Aplicações para Web Scraping podemos utilizar o Beautiful Soup.

No mundo da Internet das Coisas ou iot, podemos utilizar com facilidade a comunicação Serial do Python, além de ser facilmente embarcado em pequenos Devices como Raspberry pi e Orange pi.

Por ser uma linguagem multi paradigma, um Shell script de automação pode ser facilmente substituído por script Python.

Repare que podemos fazer várias coisas utilizando Python.

Conclusão.

São várias soluções que podem ser aplicadas utilizando Python, além de ser uma linguagem de baixa verbosidade e de fácil aprendizado. Por ser multi paradigma, podemos utilizá-lo em várias formas de programação.

Link

Comunicação Python & NodeMcu & Display Oled.

https://i0.wp.com/nakalabs.herokuapp.com/articles/images/20180106/nodeOled.jpeg

 

Vou demonstrar uma simples comunicação serial entre um NodeMcu e o computador utilizando Python com a lib PySerial.

Diferente do exemplo da semana passada, neste tutorial vamos apresentar o resultado em um display OLED.

PySerial tem uma interface simples e expressiva, com poucas linhas de código conseguimos comunicar com dispositivos via serial. Além de outras features como comunicação via Socket para analisar protocolos como TCP/IP.

Acesse o tutorial em: http://nakalabs.herokuapp.com/articles/nodeMcuPythonOled.html.

Link

Comunicação Python & NodeMcu

Vou demonstrar uma simples comunicação serial entre um NodeMcu e o computador utilizando Python com a lib PySerial.
PySerial tem uma interface simples e expressiva, com poucas linhas de código conseguimos comunicar com disposivos via serial. Além de outras features como comunicação via Socket para analisar protocolos como TCP/IP.

Para acessar o tutorial completo acesse: http://nakalabs.herokuapp.com/articles/nodeMcuPython.html.

OCR com Python.

O OCR ou o acrônimo em português de “Reconhecimento Ótico de Caracteres” é a capacidade de extração de caracteres de imagens.

A tecnologia do OCR pode ser aplicado em várias soluções como análise de contratos, cheques, imagens digitalizados, também pode ser utilizado em iot para verificar placas de carros.

Com Python podemos utilizar o pacote pytesseract para acessar o software Tesseract e extrair caracteres de imagens.

Como instalar e utilizar pytesseract.

Primeiro precisamos instalar o tesseract para utilizar a capacidade de OCR.

$ sudo apt-get install tesseract-ocr

Agora precisamos instalar o pytesseract para acessar o tesseract:
$ pip install pytesseract

Agora já podemos testar uma extração de caracteres via Python.

Vamos extrair o texto da imagem abaixo, nesse caso o meu nome “Sidney”.

>>>import Image
>>>import pytesseract
>>>print pytesseract.image_to_string(Image.open('/tmp/teste.jpeg'))

Conclusão.

Uma forma simples e rápida utilizando pytesseract e Tesseract, podemos fazer aplicações utilizando OCR sem muito esforço e com poucas linhas de comando.

Python 2 ou 3?

Acredito que a maior dúvida quando começamos a programar em Python seja qual versão utilizar.

Utilizar uma versão estável e consolidada como a versão 2 ou uma versão mais nova com melhorias como a versão 3?

Muitos vão falar que é a versão 3, mas o problema nessa versão é a retrocompatibilidade.

A retrocompatibilidade é quando uma nova versão de software não tem compatibilidade com algumas ou todas as funções que existem na versão anterior.

No caso do Python quando existe o upgrade da versão 2 para 3, algumas funcionalidades param de funcionar, alguns casos com simples ajustes de sintaxe outros alteram a assinatura do método e na pior das hipóteses uma alteração na nomenclatura do método.

Qual das versões utilizar?

Para quem está começando um projeto, com certeza a versão mais atual 3 é a mais indicada.

Com a versão mais nova já podemos nos beneficiar das melhorias implementadas.

Agora para quem já está utilizando a versão 2, seria interessante instalar a versão 3, criando uma branch e migrando aos poucos.

Migração.

Uma forma de migrar é criar uma branch e ajustar as funções que não são compatíveis com a nova versão.

Mas em alguns casos, alguns métodos vão funcionar somente em uma das versões.

Um exemplo é o método input() na versão 2 e a que na versão 3 foi alterado para raw_input().

Uma forma de contornar isso é fazendo um “If maroto” verificando a versão utilizado:


from sys import version_info

if version_info.major > 2:
nome = input(‘Nome: ‘)
else:
nome = raw_input(‘Nome: ‘)

Pode não ser uma forma elegante de se escrever o código, mas é somente uma demonstração de uma solução rápida, podemos aprimorar essa técnica.

Conclusão.

Se está iniciando um novo projeto Python não pense duas vezes, comece com a versão 3. A versão Python 3 já está bem estável e pode ser utilizada sem medo, já para quem está utilizando a versão Python 2 deve começar a planejar uma migração, pois a versão 2 pode ser descontinuada em 2020.

Programação funcional com Python.

A programação funcional vem sendo muito utilizada ultimamente em várias linguagens de programação para resolver problemas variados.

Com Python não é diferente, apesar de ser um linguagem de programação imperativa e implementação de multi paradigma, o Python não é uma linguagem funcional.

Por ser uma linguagem multi paradigma, fica muito fácil a implementação de uma programação funcional utilizando Python.

Inclusive, com Python podemos fazer um mix de paradigmas.

Funções utilizando Lambda.

Quando definimos uma função utilizando lambda podemos ter vários argumentos como parâmetros, mas somente uma expressão.

Sintaxe: lambda arg1, arg2, ...argN : expression utilizando os argumentos

>>> f = lambda x, y, z: x + y + z
>>> f(1, 10, 100)
>>> 111

A mesma função acima em um método sem lambda:

>>> def f(x, y, z): return x + y + z
>>> f(1, 10, 100)
>>> 111

Utilizar Lambda fica mais interessante quando utilizamos ela dentro de outro método, observe o poder dessa capacidade:

Utilizando a função Map.

A função map() tem a capacidade de transformar um objeto em outro, por exemplo, transformar uma entrada do tipo Integer em String.

Abaixo um exemplo de uma transformação de uma lista para outra lista somando 10 a cada elemento da lista origem:

Utilizando a função Filter.

A função Filter() tem a capacidade de criar uma nova lista filtrando os elementos.

Abaixo um exemplo, criando uma nova lista com números pares:

Utilizando a função Reduce.

A função Reduce() tem a capacidade de reduzir os argumentos de entrada em um único valor.

Abaixo um exemplo, utilizando a função reduce() para somar os valores:

Conclusão.

Podemos nos beneficiar com a programação funcional, desde reduzir linhas de código até otimizar a performance da aplicação. Além de criar funções que recebem outras funções como parâmetro, sendo possível somente na programação funcional.

Link

Web scraping em Python utilizando BeautifulSoup.

Utilizar web scraping para coletar dados na internet já não é uma tarefa tão complexa utilizando as ferramentas certas.

Trabalhos com data science onde precisamos coletar e manipular grande número de dados ou fazer testes funcionais na camada front-end são algumas das utilidades do web scraping.

Nesse artigo vamos abordar somente os funcionamentos básicos da ferramenta BeautifulSoup, não vamos abordar a estrutura HTML, CSS e JavaScript, estamos partindo que o leitor já conhece essa estrutura.

Além disso é muito importante que se for aprofundar na tecnologia, é de muita importância aprender sobre expressão regular(Regex).

Acesse o tutorial completo em: http://nakatech.herokuapp.com/article/pythonScraping.html.