image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Lorena Assis
Lorena Assis18/08/2023 06:57
Compartilhe

Introdução ao Python: da história aos modos de operação da linguagem

    Muitas vezes, quando iniciamos os estudos em uma linguagem da programação, aprendemos conceitos e técnicas de uma forma não-linear e mal estruturada, levando a gaps no nosso conhecimento.

    Este artigo é uma breve introdução sobre a linguagem, porém cobre assuntos muitas vezes não abordados em cursos iniciantes e que, na minha experiência, me fizeram compreender melhor como se comporta Python nos bastidores.

    Para poupar seus esforços, o artigo foi escrito no formato de resumo – fique à vontade para salvá-lo e utilizá-lo sempre como referência em seus estudos.

    Boa leitura!

    Introdução

    Um pouco da história de Python

    A linguagem Python foi criada por Guido van Rossum em 1989. Foi nomeada em homenagem ao grupo de comédia britânico Monty Python.

    Ela possui 2 versões:

    • 2.+ é a mais antiga, e foi interrompida em abril de 2020.
    • 3.+ é a nova e foi lançada em outubro de 2020.

    Novos programas em Python devem ser escritos utilizando a nova versão, mas é bom saber como trabalhar com códigos antigos também. Há problemas de compatibilidade entre as versões.

    O que é Python

    É uma linguagem, não uma aplicação.

    O Python tem compatibilidade reversa, ou retro compatibilidade, ou seja, códigos escritos em versões antigas tal como a 3.8 irão funcionar na versão 3.91 3.10 e assim por diante.

    Existem várias implementações de Python. Ex: CPython e PyPy. Essas "implementações" podem ser consideradas programas ou ambientes que oferecem suporte para a execução de programas escritos na linguagem Python.

    Há implementações do tipo compiladores, que "traduzem" o código em Python para outras linguagens. Por exemplo:

    • IronPython > .NET
    • Jython > Java
    • Cython > C/C++

    A implementação padrão e mais utilizada é a CPython, também conhecida como Python Canônico. Ela é de código aberto e escrita em C (por isso é chamada de CPython). Ela inclui uma biblioteca padrão denominada standard library que é uma coleção de funcionalidades que vão além da linguagem Python, escritas em C ou em próprio Python.

    A implementação de CPython está disponível para diferentes plataformas, tal como Windows, Linux, Mac OS, iOS, Android, PlayStation, Xbox, etc.

    Instalação do CPython e bibliotecas

    O CPython é basicamente um amontoado de arquivos que são copiados para um diretório do seu computador. Portanto, é possível ter múltiplas versões de CPython instaladas ao mesmo tempo em uma máquina. A biblioteca padrão completa já está inclusa nesses arquivos.

    Temos também que um desses arquivos é um executável que é utilizado para rodar arquivos escritos em Python ou um shell interativo.

    Site oficial: Welcome to Python.org

    Como utilizar o Python Launcher no Windows

    Para rodar Python pelo Windows utilizamos a linha de comando.

    Comandos

    • py --version: mostra a versão do último Python instalado na máquina
    • py --list: mostra todas as versões de Python instaladas na máquina
    • py --list-path: mostra o caminho das versões de Python instaladas na máquina
    • py: executa o instalador através do shell
    • py -numero_da_versão: executa o instalador da versão desejada através do shell
    • C:\\...\\…\\python.exe: executa o instalador do caminho selecionado

    Ambientes virtuais

    Existem várias bibliotecas de terceiros que são bastante úteis para criar programas bem específicos. São como add-ons para o Python. Assim como o instalador do Python, essas bibliotecas são um amontoado de arquivos adicionados na pasta de instalação do Python.

    É importante ficar atento ao fato de que muitas desses bibliotecas dependem de outras para serem executadas. Além disso, elas possuem versões específicas para versões específicas de Python. Por consequência, isso acaba trazendo conflitos, pois não é possível ter múltiplas instalações de uma mesma biblioteca para somente uma versão do Python.

    A solução, nesse caso, é criar duas instalações da mesma versão de Python, ou seja, copiar e colar o diretório, e em cada um deles, instalar uma versão diferente da biblioteca desejada.

    Para facilitar o processo de abrir e executar cada uma dessas versões de Python na linha de comando, podemos adicionar à variável PATH do Windows os caminhos de cada um deles, e atualizar conforme preciso. No entanto, esse processo é bastante tedioso, e, por isso, são utilizados ambientes virtuais para simplificar todo esse processo.

    Como funcionam os ambientes virtuais

    Eles criam uma cópia da instalação de Python e fornecem scripts que "ativam"/"desativam" o ambiente virtual ao atualizar o caminho PATH na variável do sistema automaticamente, sem que precisemos fazer esse processo de forma manual toda vez que quisermos utilizar uma biblioteca nova.

    No Mac e Linux, isso é feito de forma bastante eficiente, pois ao invés de se copiar a instalação para outro diretório, são utilizados os symlinks. Já o Windows realmente faz a cópia dos arquivos de instalação do Python, tornando os ambientes virtuais um pouco menos eficientes.

    Criação de ambientes virtuais no Windows

    O CPython já vem com um gerenciador de ambientes virtuais incluso. Para criar um ambiente virtual, utilizamos o seguinte comando no terminal:

    py -<versao_do_Python> -m venv <nome_do_ambiente_virtual> # Ex: py -3.9 -m venv test
    

    Para ativar o ambiente virtual recém-criado, utilizamos o seguinte comando no terminal:

    <caminho_para_o_ambiente_virtual>\Scripts\activate.bat # Ex: test\Scripts\activate
    

    O ideal é criar o ambiente virtual na mesma pasta do projeto com o código que você está desenvolvendo, pois assim você sabe exatamente qual ambiente virtual utilizar para cada projeto.

    Outro ponto a se atentar é instalar os pacotes (bibliotecas) apenas nos ambientes virtuais, mantendo a instalação original do Python limpa.

    Instalando pacotes (bibliotecas)

    Junto com a instalação do Python, é instalada a aplicação pip (Package Installer for Python), responsável por instalar, atualizar e remover pacotes hospedados no Python Package Index (repositório oficial de bibliotecas de terceiros para o Python).

    Esse repositório hospeda mais de 200.000 pacotes de Python.

    Instalando pacotes com o pip

    1. Ativar o ambiente virtual
    2. Utilizar o comando: pip install <nome_do_pacote>Podemos utilizar pip install <nome_do_pacote>==<versão> para instalar uma versão específica do pacote
    3. Podemos utilizar pip install <nome_do_pacote><=<versão> para instalar a versão mais próxima, porém menor, que a versão especificada
    4. Podemos utilizar pip install <nome_do_pacote>><versão> para instalar uma versão acima da versão especificada

    Observação: uma vez decidida a versão do pacote que será utilizado no projeto, é preciso utilizar sempre essa mesma versão ao criar um novo ambiente virtual para o mesmo projeto.

    Por isso é muito importante documentar não somente quais pacotes foram utilizados no projeto, mas também as versões dos pacotes utilizados por meio do arquivo de texto requirements.txt. Todo projeto deve conter um.

    O arquivo requirements.txt

    Esse arquivo pode ser denominado da forma desejada, mas requirements é o nome convencionado pela comunidade.

    Em seu interior, temos os pacotes listados junto com as suas respectivas versões desta maneira: nome_do pacote==versão_do_pacote.

    Por exemplo:

    numpy==1.18.1

    pandas==1.1.4

    matplotlib==3.3.3

    Outra vantagem desse arquivo é utilizar o pip para ler e instalar todos os pacotes necessários a um projeto de uma só vez, utilizando o comando: pip install -r requirements.txt.

    Como o Python realmente funciona

    O Python contém tanto um compilador quanto um intérprete.

    Em termos gerais, um compilador transforma o código escrito na linguagem Python (um arquivo de texto) em um código intermediário chamado bytecode, que é então interpretado por uma máquina virtual do sistema operacional específico de cada plataforma, para que o próprio sistema operante possa entender e executar o código inicial, de modo a enviar um output para a tela (geralmente para o console).

    Os modos de operação do Python

    É possível operar o Python de dois diferentes modos:

    • Interativo: escrevemos uma linha/bloco de código que é executado imediatamente. Qualquer output também é imediatamente gerado. Realizamos esse mesmo processo continuamente. Esse modo é normalmente conhecido por REPL (Read, Eval, Print, Loop), o que significa ler, avaliar, imprimir, voltar ao início.
    • Script: escrevemos todo o código em arquivos primeiro, para depois ele ser executado através da linha de comando.

    Como executar o Python no modo interativo

    1. Ativar o ambiente virtual
    2. Iniciar o shell (REPL) através do comando python
    3. Digitar o código

    Esse processo envolve uma interface não gráfica (terminal), e é excelente para trabalhar em servidores que operam sem essa interface e para testar funcionalidades. No entanto, esse modo de operação é tedioso, pois todo o código escrito é perdido e é necessário digitar tudo do zero (sem copiar e colar).

    Por essa razão foi desenvolvida a biblioteca Jupyter Notebooks, que é uma REPL com navegação, tornando possível salvar os comandos digitados num arquivo de extensão .ipynb.

    Como executar o Python no modo script

    1. Escrever todo o código utilizando um editor de texto
    2. Rodar o programa em Python utilizando o comando python my_app.py no terminal

    Esse processo é excelente para desenvolver programas tradicionais, que podem ser executados frequentemente; oferecem melhor estruturação de código e de organização de pastas; é ideal para o desenvolvimento de aplicações complexas (servidores web, machine learning, bibliotecas, etc).

    Normalmente utilizamos uma IDE (Inegrated Development Environment) para escrever esses códigos, que é um editor de texto com funcionalidades para facilitar o trabalho de um desenvolvedor, como ferramentas de debugging, terminal embutido, atalhos específicos, autocompletar textos, destaque de sintaxe, etc.

    IDEs populares:

    • PyCharm
    • VsCode
    • Atom
    • Sublime Text 3
    • Spyder
    Compartilhe
    Comentários (4)
    Marcos Viana
    Marcos Viana - 18/08/2023 20:27

    Adorei o post, também gosto além de usar o ambiente virtual, usar o gerenciador de versões do python o pyenv, e para gerenciar a dependencias um dos tre o qual já os utilizei: pipenv, poetry ou o piptools. Particularmente prefiro sempre criar o ambiente virtual pelo python, não pelos gerenciadore nem pela IDE , prefiro e evita alguns possíveis probleminhas rsrsrs

    Gabriel Cardoso
    Gabriel Cardoso - 19/08/2023 09:26

    Realmente, para nós iniciantes é um "prato cheio" de informações novas, não costumo ver essas informações tão claras e as vezes a documentação é um pouco massiva. Ótimo conteúdo!

    CG

    Cassiano Gomes - 18/08/2023 07:57

    Estou perdido aqui

    Anderson Silva
    Anderson Silva - 18/08/2023 07:44

    Utilizo bastante PyCharm e o VsCode, mas já usei o Spyder e Sublime nunca experimentei o Atom.