Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução ao Python com Dados Abertos

Élysson MR
September 25, 2015

Introdução ao Python com Dados Abertos

Introdução a linguagem python utilizando dados abertos.

Élysson MR

September 25, 2015
Tweet

More Decks by Élysson MR

Other Decks in Programming

Transcript

  1. Agenda • Introdução • Características da Linguagem Python • Controle

    de Fluxo • Formatos de Dados • Mãos a Obra • Referências
  2. Sobre Mim • Formado em Sistemas de Informação na FAI

    - 2011 • Pós graduado em “Desenvolvimento Ágil de Aplicativos para Dispositivos Móveis e Web” na Fai - 2015 • Desenvolvedor Pleno no Grupo “Baraka Conexões de Negócios” • Experiência com Java, C#, PHP, C e Node • Trabalho a um ano e meio com Python full time
  3. Introdução • É uma Linguagem de altíssimo nível, orientada a

    objetos de tipagem dinâmica e forte, interpretada e interativa • Possui sintaxe clara e concisa • Incluí diversas estruturas de alto nível e vem com as baterias inclusas! – Mais informações em: https://docs.python.org/2/library/
  4. Introdução • Características do projeto: – Software de código aberto

    – Pode ser incorporado em produtos proprietários – É possível ser integrado com outras linguagens
  5. Introdução • Fundada em 1990 (mais velho que muitas linguagens

    famosas) por Guido Van Rossum • Teve nome inspirado no grupo de comédia britânico “Monty Python” • Concebida a partir da linguagem ABC
  6. Introdução • Usada por diversas empresas de alta tenologia: –

    Google (app web) – Globo (predominante nas equipes web) – Disney (animações 3D) – Gimp – Blender – Baraka Conexões de Negócios ;) – Entre outras
  7. Características da Linguagem • Exemplo de execução de um programa

    em python • Os arquivos são identificados pela extensão “.py” e podem ser executados usando $ python hello.py
  8. Características da Linguagem • Python utiliza tipagem dinâmica – O

    tipo de uma variável é inferido pelo interpretador em tempo de execução • Python possuí tipagem forte: – O interpretador verifica se as operações são válidas e não faz coerções automáticas entre tipos incompatíveis • O interpretador pode ser usado de forma interativa usando o comando “python” no terminal do SO
  9. Características da Linguagem • As metas do projeto foram resumidas

    por Tim Peters através de um texto chamado “Zen of Python”, pode-se conferir esse texto utilizando a instrução “import this” dentro do modo interativo
  10. Características da Linguagem • Um programa em Python é composto

    por linhas que podem continuar nas linhas seguintes utilizando o caractere “\”, parênteses, colchetes ou chaves; • O interpretador entende que uma linha é comentário quando ela inicia com “#”, isso não se aplica em comentários funcionais. – Comentários funcionais são utilizados para alterar a codificação do arquivo fonte ou definir qual interpretador será utilizado
  11. Características da Linguagem • Blocos: – Os blocos de código

    são delimitados pelo uso de endentação (isso obriga o desenvolvedor a criar um código no mínimo legível) – A linha anterior ao bloco sempre termina com “:”
  12. Características da Linguagem • Python é uma linguagem orientada a

    objetos, sendo assim as estruturas de dados possuem atríbutos (dados em si) e métodos (rotinas associadas aos dados) • Tanto os atríbutos quanto os métodos são acessados usando ponto “.” – Acesso a um atributo: objeto.atributo – Invocando um método: objeto.metodo(argumentos) • Também é possível acessar a estrutura de módulos importados usando o ponto
  13. Características da Linguagem • Nomes de variáveis são referências, que

    podem ser alteradas em tempo de execução • Existem variáveis mutáveis e não mutáveis • A criação das variáveis são feitas no momento da atribuição e são desalocadas pelo coletor de lixo, quando não usadas mais (não há nenhuma referência apontando mais para ela)
  14. Características da Linguagem • A linguagem provê alguns tipos númericos

    – Inteiro (int): i = 1 – Real (float): f = 3.14 • Além dos tipos númericos convencionais, existem também os inteiros longos que posssuem dimensão arbitrária e são limitados pela memória disponível • As conversões entre inteiro e longo são automáticas
  15. Características da Linguagem • Python suporta diversas operações aritméticas –

    Soma (+) – Diferença (-) – Multiplicação (*) – Divisão (/) – Divisão Inteira (//) – Módulo (%) – Potência (**)
  16. Características da Linguagem • Números também suportam operações lógicas –

    Menor (<) – Maior (>) – Menor ou igual (<=) – Maior ou igual (>=) – Igual (==) – Diferente (!=)
  17. Características da Linguagem • Em python String são imutáveis, portanto,

    não é possível adicionar, remover ou alterar um caractere de uma string • Essas operações são realizadas criando- se um nova string • Possuem dois tipos: – String padrão: s = 'The Butcher' – String unicode: u = u'Élysson MR'
  18. Características da Linguagem • Uma string pode ser iniciada: –

    Com aspas simples ou duplas – Em diversas linhas (entre três aspas simples ou duplas) – Sem expansão de caraceres ('\n' conterá os caracteres “\” e “n”
  19. Características da Linguagem • Interpolação de strings é feita utilizando

    o operador “%” • Interpolação é mais eficiente no uso da memória do que a concatenação convencional • Alguns símbolos: – “%s”: String – “%d”: Inteiro – “%f”: Real – “%%”: Sinal de porcentagem
  20. Características da Linguagem • Listas e Tuplas são coleções de

    objetos que podem ser de qualquer tipo, inclusive outras coleções • Listas são mutáveis, tuplas não • Podem ser fatiadas da mesma forma que as strings • Sintaxe: – lista = [1, 2, 3, 4, 5] – tupla = (1, 2, 3, 4, 5)
  21. Características da Linguagem • Dicionário é uma lista de associações

    compostas de chave e valor • São mutáveis, mas a chave precisa ser um tipo imutável • Dicionários não garantem que as chaves estarão ordenadas • Sintaxe: – dicionario = {'a': 1, 'b': 2}
  22. Características da Linguagem • O tipo booleano em python é

    uma especialização do tipo inteiro – Verdadeiro (True) corresponde ao valor 1 – Falso (False) corresponde ao valor 0 • Os seguintes valores são considerados falsos: – False – None – '' (string vazia) – [], () e {} (coleções vazaias) – Outras estruturas com tamanho igual a 0
  23. Características da Linguagem • Operadores lógicos: – and: retorna True

    somente se as expressões são verdadeiras – or: retorna False somente se as expressões são falsas – not: nega a expressão – is: retorna True se 2 referências forem para o mesmo objeto – in: retorna True se o elemento estiver presente numa lista
  24. Características da Linguagem • Funções são blocos de código identificados

    por um nome, podem receber parametros pré-determinados • Podem ou não ter retorno, aceitam parametros opcionais e possuem namespace próprio (escopo local)
  25. Características da Linguagem • Os argumentos com valor padrão devem

    vir por último, depois dos argumentos sem valor padrão • O valor padrão do argumento é calculado quando a função é definida
  26. Controle de Fluxos • O for em python, além de

    receber uma sequência estática também pode receber sequencias de iteradores e geradores • A cláusula “break” interrompe o laço, continue pula para próxima interação
  27. Controle de Fluxos • A Função range(m, n, p) é

    bem util para laços, pois retorna uma lista de inteiros de m a n em passos de p
  28. Controle de Fluxos • O bloco dentro do while é

    repetido enquanto a condição for verdadeira – Adequado para quando não há como determinar quantas interações vão ocorrer
  29. Formato de Dados • Alguns formatos de dados mais conhecidos:

    – CSV (Comma Separated Values) – JSON (JavaScript Object Notation) – Binário – Texto estruturado – Bancos de dados
  30. Formato de Dados • Apresenta os dados em formato de

    tabela • Cada linha em um CSV representa um registro • Os campos são separados por vírgulas (pode-se usar outro caractere) • Espaços iniciais e finais são eliminados das Strings • Usado para troca de dados entre aplicações
  31. Formato de Dados • A linha em vermelho representa o

    nome dos campos do CSV, colunas separadas por “;“ • As linhas em verde, representam os dados do CSV, colunas separadas por “;“ • Quando não houver dados, a coluna fica em branco
  32. Mãos a Obra 1)Primeiro vamos ler o arquivo 2)Carregar os

    dados em uma lista de dicionarios (nome da coluna → valor), imprimir o total de elementos 3)Procurar pelo menor e maior valor do combustível para Minas Gerais 4)Calcular o valor médio das amostras 5)Imprimir os valores dos combustíveis de Pouso Alegre ordenados pela pelo valor médio
  33. Referências ➔ www.python.org.br ➔ www.pythonbrasil.org.br ➔ Dive Into Python (www.diveintopython.org)

    ➔ Python para Desenvolvedores (ark4n.wordpress.com/python) ➔ CSV (http://edoceo.com/utilitas/csv-file-format) ➔ Preços de Combustíveis (http://dados.gov.br/dataset/precos-de- combustiveis)
  34. Obrigado!!! Élysson MR Site: elyssonmr.com.br Talk/Email: [email protected] Skype: elyssonmr Twitter:

    @elyssonmr LinkedIn: http://br.linkedin.com/in/elyssonmr/ Github: https://github.com/elyssonmr