
Python: Uma introdução rápida para você que é iniciante
O Python é uma linguagem interpretada e orientada a objetos criada por um holandês chamado Guido van Rossum na CWI (Centro de Matemática e Informática) e atualmente está na versão 3.5. Ela é livre, multiplataforma, tem uma sintaxe bem amigável e uma comunidade bem grande. Os objetivos da linguagem quando ela foi criada eram legibilidade e produtividade, ou seja, produzir códigos de maneira rápida e de fácil compreensão.
Embora o foco inicial da linguagem tenha sido aplicações científicas, hoje a linguagem está presente em diversas áreas como aplicações web, machine learning e até mesmo em microcontroladores. Mas principalmente no boom que estamos tendo na área de machine learning o Python tem se destacado bastante.
O mundo do Python (principais bibliotecas)
O Python possui libs muito conhecidas, como NumPy, para trabalhar com arranjos e vetores de diversas dimensões, o SciPy, um pacote que utiliza como base o NumPy e possui bibliotecas escritas em C voltadas para processamento matemático, e o Pylab para a construção de gráficos bidimensionais.
Mas o Python não para por aí. Além dessas três que já vêm por padrão na linguagem, ainda há bibliotecas mais interessantes como o RPy que é utilizado para manipular scripts R utilizando o Python, o BioPython que, pasmem, é utilizada para análise de dados biológicos e o Pandas, uma bibliotaca incrível para Machine Learning.
Além de possuir essas bibliotecas, o Python também tem muitos frameworks. Existem dois bem conhecidos na comunidade Python e ambos voltados para desenvolvimento web que são o Django e o Flask.
O verdadeiro poder do Python
De fato, existem diversos pontos fora do código que precisam ser observados, como a comunidade, o mercado, os eventos e a curva de aprendizado para saber realmente se uma linguagem vale a pena ser utilizada ou não.
O mercado
Com o advento do IA, o Python tem se tornado referência no mercado. Por ser uma linguagem que está forte nas universidades e centros de pesquisa, muitas ferramentas estão sendo criadas e utilizadas para análise de dados, o que coopera para aquecimento do mercado. O mercado de Python hoje está muito bom para quem quiser seguir nesta área.
No ranking de utilização, o Python também não está jogando pra perder. Entre duas pesquisas feitas em 2017, uma pela RedMonk e outra pela IEEE Spectrum, o Python ocupou o terceiro e o primeiro lugar. Para qualquer uma das duas posições, já é considerável.
A comunidade
Para analisar a comunidade, vamos pela mídia social Facebook. Existe uma página da associação oficial do Python no Brasil com mais de 22 mil seguidores (bastante, né?! rs), também existem grupos de desenvolvedores Python nos estados (Grupy, como são chamados) e pessoas bem ativas.
Quando eu digo ativa, é num estilo como esse: um desenvolvedor fez e publicou no Github um código em Python que baixa e exporta para CSV os salários dos magistrados do CNJ (Conselho Nacional de Justiça). Quem estiver curioso, só clicar aqui.
Os serviços Cloud também não deixam a desejar. Os grandes como AWS, Azure, Google Cloud Platform e até menores como a Digital Ocean possuem recursos e tutoriais de como fazer o deploy de um código Python nos seus devidos serviços.
E um pouco de código : )
Vamos ver um pouco sobre como instalar o Python, o gerenciador de pacotes Pip, explicar um pouco como ele funciona, criar uma classe básica e testar no Python shell.
Instalando o Python e o Pip
1. Primeiro, vamos à instalação do Python.
Para quem utiliza o “apt-get”:
1 |
sudo apt-get install python2.7 |
Ou para quem usa o Yum:
1 |
sudo yum install python27 |
2. Agora vamos instalar o gerenciador de pacotes Pip
Usando o apt-get:
1 |
sudo apt-get install python-pip |
Ou o Yum:
1 |
sudo yum install python-pip |
Criando uma classe em Python
Agora vamos criar um diretório, instalar uma biblioteca externa do Python, criar uma classe para Produto e testar no console do Python.
1. Primeiro, vamos criar e entrar no diretório
1 |
mkdir product_python |
1 |
cd product_python |
2. Antes de criar a classe do Python, vamos usar o Pip para instalar uma biblioteca de manipulação de imagens chamada Pillow. Para isso, vamos primeiro criar um arquivo chamado requirements.txt para armazenar as bibliotecas que queremos usar:
1 |
touch requirements.txt |
3. Agora vamos incluir a seguinte linha dentro desse arquivo requirements.txt:
1 |
pillow |
4. Feito isso, vamos rodar este comando do Pip para podermos instalar o que está dentro do requirements.txt:
1 |
pip install -r requirements.txt |
Esta instalação do Pip é bem parecido com o bundle e o Gemfile do Ruby : )
5. Terminada a instalação, vamos criar a nossa classe Python. Primeiro, vamos criar o arquivo da classe:
1 |
touch product.py |
6. Agora vamos colocar o seguinte conteúdo no nosso arquivo product.py.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from PIL import Image import re import os class Product: def __init__(self, name, price): self.name = name self.price = price def add_thumbnail(self, image_path, size): image = Image.open(os.getcwd() + "/" + image_path) name = re.search('(?<=\/)\w+', image_path).group(0) image.thumbnail(size) thumb_name = name + str(size[0]) + "x" + str(size[1]) + "." + image.format image.save(os.getcwd() + "/thumbnails/" + thumb_name) |
O Python tem uma sintaxe voltada para identação. Por exemplo, em nosso código acima: declaramos a classe product com class Product e todo o conteúdo da classe foi identado à direita. Ou seja, esta classe tem os métodos __init__ e add_thumbnail.
Outra curiosidade sobre o Python é que precisamos colocar o self na declaração dos métodos de instância. Este self referencia o próprio objeto. Mas como vamos ver mais pra frente, não precisamos passá-lo como parâmetro na chamada dos métodos.
Este nosso código está declarando um método construtor para a nossa classe que é o init e um método para adicionar um thumbnail para o nosso produto chamado add_thumbnail que recebe o caminho da imagem que queremos adicionar e qual o tamanho que deverá ser uma tupla. Além disso, importamos também três recursos do nosso arquivo: Pillow que instalamos anteriormente e mais dois nativos do Python, o re que é o modulo de expressões regulares e o so que é o modulo de interface com o sistema operacional para manipulação de arquivos, diretórios etc.
No nosso método add_thumbail nós fazemos o seguinte: na linha 12 usamos o método os.getcwd() para pegar o caminho atual e concatenar com o caminho da imagem que passamos por parâmetro, já que é um diretório que ficará dentro do nosso projeto e o resultado dessa concatenação é usado na chamada de Image.open do módulo que importamos; na linha 13, usamos expressão regular para pegar somente o nome do arquivo; na linha 14 usamos o método image.thumbnail para gerar o nosso thumbnail e repare que enviei o size que é uma tupla do Python, um Array imutável; na linha 15 estamos concatenando o nome da imagem com o tamanho e o formato para gerarmos o nome do nosso thumnail; e na linha 16 salvamos.
7. Agora vamos criar duas pastas que utilizamos dentro da classe, a images e a thumbnails:
1 |
mkdir images |
1 |
mkdir thumbnails |
8. Agora baixe esta imagem no link abaixo e coloque no diretório images com o nome computer.jpg.
https://github.com/OneBitCodeBlog/product_python/blob/master/images/computer.jpg
9. Agora vamos aos testes utilizando o console do Python. Para abrir o console digite no seu terminal:
1 |
python |
10. No console, vamos importar a classe Product do arquivo product:
1 |
from product import Product |
11. Agora vamos instanciar a classe Product nome e o preço e armazenar na variável p:
1 |
p = Product('Awesome Computer', 2000.00) |
Apenas relembrando, apesar de termos um parâmetro self na declaração do construtor, ele é passado implicitamente quando instanciamos a classe.
12. Agora vamos chamar o método add_thumbnail passado como parâmetro o caminho da imagem que adicionamos no images e o tamanho, que é uma tupla:
1 |
p.add_thumbnail('images/computer.jpg', (50, 50)) |
Este atributo (50, 50) é uma tupla do Python. Como vimos anteriormente, a tupla é um Array imutável. Uma vez declarado, não pode ser alterado. A diferença de declaração é que a tupla é declarada com parênteses ((50,50)) e o array com colchetes ([50, 50]). O acesso aos elementos da tupla e do array são feitos da mesma forma: size[0].
13. Se verificarmos o diretório thumbnails, lá estará a nossa imagem com o tamanho que passamos! \o/

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Conclusão
O Python é uma linguagem cuja comunidade não tem brincado em serviço. Com uma grande facilidade de aprendizado, ela invadiu centros de estudo e conquistou um espaço muito grande em áreas científicas se tornando referência para quem quer atuar com algum ramo da IA.
Mesmo sendo interpretada, o Python tem sido interface para ferramentas com maior poder de processamento como a linguagem R e a C.
Pra quem deseja aprender algo fora do mundo de desenvolvimento web, o Python é uma forte indicação para começar justamente pela sua versatilidade e grande conjunto de ferramentas de apoio.
E para quem quiser, o código está no nosso github:
https://github.com/OneBitCodeBlog/product_python.git
Pessoal esse foi o primeiro Post da série Full Stack, onde vamos falar um pouco sobre outras tecnologias e escolhemos o Python para começar \o/
Os próximos serão à escolha de vocês! Em breve lançaremos uma pesquisa para vocês votarem em qual será a próxima linguagem que vamos abordar (aproveita e já comenta aí em baixo dando sugestões).
Não deixem de participar, um forte abraço!
Quer se tornar um Programador Full Stack Javascript em 8 semanas? 😀
Nós desenvolvemos um treinamento completo onde você vai aprender desde a base da Web (HTML5, CSS, Bulma,
Javascript e Es6+) até React e ExpressJs totalmente do zero!
Nele você também vai desenvolver um projeto do inicio até o Deploy (clone do Evernote) e irá
aprender como conseguir as melhores vagas no módulo carreira de Programador.
Se você não quer mais perder oportunidades, clique aqui e saiba mais 💪
Você é novo por aqui?
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode traz conteúdos de qualidade e em português sobre programação com foco em Ruby on Rails e outras tecnologias como Angular, Ionic, React, desenvolvimento de Chatbots e etc.
Se você deseja aprender mais, de uma forma natural e dentro de uma comunidade ativa, visite nosso Facebook e nosso Twitter, veja os screencasts e talks no Youtube, alguns acontecimentos no Instagram, ouça os https://onebitcode.com/dating-site-lies/ e faça parte de nossa Newsletter.
Além disso, também estamos com alguns e-Books muito interessantes para quem deseja se aprimorar como programador e também como freelancer (os e-Books são gratuitos!):
- https://onebitcode.com/why-is-dating-so-hard-reddit/
- Desenvolvendo seus projetos como um profissional
- craigslist women seeking men san francisco
- PDF com links fundamentais para quem quer ser um freelancer de sucesso
- Guia One Bit Code de Gems
- Baixe gratuitamente seu e-Book com 60 Gems separadas por categorias
Espero que curta nossos conteúdos e sempre que precisar de ajuda com os tutoriais, fala com a gente!
Seja por Facebook ou e-mail, estamos aqui para você 🙂
Bem-vindo à família OneBitCode \o/
Muito bacana a postagem.
Só deixo a sugestão de partirem direto para o Python 3 em postagens sobre a linguagem no futuro. O Python 2 será descontinuado em 2020, e as versões 3.x tem muitas, muitas melhorias. O próprio Django já dropa o suporte a partir da release 2.0 do framework.
Legal Eder, obrigado por acompanhar (em breve teremos mais).
Sobre a versão 3, vamos atualizar o post 🙂