SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
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?
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

Mais procurados

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
Grupython Ufla
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
Robson Ferreira
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
Fabio Spanhol
 

Mais procurados (20)

Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python
PythonPython
Python
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
Usando o winplot
Usando o winplotUsando o winplot
Usando o winplot
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 

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

Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008
Marco Mendes
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
Felipe Volpone
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 

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

Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Aula 3
Aula 3Aula 3
Aula 3
 
Porque Python?
Porque Python?Porque Python?
Porque Python?
 
Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009
 
Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Python-Fenalivre-Imed
Python-Fenalivre-ImedPython-Fenalivre-Imed
Python-Fenalivre-Imed
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Comandos em python
Comandos em pythonComandos em python
Comandos em python
 
Libertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livresLibertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livres
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 

Mais de Álvaro Justen

Mais de Álvaro Justen (20)

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

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