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

Introdução ao Python com Dados Abertos

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Élysson MR Élysson MR
September 25, 2015

Introdução ao Python com Dados Abertos

Introdução a linguagem python utilizando dados abertos.

Avatar for Élysson MR

É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