Python de Sathish Yellanki
Linguagem de Programação da Próxima Geração
Nós Não Apenas Te Treinamos, Mas Te Fazemos
Identifique Seu Poder Interno Para Ser um
Programador Inovador Pronto Para Aceitar
Desafios para a Próxima Geração de TI
Indústria
Um Livro Aberto Para Seu Primeiro Nível
Jornada na Programação em Python
Introdução
• Introdução à Linguagem Python
• Compreendendo os Recursos do Python
• Introdução à Programação em Python
• Instalando o Python em
o Windows
o Linux
• Compreendendo "Configuração do Caminho" em Python
• O que são variáveis de ambiente do Python?
• Apresentando o Ambiente de Desenvolvimento Integrado (IDE) Python
• Programação em Python Usando o Modo Interativo
• Programação em Python no Modo de Script
Compreendendo Conceitos Básicos de Linguagem
• O que são Identificadores?
• Convenções de Nomenclatura Para Identificadores
• Palavras-chave Reservadas do Python
• Compreendendo Linhas e Indentação em Python
• Compreendendo os Caracteres de Escape
• Declarações de Múltiplas Linhas em Python
• Usando Citações em Python
o Aspas Simples
o Aspas Duplas
o Três Aspas
• Comentários em Python
• O que são linhas em branco no Python?
• Entendendo os Padrões de Entrada e Saída do Python
• Manipulando Múltiplas Declarações em uma Única Linha.
• Argumentos da Linha de Comando em Python
Gerenciando a Memória em Python
Operadores Python
• Entendendo os Operadores em Python
o Operadores Aritméticos
o Operadores de Comparação OU Relacionais
o Operadores de Atribuição
o Operadores Lógicos
o Operadores Bitwise
o Membership Operators
o Operadores de Identidade
• Entendendo a Precedência dos Operadores
Tipos de Dados em Python
• Tipos de Dados Padrões do Python
o Tipos de Números
o Tipos de String
o Listar Tipos
o Tipos de Tupla
o Tipos de Dicionário
• Declaração, Inicialização e Atribuição de Variáveis
• Manipulando Entrada em Tempo de Execução em Python
• Atribuição em Cascata no Python
Manipulando Números em Python
• Tipos de Dados Numéricos em Python
o int
o longo
o flutuar
o complexo
• Vivenciando Operadores Aritméticos
• Número OU Funções Matemáticas
• Padrões de Conversão de Tipos em Python
Gerenciamento de Strings em Python
• Compreendendo Strings em Python
• Lendo dados de strings em Python
• Entendendo o Conceito de Atualização de Strings em Python
• Manipulação de Concatenação de Strings
• Experimentando Operadores de String em Python
• Entendendo 'Indexação', 'Fatiamento' e 'Matrizes'
• Experimentando o Formatação de Strings em Python
• Manipulando Strings Unicode em Python
• Experiencing Strings With Methods
Controle de Fluxo em Python
• Codificação em Tempo Real Usando Estruturas de Controle
Instruções de Ramificação
o A instrução "se"
o A cláusula "else"
o Instruções 'if' aninhadas
o Usando a cláusula 'elif'
• Valores como Condições
• Usando Operadores Lógicos
• Declarações como Processos em Python
o Suítes de Declaração Única
o Conjuntos de Múltiplas Declarações
Blocos Iterativos
• A declaração 'while'
• The “for” Loop
• Laços Aninhados em Python
• Planejando Para Evitar Laços Infinito
Controlando o Comportamento de Loops
• Declaração 'break'
• Declaração 'continue'
• Declaração 'pass'
Trabalhando com Coleções Integradas do Python
Experienciando a Praticidade das 'Listas' em Python
• Declaração e Acesso a Listas
• Atualização de Dados em "Listas"
• Exclusão de Dados de "Listas"
• Entendendo as Operações Básicas de 'Lista'
• Understanding List “Indexing”, “Slicing” And “Matrixes”
• Funções Integradas de Lista em Python
• Experienciando Listas Com Métodos
Vivenciando a Praticidade dos "Tuples" em Python
• Declaração e Acesso a Tuplas
• Atualização de Dados em "Tuplas"
• Exclusão de Dados de "Tuplas"
• Entendendo as Operações Básicas de 'Tuplas'
• Entendendo "Indexação" de Tuplas, "Fatiamento" e "Matrizes"
• Funções embutidas de Tupla em Python
• Experimentando Tupla Com Métodos
Experimentando a Praticidade do "Dicionário" em Python
• Declaration And Accessing of Dictionary
• Atualização de Dados no 'Dicionário'
• Exclusão de Dados do "Dicionário"
• Compreendendo as Propriedades das Chaves do "Dicionário"
• Compreendendo as Operações Básicas de "Dicionário"
• Funções Integradas do Dicionário Python
• Experienciando Dicionário Com Métodos
Gerenciamento de Data e Hora em Python
Gestão do Tempo
• Compreendendo o Conceito de Tick em Python
• Entendendo o Conceito de “TimeTuple”
• Entendendo o Conceito da Estrutura 'struct_time'
• Capturando a Hora Atual em Python
• Customize the Time Format in Python
• Vivenciando o módulo 'time' e métodos em Python
• Compreendendo os Atributos do Módulo de Tempo
Gestão de Calendário
• Gerando Calendário em Python
• Experimentando o Módulo e Funções "Calendário" em Python
Vivenciando Módulos e Utilitários de Data e Hora Fornecidos pelo Python
Tratamento de Exceções em Python
O que são exceções?
Diferença Entre "Erro" e "Exceção"
Conceitos de Tratamento de Exceções em Python
Compreendendo o bloco “try…except…else” em Python
• Cláusula 'exceto' Com ou Sem Exceções
• Cláusula 'exceto' com várias exceções
• Cláusula "try...finally" do Python
O que significa 'Argumento de uma Exceção'?
Levantando uma Exceção em Python
Projetando Exceções Definidas pelo Usuário em Python
Experimentando Exceções Padrão do Python
Exceções Definidas pelo Usuário em Python
Aserções em Python
O que são 'Aserções'?
Compreendendo a declaração 'assert'
Onde Usar Afirmações em Python
Programação Modular Com Python
• O que são funções em Python?
• Compreendendo a Sintaxe das Funções
• Declaração de Função
• Chamada de Função
• "Chamada por Valor" e "Chamada por Referência"
Compreendendo os "Argumentos" da Função
• Argumentos 'Requeridos'
• Argumentos de "Palavra-chave"
• Argumentos 'Padrão'
• Argumentos de Comprimento Variável
Experienciando Funções "Anônimas"
Entendendo a declaração 'return' nas funções Python
Understanding Variable Scope in Python
Experimentando Variáveis "Globais" e Variáveis "Locais"
Entendendo Recursão
O que é Recursão?
Por que precisamos de recursão?
Requisitos Básicos da Recursão
Experimentando Recursão na Praticidade
Sobrecarga de Funções
O que é Sobrecarga de Funções?
Regras de Sobrecarga de Função
Overloading Built-in Functions
Sobrecarga de Funções Definidas pelo Usuário
Sobrecarga de Operadores
O que é sobrecarga de operadores?
Regras Para Sobrecarga de Operadores
Por que precisamos de sobrecarga de operadores?
What Are Magic Methods For Operator Overloading?
Desenvolvendo 'Módulos' Personalizados em Python
Entendendo o Conceito de Módulos em Python
Por que precisamos de módulos em Python?
Entendendo a declaração 'import' em Python
Aplicando a declaração "de...importar" em módulos Python
Como Saber a Localização dos Módulos em Python?
O que é a variável "PYTHONPATH" em Python?
Compreendendo os "Namespaces" e "Escopos" do Python
Capturando Algumas Funções em Módulos Python
• Função "dir()"
• "globals()" Função
• Função "locals()"
• Função “reload()”
Pacotes em Python
• Projetando Pacotes em Python
• Aplicando Pacotes para Praticidade
• Chamando Componentes Dos Pacotes
• Python PIP
Manipulando Arquivos em Python
Compreendendo o Conceito de Arquivos
Experienciando as Operações com Arquivos em Python
• Abertura do Arquivo
• Entendendo os Modos de Abertura de Arquivo
Entendendo Atributos de Objetos de Arquivo
Entendendo as operações de 'Leia' e 'Escreva' em Python
• Método “read()”
• "método write()"
Entendendo o Fechamento de Arquivos
• Método "close()"
Capturando os Ponteiros de Posição do Arquivo
• Qual é o conceito de posicionamento de arquivo?
• Métodos de Posicionamento de Arquivo em Python
Métodos de Gerenciamento de Arquivos
• Método “rename()”
• "remove()" Método
Compreendendo e Lidar com Diretórios em Python
Usando Métodos de Arquivo e Diretório Fornecidos pelo Python
Introduzindo Programação Orientada a Objetos em Python
O que é o Paradigma Orientado a Objetos?
Capturando o Jargão da Programação Orientada a Objetos
Entendendo o Conceito de Classe em Python
• Criando Classes
• Modificadores de Acesso na Classe Python
• Criando as Instâncias da Classe (Objetos)
• Declarando Atributos em uma Classe
• Acessando Atributos de Classes
• Métodos de Acesso a Atributos em Python
o getattr()
o hasattr()
o setattr()
o delattr()
Atributos de Classe Integrados em Python
• _dicionário_
• _doc_
• _nome_
• _módulo_
• _bases_
Desenvolvendo Métodos em uma Classe Python
• Métodos de Classe
• Métodos de Instância
Construtores em Python
• Tipos de Construtores
• Sobrecarga de Construtores
Sobrecarga de Métodos
• O que é Sobrecarga de Métodos?
• Regras para Sobrecarga de Métodos
• Por que precisamos de sobrecarga de métodos?
Entendendo a Coleta de Lixo em Python
Compreendendo o Conceito de Herança
• O que se entende por herança?
• Por que precisamos de herança?
• Regras para Implementar Herança
• Types of Inheritance
o Herança Simples
o Herança Multinível
o Herança Hierárquica
o Herança Múltipla
o Herança Híbrida
Entendendo o Método “issubclass()”
Entendendo o Método “isinstance()”
Entendendo "super()" na Herança
O que são classes de dados em Python?
Sobrescrita de Método
• O que é Sobrecarga de Método?
• Regras para Sobrescrita de Métodos
• Por que precisamos da substituição de métodos?
Compreendendo o conceito de Resolução de Método em Python
Conceito de Sobrescrita de Métodos em Python
Polymorphism in Python
• Funções Polimórficas Embutidas e Definidas pelo Usuário em Python
• Polimorfismo Usando Métodos da Classe
• Polimorfismo por Herança
• Polimorfismo com Funções e Objetos
Implementação Avançada de Python
Iteradores em Python
• O que são Iteradores?
• Iterando Usando Iterator em Python
• Criando Nosso Próprio Iterador
• Iteradores Infinitos em Python
Geradores Python
• O que são Geradores?
• Criando Nosso Próprio Gerador em Python
• Função Geradora Versus Função Normal
• Geradores Python Com Loop
• Expressões de Gerador
• Por que devemos usar geradores?
Fechamentos em Python
• O que são fechamentos?
• Entendendo Variável Não Local em uma Função Aninhada
• Definindo Nossa Própria Função de Fechamento
• Quando Planejar um Fechamento?
• Quando usar um fechamento?
Decoradores em Python
• O que são Decoradores em Python?
• Pré-requisitos para Decoradores
• Decorando Funções Com Parâmetros
• Encadeamento de Decoradores
Entendendo o Python @ Property
• Usando Getters e Setters em Python
• Capturando o Poder da Propriedade @
• Mineração em Propriedade
Entendendo a Cópia Superficial e a Cópia Profunda em Python
• Copiando um Objeto em Python
• Módulo Copy em Python
• Implementando Cópia Superficial
• Implementando Cópia Profunda
Declaração assert em Python
• O que significa afirmação?
• Declaração Assert em Python
Trabalhando com Python RegEx
• O que são expressões regulares?
• Especificando Padrões Usando RegEx
• Compreendendo os Tokens de Expressão Regular
• Trabalhando com funções de expressão regular em Python
Parser XML em Python
• O que significa XML?
• Arquiteturas de Analisadores XML e APIs
• Compreendendo Métodos XML
• Analisar XML usando minidom
• Criando Nó XML
• Analisando XML Usando Element Tree
Programação Multithread em Python
• O que é Programação Multi-Thread?
• Tipos de Linhas
• Por que usar multithreading?
• Python Multithreading Versus Multiprocessing
• Módulo de Threading do Python
• Sincronizando Threads em Python
• Compreendendo a Fila de Prioridade em Múltiplas Threads
Funções Lambda em Python
• O que significa Lambda?
• Compreendendo Lambdas em Python
• Usando Lambdas com Funções Internas do Python
• Lambdas em filter()
• Lambdas em map()
• Lambdas em reduce()
• Quando usar funções lambda?
• Funções Lambda Versus Funções Regulares
Python JSON
• O que é JSON?
• Analisar JSON
o Convert from JSON to Python
o Converter de Python para JSON
• Formatando o Resultado JSON
• Ordering The JSON Result
Trabalhando com Banco de Dados
• Compreendendo a Conexão de Banco de Dados
• Estabelecendo Conexão com o Banco de Dados
• Creating Database Table
• Implementando Operações CRUD em Banco de Dados
• Compreendendo as Propriedades ACID
• Trabalhando com Controle Transacional
• Gerenciando Erros de Banco de Dados
Pacotes Python Funcionando
Python Numpy
• Criação de Array Numpy
• Array Multidimensional Numpy Usando ndarray
• Objetos de Tipo de Dados
• Tipo de dados Object (dtype) no NumPy
• Indexação
• Fatiamento Básico e Indexação Avançada
• Iterando Sobre o Array
• Operações Binárias
• Função Matemática
• Operações de String
• Álgebra Linear
• Sorting, Searching and Counting
Pandas
• DataFrame do Pandas
• Criando um DataFrame do Pandas
• Trabalhando com Linhas e Colunas em DataFrame do Pandas
• Indexação e Seleção de Dados com Pandas
• Indexação Booleana no Pandas
• Funções de Conversão em DataFrame do Pandas
• Iterando sobre Linhas e Colunas em DataFrame do Pandas
• Trabalhando com Dados Ausentes no Pandas
• Trabalhando com Dados de Texto
• Trabalhando com Datas e Horários
• Mesclando, Unindo e Concatenando
• Série Pandas
• Criando uma Série Pandas
• Acessando Elementos de uma Série Pandas
• Análise de Dados Usando Pandas
• Leia csv usando pandas.read_csv()
• Mesclar, Juntar e Concatenar DataFrames Usando o Panda
• Excluir Linhas/Colunas do DataFrame Usando [Link]()
• Comparação e Seleção de Dados no Pandas
Interface Gráfica Python
• Python GUI tkinter
• Experienciando Widgets Tkinter
• Atributos Padrão no Tkinter
• Gerenciamento de Geometria Usando Tkinter
Frameworks Web em Python
• O que é uma estrutura?
• Por que precisamos de estruturas?
• Quando usar frameworks?
• Entrando nos conceitos básicos do Django
• Entendendo o Ambiente Django
• Criando um Projeto em Django
• O que é Ciclo de Vida de Aplicativos
• Experimentando a Interface de Administração
• Criando Vistas no Django
• Compreendendo o Mapeamento de URL
• O que é um Sistema de Template
• Entendendo os Modelos Django
• Redirecionamento de Página
• Enviando E-mails
• Trabalhando Com Views Genéricas
• Padrões de Processamento de Formulários
• Implementando Upload de Arquivos
• Configuração do Apache
• Manipulação de Cookies no Django
• Compreendendo Sessões
• Gestão de Cache
• Comentários no Django