Python

Conceitos

O que é Python?

  • Linguagem de programação de alto nível;
    • Fácil de aprender e usar;
    • Sintaxe clara e expressiva;
    • Multiplataforma;
  • Interpretada e dinâmica;
  • Suporta múltiplos paradigmas:
    • Programação orientada a objetos;
    • Programação funcional;
    • Programação procedural;
  • Extensa biblioteca padrão;

O que é PIP?

  • Gerenciador de pacotes do Python;
  • Instalar bibliotecas de terceiros;
  • Fornecer bibliotecas;
  • Comparáveis:
    • NPM do Node.js;
    • Composer do PHP;
    • Gems do Ruby;

Características do Python

  • Interpretado
    • Não precisa ser compilado;
    • Execução direta do código fonte;
  • Tipagem dinâmica
    • Tipos são inferidos em tempo de execução;
    • Não é necessário declarar tipos;
  • Gerenciamento automático de memória
    • Garbage collector;
    • Não precisa alocar/desalocar memória manualmente;

Frameworks

  • Web:
    • Django: Full-featured;
    • Flask: Microframework;
    • FastAPI: APIs modernas;
  • Data Science:
    • NumPy;
    • Pandas;
    • Scikit-learn;
  • GUI:
    • Tkinter;
    • PyQt;
    • Kivy;

Instalações e Configurações

Instalação do Python

Instalação do Python via Chocolatey no Windows:

# Utilizando o Chocolatey
choco install python

Instalação do Python em Linux/Mac:

# Ubuntu/Debian
sudo apt-get install python3
# MacOS com Homebrew
brew install python

Desenvolvimento Web

Como funciona?

  • Frameworks web Python seguem padrões:
    • WSGI (Web Server Gateway Interface);
    • ASGI (Asynchronous Server Gateway Interface);
  • Padrão MVC/MVT comum:
    • Models: Dados/BD;
    • Views/Templates: Interface;
    • Controllers: Lógica;

Benefícios

  • Desenvolvimento rápido;
  • Grande ecossistema de bibliotecas;
  • Comunidade ativa;
  • Fácil integração com:
    • Bancos de dados;
    • APIs;
    • Serviços em nuvem;

Tipos de Parâmetros

  • Query Params: Filtros e paginação (?param=valor)
  • Path Params: Identificar recursos (/users/123)
  • Request Body: Dados para criar/atualizar (JSON/Form)