SlideShare uma empresa Scribd logo
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
Turicas, prazer! =)
Sigam-me os bons:
{ ,
,
,
,
}
/turicas
twitter
github
youtube
slideshare
instagram
turicas@pythonic.cafe
Blog: turicas.info
+55 41 999 311 221
(Signal, Telegram, WhatsApp)
Natália Mazotte
twitter.com/NataliaMazotte
github.com/ncortezrj
ncortezrj@gmail.com
escoladedados.org
generonumero.media
pythonic.cafe
youtube.com/c/PythonicCafe
Python
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
ObjetivosProgramação: para que serve?
Quebrar o gelo: não é complicado, é complexo
Até onde dá pra ir?
Parte 1:
Contextualização
Duas histórias...
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
Como Python Pode Ajudar Na
Jornada?
Introdução a programação com Python (para jornalistas)
PythonLinguagem 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
Entrevistei Guido van Rossum!
Em breve em youtube.com/c/PythonicCafe
Fonte:
Programming Language?
github.com/stereobooster/programming-languages-
genealogical-tree
Python - Características
Software livre
Fácil de aprender
Propósito geral
Largamente utilizada (mercado em alta)
Comunidade incrível (pessoas)
Baterias incluídas
Python - Quem usa?
Google
NASA
Mozilla Foundation
Globo.com
Dropbox
... (dá pra car até amanhã falando) ...
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
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
Parte 2:
Lógica de Programação
Lógica de
programaçãoProgramas são conjuntos de algoritmos
Algoritmos são receitas de bolo
Compostos por instruções
"Modo de preparo" da receita
InstruçõesComeç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
Editor de textoOnde programadores escrevem os programas
Instrução: Baixar Notepad++
ExercícioCriar um algoritmo para escovar os dentes
Um verbo por frase/instrução
Instruções simples
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
ObservaçõesLinguagem não formal
Variáveis (nomes)
Boas práticas
Granularidade ("nível")
Estruturas de
controle de uxoEnquanto ...
E se ...
Nem só de
instruções vive o
computadorProcessador
Memória RAM
HD/SSD
Entrada/saída (rede etc.)
Parte 3:
Introdução a Python!
Primeiro Verbo em Python
print
Arquivo: hello.py
print("Olá, ABRAJI!")
cygwin64 Terminal
print?
Estrutura dos
ProgramasEntrada
MÁGICA
Saída
Código + dados
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
Computando (2)
Arquivo: soma.py
valor1 = input("Digite um número:")
valor2 = input("Digite outro número:")
print(valor1 + valor2)
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}
...
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)
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
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))
Operadores Lógicos
Resultam em verdadeiro/falso
<: menor que
>: maior que
<=: menor ou igual que
>=: maior ou igual que
==: igual
!=: diferente
or
and
not
Exercício
Arquivo: media.py
Ler 2 números inteiros
Mostrar a média
Exercício
Arquivo: media2.py
Ler 3 números racionais
Trocar int por float
Mostrar a média
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)
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))
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))
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"])
Parte 4:
Analisando Dados com Python
Exercício
Qual a densidade demográ ca dos municípios do RJ?
densidade = habitantes / area
Entrada: municipios-brasil.csv
Algoritmo
Abrir arquivo CSV com municípios
Para cada registro (município):
Se o estado for RJ:
Calcula densidade
Mostra densidade
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
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) +
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})
Exemplo
Quais notícias possuem o termo "bala perdida"?
Entrada: notificacoes.csv
Ver código
Parte 5:
Aprendendo mais
Exponha-se
Cursos online
Grupos
Eventos
Praticando
Praticando
Praticando
Praticando
Praticando
Só Python?
Bibliotecas e mais bibliotecas
SQL
... ?
Python Package Index (aka PyPI)
Feedback
O que foi legal?
O que pode melhorar?
bit.ly/avalia-abraji17
?
{ , , ,
, }/turicas
twitter github youtube
slideshare instagram
turicas@pythonic.cafe
Blog: turicas.info
+55 41 999 311 221
twitter.com/NataliaMazotte
github.com/ncortezrj
ncortezrj@gmail.com

Mais conteúdo relacionado

PDF
Introdução a Linguagem de Programação Python
ODP
Python: programação divertida novamente
PDF
Trabalho sobre a linguagem Python
PPTX
Trabalho de Paradigmas Da Linguagem De Programação - Python
PDF
Introdução a estruturas de dados em python
PDF
Python - Introdução
PDF
Introdução à Programação em Python
PDF
Programando com Python
Introdução a Linguagem de Programação Python
Python: programação divertida novamente
Trabalho sobre a linguagem Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
Introdução a estruturas de dados em python
Python - Introdução
Introdução à Programação em Python
Programando com Python

Mais procurados (20)

PPT
Apresentando a Linguagem de Programação Python
PDF
Programando para web com python - Introdução a Python
PDF
Python - Guia de bolso
PDF
Curso básico de Algoritmos com Python
PDF
Curso de Python e Django
PDF
Introdução à linguagem Python
PDF
Python for zombies (very basic level)
PDF
Python - Programação funcional
PDF
Python - Introdução Básica
PPTX
2016/01/27 - Aprendendo a programar com Python
PDF
Apresentação python fábio jr alves
PDF
Conceitos e técnicas de programação introdução
DOCX
Usando o winplot
PDF
Python e django na prática
PDF
Computação Científica com SciPy - Brevíssimo Tutorial
PDF
Python tutorial-ed3
PDF
Python Training #1 - ed5
PDF
Python Training #1 - ed4
PDF
Python Training #1, ed. 6
Apresentando a Linguagem de Programação Python
Programando para web com python - Introdução a Python
Python - Guia de bolso
Curso básico de Algoritmos com Python
Curso de Python e Django
Introdução à linguagem Python
Python for zombies (very basic level)
Python - Programação funcional
Python - Introdução Básica
2016/01/27 - Aprendendo a programar com Python
Apresentação python fábio jr alves
Conceitos e técnicas de programação introdução
Usando o winplot
Python e django na prática
Computação Científica com SciPy - Brevíssimo Tutorial
Python tutorial-ed3
Python Training #1 - ed5
Python Training #1 - ed4
Python Training #1, ed. 6
Anúncio

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

PDF
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
KEY
Python 02
PDF
Oficina de Python para iniciantes
PDF
Iniciando em Python
PDF
Curso de Python (Básico) - Português
PDF
Linguagem de Programação Python
PPTX
Minicurso-Python-01.pptx
PDF
Python e seus desafios
PDF
PPTX
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
PDF
Por que Python? Vamos Conhecer? Vamos Aprender?
PPTX
apresentacao_detalhada_introducao_python_analise_dados.pptx
PPT
Python Introdução
PPTX
Palestra Apresentando Python e Suas Aplicações
ODP
Python para desenvolvedores - material apoio (parte I)
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
PDF
Introdução a linguagem Python 2.7
PPTX
Introdução a python
PPTX
Python: Funcionalidades Básicas
Oficina: Introdução à programação com Python e seus recursos: algoritmos e ló...
Python 02
Oficina de Python para iniciantes
Iniciando em Python
Curso de Python (Básico) - Português
Linguagem de Programação Python
Minicurso-Python-01.pptx
Python e seus desafios
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
Por que Python? Vamos Conhecer? Vamos Aprender?
apresentacao_detalhada_introducao_python_analise_dados.pptx
Python Introdução
Palestra Apresentando Python e Suas Aplicações
Python para desenvolvedores - material apoio (parte I)
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Introdução a linguagem Python 2.7
Introdução a python
Python: Funcionalidades Básicas
Anúncio

Mais de Álvaro Justen (20)

PDF
Sobre os ombos de gigantes
PDF
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
PDF
Dados abertos, Python e PostgreSQL: a combinação perfeita
PDF
A era da pós-verdade - minhas reflexões e crenças
PDF
Realmente precisamos de big data?
PDF
Ciência de Dados na Linha de Comando
PDF
Brasil.IO: Libertação de Dados Públicos, com Python
PDF
#opendata #fail: Causos da Transparência Brasileira
PDF
Brasil.IO: Dados Abertos para Mais Democracia
PDF
Dados abertos, direito autoral e democracia
PDF
Jornalismo de Dados: Programando a Democracia no Brasil
PDF
Python no Jornalismo
PDF
Libertando dados públicos com ferramentas livres
PDF
Introdução a Programação com Python
PDF
Software Livre versus Open Source
PDF
Datos Tabulares: La Manera Pythónica
PDF
[FISL17] Liberando dados com um comando, por Álvaro Justen
PDF
Arduino (para fazedores)
PDF
Dados tabulares: A Maneira Pythônica
PDF
[PyBr11] Lendo dados tabulares: versão pythônica
Sobre os ombos de gigantes
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Dados abertos, Python e PostgreSQL: a combinação perfeita
A era da pós-verdade - minhas reflexões e crenças
Realmente precisamos de big data?
Ciência de Dados na Linha de Comando
Brasil.IO: Libertação de Dados Públicos, com Python
#opendata #fail: Causos da Transparência Brasileira
Brasil.IO: Dados Abertos para Mais Democracia
Dados abertos, direito autoral e democracia
Jornalismo de Dados: Programando a Democracia no Brasil
Python no Jornalismo
Libertando dados públicos com ferramentas livres
Introdução a Programação com Python
Software Livre versus Open Source
Datos Tabulares: La Manera Pythónica
[FISL17] Liberando dados com um comando, por Álvaro Justen
Arduino (para fazedores)
Dados tabulares: A Maneira Pythônica
[PyBr11] Lendo dados tabulares: versão pythônica

Último (9)

PDF
Medidor de PH de bancada PH140 para uso em laboratório
DOC
COMO CRIAR DASHBOARD ATRAVES DE CODIFICAÇÃO PYTHON
PPTX
Perguntas e respostas.pptx Informática aplicada
PPTX
Sermao a mensagem da Cruz.pptx gdfvdcdfdfdsfcdsfxdfdfdfvdgf
PDF
Bases de dados - basicos dos basicos. como identificar chaves
PDF
48585b89-ee4d-4f8d-b2c0-7db19cc44e44.pdf
PPTX
Apresentação Lagoa Mandaú Lagoa Mandaú Lagoa Mandaú
PDF
Plano de gestão - template.pptx.pdf.pdf
PPT
AULA COACHING INICIAL *******************
Medidor de PH de bancada PH140 para uso em laboratório
COMO CRIAR DASHBOARD ATRAVES DE CODIFICAÇÃO PYTHON
Perguntas e respostas.pptx Informática aplicada
Sermao a mensagem da Cruz.pptx gdfvdcdfdfdsfcdsfxdfdfdfvdgf
Bases de dados - basicos dos basicos. como identificar chaves
48585b89-ee4d-4f8d-b2c0-7db19cc44e44.pdf
Apresentação Lagoa Mandaú Lagoa Mandaú Lagoa Mandaú
Plano de gestão - template.pptx.pdf.pdf
AULA COACHING INICIAL *******************

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