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

Introdução a programação com Python (para jornalistas)

Introdução a programação com Python (para jornalistas)

Slides do mini-curso de introdução a programação utilizando a linguagem Python, focado em jornalistas.
Esse mini-curso foi ministrado durante o 12o Congresso da ABRAJI (1 de julho de 2017).

Álvaro Justen

July 01, 2017
Tweet

More Decks by Álvaro Justen

Other Decks in Programming

Transcript

  1. Lógica de Programação em Python Turicas aka Álvaro Justen Natália

    Mazotte 12ª Conferência da ABRAJI 01 de julho de 2017 - São Paulo/SP
  2. Turicas, prazer! =) Sigam-me os bons: { , , ,

    , } /turicas twitter github youtube slideshare instagram [email protected] Blog: turicas.info +55 41 999 311 221 (Signal, Telegram, WhatsApp)
  3. E vocês? Qual seu nome? Já tem algum conhecimento de

    programação? E Python? Quais são seus objetivos? Cadastre em: bit.ly/python-abraji12
  4. Objetivos Programação: para que serve? Quebrar o gelo: não é

    complicado, é complexo Até onde dá pra ir?
  5. Quando usar Python? Quando o Excel/Spreadsheet/etc. não dá conta Muitos

    dados Filtros muito complexos Quando tem muita repetição de tarefas chatas
  6. Python Linguagem de programação Criada por Guido Van Rossum no

    m da década de 80 GNU/Linux e Mac OS X: já vem instalado Instalar python.org
  7. Python - Características Software livre Fácil de aprender Propósito geral

    Largamente utilizada (mercado em alta) Comunidade incrível (pessoas) Baterias incluídas
  8. Python - Quem usa? Google NASA Mozilla Foundation Globo.com Dropbox

    ... (dá pra car até amanhã falando) ...
  9. Python - Comunidade Grupos no Telegram: Diversos grupos locais No

    Facebook: (o cial da APyB) Associação Python Brasil (APyB) python-brasil no Google Groups pybr - roda de conversa PyCoding pt_BR Data science e Python Página PythonBrasil Grupo Python Brasil - Programadores
  10. Python - Eventos Nível regional: (Ribeirão Preto/SP - já foi)

    (2017: São Luís/MA - já foi) (2017: Rio de Janeiro/RJ - já foi) (2017: Manaus) (2017: Caxias do Sul/RS) Nível nacional: (2017: Belo Horizonte/MG) ... Caipyra Python Nordeste Python Sudeste PyCon Amazônia Python Sul Python Brasil PyConUS PyConAr
  11. Lógica de programação Programas são conjuntos de algoritmos Algoritmos são

    receitas de bolo Compostos por instruções "Modo de preparo" da receita
  12. Instruções Começam com verbo Simples, passo-a-passo (imagine ensinar a uma

    criança) Não ambíguas Exemplos: Inspirar por 5 segundos Fechar os olhos Expirar lentamente
  13. Exercício Criar um algoritmo para escovar os dentes Um verbo

    por frase/instrução Instruções simples
  14. Resolução Se o tubo de pasta de dentes estiver vazio:

    Pegar um tubo novo na dispensa Senão: Pegar o tubo de pasta de dentes no armário Abrir o tubo Pegar a escova de dentes Colocar pasta na escova Fechar o tubo Abrir a torneira Molhar a escova por 2 segundos Fechar a torneira Levar a escova à boca Repetir para cada dente: Movimentar a escova de maneira circular Ir para o próximo dente Escovar a língua Abrir a torneira
  15. Saudando pelo nome Arquivo: hello2.py nome = input("Qual seu nome?")

    print("Olá, " + nome) # o "+" junta duas strings # isso é um comentário e o Python vai ignorá-lo
  16. Computando (2) Arquivo: soma.py valor1 = input("Digite um número:") valor2

    = input("Digite outro número:") print(valor1 + valor2)
  17. Tipos de Dados Strings (str) Exemplo: "Álvaro" Números inteiros (int)

    Exemplo: 42 Números racionais (float) Exemplo: 3.14 Números complexos (complex) Exemplo: 1 + 2j Listas (list) Exemplo: [1, 2, 3] Dicionários (dict) Exemplo: {"linguagem": "python", "resposta": 42} ...
  18. Computando (2) - Corrigido Arquivo: soma.py # lembra de f(g(x))?

    valor1 = int(input("Digite um número:")) valor2 = int(input("Digite outro número:")) print(valor1 + valor2)
  19. Operadores Matemáticos Válidos para tipos de dados numéricos +: soma

    -: subtração *: multiplicação /: divisão **: exponenciação %: resto da divisão //: divisão inteira ( e ): mudam precedência (2 + 5) * 6
  20. E se... ? Arquivo: soma2.py valor1 = int(input("Digite um número:"))

    valor2 = int(input("Digite outro número:")) if valor1 < 0 or valor2 < 0: print("Um dos valores é negativo!") else: print("Todos valores são positivos!") print("Soma: " + str(valor1 + valor2))
  21. Operadores Lógicos Resultam em verdadeiro/falso <: menor que >: maior

    que <=: menor ou igual que >=: maior ou igual que ==: igual !=: diferente or and not
  22. Computando (3) Arquivo: media3.py valor1 = float(input("Digite um número:")) valor2

    = float(input("Digite outro número:")) valor3 = float(input("Digite outro número:")) valores = [valor1, valor2, valor3] # uma lista! print(sum(valores) / len(valores)) # sum: soma todos os elementos da lista # len: tamanho da lista (número de elementos)
  23. Repetindo comandos Arquivo: media4.py valor1 = float(input("Digite um número:")) valor2

    = float(input("Digite outro número:")) valor3 = float(input("Digite outro número:")) valores = [valor1, valor2, valor3] print("Valores digitados:") for valor in valores: print(valor) media = sum(valores) / len(valores) print("Média: " + str(media))
  24. Repetindo comandos (2) Arquivo: media5.py quantidade = int(input("Quantos valores?")) valores

    = [] for n in range(quantidade): valor = float(input("Digite o valor " + str(n) + ": ")) valores.append(valor) print("Valores digitados:") for numero in valores: print(numero) print("Total de valores: " + str(len(valores))) media = sum(valores) / len(valores) print("Média: " + str(media))
  25. Mudando a Entrada de Dados Arquivo: ler_csv.py Baixar CSV em:

    bit.ly/ex-py-abraji import csv municipios = csv.DictReader(open("municipios-brasil.csv")) for municipio in municipios: print(municipio["nome"] + "/" + municipio["estado"])
  26. Exercício Qual a densidade demográ ca dos municípios do RJ?

    densidade = habitantes / area Entrada: municipios-brasil.csv
  27. Algoritmo Abrir arquivo CSV com municípios Para cada registro (município):

    Se o estado for RJ: Calcula densidade Mostra densidade
  28. Código import csv municipios = csv.DictReader(open('municipios-brasil.csv')) for municipio in municipios:

    if municipio['estado'] == 'RJ': densidade = int(municipio['habitantes']) / float(municipio[ print(municipio['nome'] + '/RJ' + ': ' + str(densidade) + ' hab/k
  29. Código (2) Usando outra biblioteca import rows municipios = rows.import_from_csv('municipios-brasil.csv')

    for municipio in municipios: if municipio.estado == 'RJ': densidade = municipio.habitantes / municipio.area print(municipio.nome + '/RJ' + ': ' + str(densidade) +
  30. Exemplo: Criando CSV import csv brasil = csv.DictReader(open('municipios-brasil.csv', encoding= total

    = {} for municipio in brasil: estado = municipio['estado'] habitantes = int(municipio['habitantes']) if estado not in total: total[estado] = 0 total[estado] = total[estado] + habitantes arquivo = open('habitantes.csv', mode='w', encoding='utf-8') resultado = csv.DictWriter(arquivo, fieldnames=['estado', 'habitantes' resultado.writeheader() for sigla_estado, habitantes_estado in total.items(): resultado.writerow({'estado': sigla_estado, 'habitantes': habitantes_estado})
  31. ? { , , , , }/turicas twitter github youtube

    slideshare instagram [email protected] Blog: turicas.info +55 41 999 311 221 twitter.com/NataliaMazotte github.com/ncortezrj [email protected]