/learning-python

:snake: aprendendo python

Primary LanguageJupyter Notebook

learning-python

1. Introdução

  • i/o na saída padrão
  • tipos de dados
  • estruturas de controle
  • built-in functions
  • funções
  • módulos externos
  • contentores
  • compreensão de listas
  • i/o de arquivos

2. Orientação a objetos

  • Classes, objetos e self
  • Propriedades e métodos
    • Dunder methods (métodos especiais)
      • Função "construtora" (__init__)
      • Representação textual de um objeto (__str__)
      • Representação lógica de um objeto(__repr__)
    • métodos e atributos estáticos
  • Encapsulamento e coesão do código
    • __ vs _
  • Polimorfismo
    • Herança (extensão)
      • Relacionamento "é um..."
      • método super()
      • Herança de tipos built in
      • Interface vs Reuso (vantagens e desvantagens)
  • Composição
    • Relacionamento "tem um..."/"se comporta como um..."
    • Duck typing e magic methods
      • __getitem__, __len__
      • Python data (object) model: inicialização, representação, container, numéricos
  • Classes abstratas
    • Interfaces: Abstract Base Classes (ABC)
    • Métodos abstratos
  • Herança múltipla
    • Method Resolution Order (MRO)
    • Mixins

3. Strings

  • O que são strings?
  • Fatiando strings
  • Expressões regulares
  • Métodos especiais

4 Collections

  • Listas
  • Tuplas
  • Lista de tuplas
  • Tupla de objetos
  • Heraça e polimorfismo
  • Array e Numpy
  • Igualdade e o __eq__
  • Outras built in functions
    • enumerate
    • range
    • desempacotamento de tuplas
  • Ordenação
    • in place
    • lazy loading
    • ordem natural
      • __lt__ (less than)
    • functools
      • total_ordering
  • Conjuntos
  • Dicionários

5 Validação de dados nacionais

  • Validação de CPF e CNPJ com pacotes externos
  • Expressões regulares
    • Telefone
    • E-mail
  • Datas
    • biblioteca datetime
  • CEP
    • usando um web service

6 Testes de unidade

  • TDD e boas práticas
  • Biblioteca unittest
    • cenários isolados (setUp())
  • Biblioteca pytest
    • cenários isolados (fixtures e injeção de dependências)
  • Classes de equivalência
  • Gerenciador de contextos (with)
  • Exceções