Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Python 3
http://bit.ly/IxkwD4
Marcel Caraciolo
@marcelcaraciolo
Desenvolvedor, Cientista, Instrutor, co- fundador do PyCursos,
contribui com projetos open-source na área de ML,
trabalha com Python há 6 anos, interessado em mobile,
educação, machine learning and dadoooossss!
Recife, Brazil - http://aimotion.blogspot.com
Quem é Marcel ?
Este sou eu!
Tutorial para
iniciantes!
Material adaptado dos Slides do Professor
Fernando Masanori!
!
www.slideshare.net/fmasanori/hackeando-o-
facebook-e-o-twitter-com-python-3-
campus-party-2013
Agenda
Intro ao Python 3
Brincando com Facebook
Brincando com Reddit & MongoDB
Brincando com Foursquare
Brincando com Open Data & Twitter
Material para Casa
Conhecendo a audiência
Professores
Estudantes
Profissionais de TI
Sabem programar
Sabem programar em Python
Primeiro prêmio
We love Python!
•
Permite focar no problema, sem perder tempo na sintaxe
•
Interativa
•
Alta produtividade
•
Baterias inclusas
•
Comunidade livre, forte, diversificada, alegre e acolhedora
•
Orientada a objetos, funcional, estruturada
•
Uso geral vs nichos
•
Simples de iniciar, sem esgotar
We Love Python
http://www.python.org/psf/diversity/
We Love Python
Você sabia que o “Pi” do nome se origina de Python?
Quem usa ?
Python: quem usa
Popularidade
Popularidade Github e
StackOverflow
Popularidade
JobTrends Indeed.com
Popularidade
Linguagem do ano TIOBE em
2007 e 2010
Linguagem Favorita do
Popularidade
Linguagem do ano TIOBE em
2007 e 2010
O
O que falam de
que falam dePython
Python ?
“Python é uma das cinco mais importantes linguagens que todo programador
deve conhecer” Bjarne Stroustrup, criador de C++
Simples de
Linguagem Aprender
poderosa, mas
simples de aprender
C 2 anos
Java 6 meses
Python 1 mes
Poder de Expressividade
Expressive Power
• Conta no Facebook
• Internet
• Python 3
• IDLE ou semelhante
• Vamos fazer um aquecimento
• Tutorial completo da linguagem
em Python for Zombies (YouTube)
Aquecimento: Install Python 3
• Windows
– download
– executar > next > next...
• Linux
– sudo apt-get install idle-python3.3
• Mac OS X
– sudo port install python32
Aquecimento: Using Python 3
• Windows
– Iniciar > Programas > Python3.3 >
IDLE (Python GUI)
• Linux (terminal)
– idle-python3.3 &
• Mac OS X (terminal)
– IDLE3.3 &
Aquecimento: hello world
• 2**100000
• dir(“abacate”)
• help(“abacate”.upper)
• “abacate”.upper()
• a = “abacate”
• b = 42
• a, b = b, a
• print (a, b)
Aquecimento: modo interativo
• import random
• random.randint(1, 100)
• random.randint(1, 100)
• random.choice(42, 13, 24, 7, 3, 10)
• print (chr(33000))
• import this
• import antigravity
No Python os espaços iniciais são importantes
Aquecimento: errando
String diferente de inteiro
Aquecimento: edition mode
Sempre use a extensão “.py” para não perder as cores do seu programa
Aquecimento: jogo simples
https://gist.github.com/marcelcaraciolo/7715647
https://gist.github.com/fmasanori/6029123
https://gist.github.com/marcelcaraciolo/7715664
Códigos equivalentes: for durante o dia vira while à noite
for == while enrustido
Códigos equivalentes
for == while enrustido
Códigos equivalentes
Aquecimento: criptografia
http://www.gutenberg.org/cache/epub/11/pg11.txt
https://gist.github.com/4673017
https://gist.github.com/marcelcaraciolo/7715709
JSON Killer!
JSON killer module
Java Script Object Notation
JavaScript Object Notation
• http://json.org/
• Independente de linguagem
• Pares nome/valor
• Lista ordenada
• Muito adotado atualmente
• Alternativa para o XML
– XML mais verbosa
– XML menor legibilidade
Chuck
Chuck Norris Nerdy
Norris Nerdy Jokes
Jokes
https://gist.github.com/marcelcaraciolo/7715734
https://gist.github.com/4745061
Hackers não são “do mal”?
Facebook Hacking
https://gist.github.com/marcelcaraciolo/7715741
https://gist.github.com/marcelcaraciolo/7715760
Graph API
• https://developers.facebook.com/do
cs/reference/api/examples/
• Objetos JSON
• Links autenticados
• Obs.: access_token expira
• Autenticar novamente neste caso
Anote o formato!
https://developers.facebook.com/docs/reference/api/
examples/
Copie o access token!
https://developers.facebook.com/tools/explorer
Copie o access token!
https://developers.facebook.com/tools/explorer
Facebook Friends
https://gist.github.com/marcelcaraciolo/7715831
https://gist.github.com/4674792
Facebook Friends Photos
https://gist.github.com/4684752
https://gist.github.com/marcelcaraciolo/7715862
Android
Wallpaper
Android
Wallpaper
https://gist.github.com/marcelcaraciolo/7715921
Maria Luiza: Como se o evento não já estivesse bom, o CITi ainda melhora !!!!!
#talkabit #Euvou!
!
Victor Maristane: Garoto Propaganda do Talk a Bit no NE10, hehehe!
!
(A propósito, não deixem de se inscrever no Talk a Bit++: http://citi.org.br/talkabit :), essa edição vai
conseguir ser absurdamente melhor :DD)!
!
Jader Anderson: Boa filosofia para um encontro: Lean, Code e Play.!
!
http://citi.org.br/talkabit/!
!
Maria Luiza: Eu não sei se te contei MAS, o Talk a Bit custa apenas R$ 16,00 e já é dia 30/11. Vai ficar de
fora é ??!
Se inscreve logo:!
http://citi.org.br/talkabit/
(by 10gen)
https://gist.github.com/marcelcaraciolo/7716004
https://gist.github.com/4691077
Question: cx_freeze “zlib not avaiable” error when using multiple threads
#comments: 3
http://www.reddit.com/r/Python/comments/1ro891/question_cx_freeze_zlib_not_avaiable_error_when/
!
Python Selenium - Open new tab / focus tab / close tab
#comments: 9
http://www.reddit.com/r/Python/comments/1rmg4n/python_selenium_open_new_tab_focus_tab_close_tab/
!
Python 3 gets some credit for how it chose to handle Unicode compared to other languages
#comments: 24
http://mortoray.com/2013/11/27/the-string-type-is-broken/
!
I am having too much trouble installing pygame.
#comments: 1
http://www.reddit.com/r/Python/comments/1rnxnq/i_am_having_too_much_trouble_installing_pygame/
!
Not exclusively Python, but a nice tool to generate regex code in multiple languages.
#comments: 13
http://txt2re.com/
!
Setting up a (web) development environment
#comments: 11
http://www.reddit.com/r/Python/comments/1rnfle/setting_up_a_web_development_environment/
!
Building a Flask Blog: Part2
#comments: 2
http://pypix.com/python/building-flask-blog-part2/
MongoDB == BSON
MongoDB == JSON
Flexible Schema
Banco Relacional
Relational DB
Reddit MongoDB Client
https://gist.github.com/marcelcaraciolo/7716030
Reddit MongoDB Client
Foursquare & TagCloud
Foursquare & TagCloud's
Checklist
1. Instalar pygame
2. Instalar simplejson
3. Instalar pytagcloud
https://developer.foursquare.com/docs/
https://developer.foursquare.com/docs/venues/search
https://developer.foursquare.com/docs/venues/tips
https://gist.github.com/marcelcaraciolo/7717945
Delta Expresso
Twitter & OpenData
Twitter & OpenData
Checklist
1. tweepy
Acesso Twitter Autenticado
Acesso Twitter Autenticado
https://dev.twitter.com/
Obtendo Chave e Senha de Acesso
Acesso Twitter Autenticado
Acesso Twitter Autenticado
Acesso Twitter
Enviando Autenticado
mensagens
Enviando mensagens!
Lendo API do Transito Recife
Lendo API do Transito Recife
http://www.recife.pe.gov.br/transito/recuperarPontos.aspx
https://gist.github.com/marcelcaraciolo/7717717
Lendo API do Transito Recife
Material para Casa
http://www.novatec.com.br/livros/python-cookbook/
Material
Material para Casa
para aprofundamento
Web Scraping
http://pyvideo.org/video/609/web-scraping-
reliably-and-efficiently-pull-data
Material para Casa
Python para Zumbis (gratuito)
http://pycursos.com/python-para-zumbis
Hackeando a Web com
Python 3
Marcel Caraciolo
@marcelcaraciolo
Desenvolvedor, Cientista, Instrutor, co- fundador do PyCursos,
contribui com projetos open-source na área de ML,
trabalha com Python há 6 anos, interessado em mobile,
educação, machine learning and dadoooossss!
Recife, Brazil - http://aimotion.blogspot.com