Python - Uma Introdução à Linguagem

Bruno Divino
Bruno Divino

Compartilhe

Fundo escuro com códigos. Do lado esquerdo, uma faixa azul escrito Python.

O que é Python?

É uma cobra? Não. Quero dizer... Sim, mas não nesse caso.

Símbolo do Python

(Gif: Giphy | Reprodução)

Python é uma linguagem de programação interpretada de alto nível e que suporta múltiplos paradigmas de programação: imperativo, orientado a objetos e funcional. É uma linguagem com tipagem dinâmica e gerenciamento automático de memória.

Gif de uma pessoa com expressão de choque e dizendo “Say what?”

(Gif: Giphy | Reprodução)

Calmaaa, vamos traduzir...

Linguagem Interpretada:

Isso significa que a implementação da linguagem python em cada computador é feita através de um processo no qual um dos principais componentes é o interpretador.

Mapa mental que possui o fluxo de implementação do código Python. A ordem segue: Código fonte; Interpretador; Código de Máquina; Processador.

Existem algumas diferenças entre uma linguagem interpretada e uma linguagem compilada, para mais informações sobre essa implementações, sugiro o artigo: O que é compilação.

Linguagem de Alto Nível:

Possui maior proximidade com a linguagem humana do que com a linguagem de máquina (binário).

Imagem contendo uma comparação de como se faz uma soma de dois números com a linguagem assembly, de baixo nível, e com a linguagem python, de alto nível. A imagem evidencia a maior simplicidade do Python

Suporta Múltiplos Paradigmas de Programação:

Paradigmas de Programação são as diferentes abordagens que um programador pode utilizar para desenvolver um código e resolver uma questão específica.

  • Imperativo ou Procedural: As instruções são passadas ao computador na sequência que devem ser executadas.
  • Orientado a Objetos: Talvez o mais popular dos paradigmas. Utiliza estruturas denominadas classes e objetos e sua principal característica é permitir uma programação multiplataforma. Para saber mais sobre esse paradigma, acesse esse artigo.
  • Funcional: Possui como principal característica o uso de estruturas chamadas de funções. Essas funções separam o código em blocos nos quais cada um tem uma tarefa específica.

Para saber mais sobre a programação procedural:

Possui Tipagem Dinâmica:

Dentro de uma linguagem de programação, trabalhamos constantemente com tipos de dados, alguns exemplos são: números inteiros (int), sequências de caracteres (str/string/text) e operadores lógicos (boolean). Ter uma tipagem dinâmica significa que o próprio programa “entende” qual tipo de dados está sendo usado e, portanto, seu tipo não precisa ser previamente declarado.

Para saber mais sobre tipagem, sugiro o artigo: O que são as tipagens estática e dinâmica em programação.

Gerenciamento Automático de Memória:

O Python constantemente realiza uma manutenção ou “limpeza” da memória não utilizada através de mecanismos como o garbage collector (coletor de lixo) e a Reference Counting (Contagem de Referência). Dessa forma, o programador não tem que se preocupar em fazer um gerenciamento manual de memória.

História

Quem veio antes? O ovo ou a serpente?

Python foi idealizado pelo programador holandês Guido Van Hossum e sua primeira versão foi lançada em 1991 no Centrum Wiskunde & Informatica - CWI (Instituto Nacional de Pesquisa para Matemática e Ciência da Computação), na Holanda.

Foto de Guido Van Rossum, criador do Python

Guido Van Rossum

Fonte: linuxjournal.com

Ao final da década de 1980, Guido Van Hossum trabalhava com uma linguagem de programação destinada ao uso de não programadores chamada ABC, amplamente utilizada no sistema operacional Amoeba. Inspirado na fácil sintaxe da linguagem, porém frustrado com o seu design monolítico e outras limitações, Van Rossum decidiu começar um projeto paralelo que levaria ao nascimento do Python.

Guido era fã de cobras? Não mesmo. Descubra aqui de onde vem o nome característico.

A primeira versão da linguagem Python (0.9.0), lançada em 1991, incluia os conceitos de classes com herança, funções e os tipos fundamentais de dados. Desde então, a linguagem recebeu várias novas versões. Dessas, as mais famosas são as versões 2 e 3.

A Python Software Foundation (PSF), fundada no ano de 2001, é uma organização sem fins lucrativos que possui a propriedade intelectual relacionada à linguagem Python. Atualmente, a PSF é a responsável pela curadoria e administração geral versões da linguagem.

Esquema que representa uma linha do tempo da evolução da linguagem. 1991: Van Rossum lança a versão 0.9.0; 1994 é lançada a versão 1.0 com a integração de programação funcional; 2000: Python 2.0 é publicado com a adição do garbage collector; 2008: A versão 3.0 é lançada, corrigindo erros de design e sem retrocompatibilidade; 2020: Python 2.x tem o seu suporte descontinuado

Filosofia

Gif animado de uma série de filósofos gregos andando um atrás do outro

(Gif: Giphy | Reprodução)

Desde sua concepção, o Python existe pelo princípio de tornar a programação um ato mais intuitivo e menos travado em sua própria estruturação.

O método de desenvolvimento Open Source permite que sua própria comunidade de programadores e usuários ajudem em seu contínuo melhoramento.

Ao considerarmos a sua baixa curva de aprendizagem devido a sua sintaxe de simples compreensão, o Python acaba sendo uma das linguagens mais populares.

Uma característica muito importante para a comunidade Python é a legibilidade do código, algo que reforça a ideia de ser uma linguagem mais próxima do humano e mais democrática. Esse tópico é tão importante que existem elementos que enfatizam isso: PEP-8 e The Zen of Python.

A PEP-8 é um guia de estilos e estruturação de código amplamente utilizado e que, apesar de não ser obrigatório para o funcionamento da linguagem, acaba por torná-la muito mais fluida em sua leitura. Já The Zen of Python é um pequeno texto que representa a filosofia do seu estilo de programação.

O website Python Checker é recomendado pela documentação oficial do Python como um auxílio para aqueles que querem “corrigir” seus próprios códigos conforme a PEP-8.

The Zen of Python está presente como Easter Egg dentro da própria linguagem. Basta digitar import this no terminal do Python.

Versão Original

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

Tradução para Português

The Zen of Python, por Tim Peters

Bonito é melhor que feio.

Explícito é melhor que implícito.

Simples é melhor que complexo.

Complexo é melhor que complicado.

Linear é melhor que aninhado.

Esparso é melhor que denso.

Legibilidade conta.

Casos especiais não são especiais o suficiente para quebrar regras.

Embora praticidade prevaleça sobre pureza.

Erros nunca devem ser silenciados.

A não ser explicitamente.

Diante de uma ambiguidade, não caia na armadilha do chute.

Deve existir um – e preferencialmente um – jeito óbvio de se fazer algo.

Embora possa não parecer óbvio a não ser que você seja holandês.

Agora é melhor que nunca.

Embora nunca normalmente seja melhor que exatamente agora.

Se a implementação é difícil de explicar, ela é uma má ideia.

Se a implementação é fácil de explicar, talvez seja uma boa ideia.

Namespaces são uma grande ideia – vamos usá-los mais!

Python 2 vs Python 3

Gif de um vídeo vintage em preto e branco de dois homens brigando com luvas de boxe

(Gif: Giphy | Reprodução)

É normal que a maioria das linguagens possuam atualizações constantes que contribuem para o seu avanço e melhoramento. A maioria dessas atualizações são feitas no funcionamento interno da linguagem e, portanto, não há preocupação por parte do programador, uma vez que não é necessário corrigir seus códigos. Esse não é o caso do embate Python 2 vs Python 3.

Spoiler Alert! Python 3 é a vencedora desse confronto e, definitivamente, é o futuro da linguagem. Lançada em 2008, a nova versão busca tornar a linguagem mais fácil de ser usada e mudar a forma como ela lida com strings e unicodes, tornando-a mais eficiente e fluida.

Por apresentar uma sintaxe diferente das versões 2.x, a versão 3.x se tornou a primeira a ser incompatível com as versões anteriores e, no início de 2020, o suporte às versões 2.x foi descontinuado.

Utilização no Mercado

Desenvolvimento Web

A área de Desenvolvimento web engloba todas as atividades usadas para criar websites e aplicativos web-based. Existem duas subcategorias quando falamos em desenvolvimento web: O Front-end e o Back-end.

A linguagem Python entra nessa história através dos seus frameworks de desenvolvimento web back-end, o Django e o Flask. Esses frameworks são estruturas que facilitam a criação lógica do back-end, mapeando URLs, auxiliando a integração com bancos de dados e a criação de APIs.

Conteúdo interessante:

Data Science

Nessa nova era do Big Data, saber extrair, manusear e analisar dados se tornou mais importante do que nunca e, uma hora ou outra, alguma linguagem de programação teria que se destacar pela sua eficiência nessas atividades.

O Python brilha em Data Science graças à sua sintaxe de fácil compreensão, implementação de interpretação imediata e suporte de múltiplas bibliotecas gráficas e estatísticas criadas constantemente pela comunidade. Sejam análises gráficas ou modelos preditivos feitos com Machine Learning, o Python acaba por ser o favorito dos cientistas de dados.

Podemos destacar algumas bibliotecas de extração, análise e visualização de dados como a Pandas, Matplotlib e Seaborn. Já na área de Machine Learning, podemos mencionar a Scikit-learn, TensorFlow e Pytorch.

Conteúdo interessante:

Automação e Scripting

Todos sonham em automatizar tarefas e deixar o computador fazer todo o trabalho repetitivo. Pois bem, o Python também pode fazer isso! Novamente a fácil sintaxe e a velocidade da linguagem fazem diferença aqui, otimizando as tentativas e testes.

Através de bibliotecas como Selenium, PyAutoGUI e BeautifulSoup, podemos realizar automatização de tarefas de rotina: envio de e-mails ou mensagens ou até mesmo utilizar a técnica de Web Scraping para extrair dados de um web site.

Conteúdo interessante:

Conclusão

Não é por acaso que Python é uma das mais populares linguagens de programação da atualidade. Sua fácil sintaxe o torna uma linguagem democrática que não se restringe apenas a profissionais da área de tecnologia, sendo usado até mesmo em escolas como um primeiro contato com lógica de programação. O modelo de desenvolvimento Open Source incentiva o crescimento de uma comunidade ativa que cria novas bibliotecas e oferece suporte contínuo para o melhoramento da linguagem. E, finalmente, o uso de Python como a principal linguagem de manipulação de dados na atual Era dos Dados evidencia sua grande presença no mercado de trabalho. Pode-se dizer que o Python não é apenas a linguagem de programação do momento, mas a linguagem de programação do futuro!

Para mergulhar no mundo do Python, você pode acessar as seguintes formações:

Bruno Divino
Bruno Divino

Bruno cursa Engenharia Mecatrônica na UTFPR e Tecnologia em Análise e Desenvolvimento de Sistemas na PUC-PR. Faz parte do Scuba Team aqui da Alura e constantemente se empenha em auxiliar da melhor forma possível os alunos que, assim como ele, são apaixonados por tecnologia.

Veja outros artigos sobre Programação