Palestra realizada no dia 10/02/2011 no X Encontro do Grupo de Usuários de Python na Livraria Cultura (Recife -Pernambuco). Palestra com o título: "Conhecendo Python e por que ela importa ? "
Lecture presented at February 09th at X Meeting of Pernambuco Python User Group at Livraria Cultura (Recife - Pernambuco - Brazil) with the title: ' Meeting Python and why does it care ? "
Apresentando a Linguagem de Programação PythonPriscila Mayumi
Slides para apresentação da linguagem Python. Trabalho para a matéria "Novas Tecnologias" na Universidade Metodista de São Paulo. Lembrando que eu tive que estudar muito sobre, pois nunca tive um contato "suficiente" com Python.
Slide da palestra sobre Python.
Programando em Python, 27 de Agosto às 19h (na Fuctura)
Por Richardson Lima, administrador de redes do grupo de pesquisas avançadas em redes de computadores, realidade virtual e multimídia na Universidade Federal de Pernambuco e desenvolvedor da comunidade Debian (sobre o curso)
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
Seminário ministrado durante a aula de Paradigmas de Linguagens de Programação, com um resumo da história da linguagem Python e de seu criador Guido van Rossum.
Apresentando a Linguagem de Programação PythonPriscila Mayumi
Slides para apresentação da linguagem Python. Trabalho para a matéria "Novas Tecnologias" na Universidade Metodista de São Paulo. Lembrando que eu tive que estudar muito sobre, pois nunca tive um contato "suficiente" com Python.
Slide da palestra sobre Python.
Programando em Python, 27 de Agosto às 19h (na Fuctura)
Por Richardson Lima, administrador de redes do grupo de pesquisas avançadas em redes de computadores, realidade virtual e multimídia na Universidade Federal de Pernambuco e desenvolvedor da comunidade Debian (sobre o curso)
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
Seminário ministrado durante a aula de Paradigmas de Linguagens de Programação, com um resumo da história da linguagem Python e de seu criador Guido van Rossum.
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
Apresentação utilizada na palestra realizada no dia 08/10/2014 na faculdade Meta, contendo uma introdução sobre a linguagem de programação Python, suas aplicações, empresas que utilizam e exemplos de uso aplicado a algumas situações, mostrando o potencial desta linguagem, que vai desde o acesso a bancos de dados, geração de sites, aplicações desktop e web multiplataformas (windows, linux, freebsd, MacOS), web, mineração de dados, inteligência artificial, até o desenvolvimento de aplicações mobile (android, iOS).
Apresentação da linguagem de programação "Python" com exemplos simples da sintaxe que podem ser acompanhados por não programadores - é apresentado o desenvolvimento para uma aplicação desktop ao vivo - com o básico da linguagem e o toolkit de janelas distribuido junto com a linguagem: Tkinter. São dados os pricipais motivos para se escolher Python como primeira linguagem num curso superior de T.I. e é feita uma comparação com outras linguagens. Palestra apresentada por João Sebastião de Oliveira Bueno (JS) durante o FISL14
Apresentação de slides do minicurso de Giancarlo Lima da Silva sobre Algoritmos com a linguagem Python, ministrado durante o EPOCA' 2011, no IFRN (Campus Natal-Central)
www.grupoweblovers.org
Telas -- bastante baseadas nas do Álvaro (http://alvarojusten.blogspot.com/) -- utilizadas no minicurso de Python realizado na PythOnCampus do dia 6 de junho de 2009, na UVA de Cabo Frio.
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
Apresentação utilizada na palestra realizada no dia 08/10/2014 na faculdade Meta, contendo uma introdução sobre a linguagem de programação Python, suas aplicações, empresas que utilizam e exemplos de uso aplicado a algumas situações, mostrando o potencial desta linguagem, que vai desde o acesso a bancos de dados, geração de sites, aplicações desktop e web multiplataformas (windows, linux, freebsd, MacOS), web, mineração de dados, inteligência artificial, até o desenvolvimento de aplicações mobile (android, iOS).
Apresentação da linguagem de programação "Python" com exemplos simples da sintaxe que podem ser acompanhados por não programadores - é apresentado o desenvolvimento para uma aplicação desktop ao vivo - com o básico da linguagem e o toolkit de janelas distribuido junto com a linguagem: Tkinter. São dados os pricipais motivos para se escolher Python como primeira linguagem num curso superior de T.I. e é feita uma comparação com outras linguagens. Palestra apresentada por João Sebastião de Oliveira Bueno (JS) durante o FISL14
Apresentação de slides do minicurso de Giancarlo Lima da Silva sobre Algoritmos com a linguagem Python, ministrado durante o EPOCA' 2011, no IFRN (Campus Natal-Central)
www.grupoweblovers.org
Telas -- bastante baseadas nas do Álvaro (http://alvarojusten.blogspot.com/) -- utilizadas no minicurso de Python realizado na PythOnCampus do dia 6 de junho de 2009, na UVA de Cabo Frio.
A palestra abordará como foi criado o CartolaFC, a escolha da sua arquitetura, como foi o processo de desenvolvimento, e o dia a dia de trabalho na globo.com.
Python na Formação de Jovens.
O agente motivador, a ferramenta na resolução de novos desafios, o
livre acesso a informação e formação de novos conceitos a partir do
contato com as ferramentas livres.
A apresentação falar sobre Ajax e seus benefícios; Abordar o Google web Toolkit e aplicações desenvolvidas com gwt e com o uso massivo de ajax;Em seguida abordar o porque do surgimento do pyjamas, que no caso vem a ser a reescrita gwt em python; No final dar alguns exemplos da construção de aplicações com o uso do pyjamas.
Tanto Python como Ruby tem diversas similaridades, seja por serem criadas como projetos open source, seja pela sua sintaxe ou filosofias, porém através dessa apresentação é mostrado as diversas possibilidades que Python oferece para quem deseja conhecer um pouco mais sobre a linguagem.
Abordando áreas como computação científica, mobile, desktop, web, tipografia, e principalmente web.
Python é uma linguagem de programação de altíssimo nível.
Fácil de aprender, fácil de dar manutenção, direta e objetiva.
Escreva menos pra se fazer mais :D
Material de evangelização ;)
Isso funciona? É pythonico? Pode ser um caminho? Qual a diferença do módulo typing pra lib mypy?
Python é uma linguagem de tipagem forte e dinâmica(ou será que ainda é?), mas desde sua versão 3.5, com o módulo typing, é possível utilizar uma tipagem mais explícita sem alterar todo código. mypy é um projeto que nos possibilita também utilizar tipagem estática de maneira similar ao typing, embora o mypy seja mais antigo e também suporta Python 2 enquanto o módulo typing funciona apenas com Python 3.
Vamos discutir, ver exemplos de aplicação, mostrando tanto o uso com a biblioteca mypy quanto com o módulo nativo typing(python >= 3.5), bem como (des)vantagens e onde/quando usar, ou não, tipagem estática.
PL/Python é a implementação de Python como linguagem procedural no PostgreSQL.
Permite utilizar todas as bibliotecas de Python instaladas no sistema operacional.
PL/Python proporciona uma gama de possibilidades de recursos maior ao banco de dados graças às bibliotecas Python que permite fazer operações que transcendem os limites da base de dados.
Pode-se por exemplo com uma função PL/Python fazer raspagem de dados e jogá-los diretamente no banco (e pelo banco).
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
Benchy: Lightweight framework for Performance Benchmarks on Python Scripts.
Presented at XXVI Pernambuco Python User Group Meeting at Recife, Pernambuco, Brazil on 06.04.2013
Neste tutorial apresentei usando Python Básico conceitos de como construir um sistema de recomendação por filtragem colaborativa.
Mutirão PyCursos:
Vídeo em: https://plus.google.com/u/0/events/c3hqbk20omt3r5uoq13gpk82i9g
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Marcel Caraciolo
Apresentação realizada durante a Conferência Talk a Bit em Junho/2012 e realizada durante o PET 2012 por Marcel Caraciolo.
Universidade Federal de Pernambuco, 2012
Aula sobre construção de webcrawlers utilizando expressões regulares e Python
Instrutor: Marcel Caraciolo
Mais informações sobre o restante do curso em:
http://www.pycursos.com/regex
2. Quem é o palestrante ?
• Marcel Pinheiro Caraciolo - @marcelcaraciolo
• Atualmente: Diretor de Pesquisa e Desenvolvimento (P&D) da Orygens
• Mestrando em ciência da computação pela UFPE
• Engenheiro da Computação pela POLI/UPE. (2008)
Experiência com computação móvel e inteligente:
• Blog Mobidéia: (http://www.mobideia.com) - Mobile
• Blog A.I. in motion (http://aimotion.blogspot.com) - I.A.
• Experiência com Python há mais de 2 anos. (Contribuições em
frameworks I.A / mobile na comunidade open-source).
Membro e Moderador do Grupo de Usuários de Python de Pernambuco (PUG-PE)
X Encontro do PUG-PE
2
3. O que é python ?
‘Cobra’ em inglês ?
Sim, também!
X Encontro do PUG-PE
3
4. O que é python ?
Linguagem criada por Guido van Rossum em 1991
!
!"#$%&'$!()*"+,
Nome inspirado no seriado Monty Python
! -"+)($!()*"+.
! /0)1$2#"3&)454313'$6'7)&3"7$
348'9$:;<=>$9147$%&'$?@?AA$'$
B151C
! D'E4F404313'$3'$GH34E"
! IJG40$12#'+34813"
! I1G409'+)'$'>)'+7K5'0$
6?@?AAL$B151C
! M2'+$N"&#G'
! -13L$3'73'$<OO<$6<P$ X Encontro do PUG-PE
1+"7C
4
13. ...E já vem com acessórios
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.google.com"
request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
soup = BeautifulSoup(document)
#normaliza o documento para que o mesmo seja acessível via objetos
links = soup.findAll('a')
# retorna uma lista com todos os links do documento
for link in links:
print link['href']
X Encontro do PUG-PE
11
14. ...E já vem com acessórios
Persistência de Objetos
Banco de Dados
Geração de Pdfs
Protocolos de Rede
Criptografia
etc.
X Encontro do PUG-PE
12
15. O que é python ?
É fácil
É poderoso
X Encontro do PUG-PE
13
16. O que é python ?
É fácil
É poderoso
É divertido
X Encontro do PUG-PE
13
18. Hun, sei o que é Python!
...E agora como eu começo ?
X Encontro do PUG-PE
15
19. E como eu começo ?!
Interpretador Python disponível para diversas plataformas.
http://www.python.org/download
http://www.python.org/
X Encontro do PUG-PE
16
21. E como eu começo ?!
Diversos editores com suporte para
desenvolvimento em Python
X Encontro do PUG-PE
18
22. E como eu começo ?!
Diversos editores com suporte para
desenvolvimento em Python
X Encontro do PUG-PE
18
23. ... e por que Python ?
X Encontro do PUG-PE
19
24. ... e por que Python ?
8 motivos !
X Encontro do PUG-PE
19
25. ... e por que Python ?
1. Python é fácil e divertido
X Encontro do PUG-PE
20
26. Python é legal!
Com alguns comandos e eu posso copiar, ler e escrever
arquivos!
list_of_infiles = [‘file1.txt’, ‘file2.txt’, ‘file3.txt’]
for file in list_of_infiles:
file = open(file, ‘r’).read().replace(‘;’,’t’)
out = open(‘fileOut.txt’,‘a’).write(file)
out.close()
file.close()
X Encontro do PUG-PE
21
27. ... e por que Python ?
2. Python é poderoso
X Encontro do PUG-PE
22
28. Python é multi-paradigma
• Programação Estruturada
def partition(list, l, e, g):
if list == []:
return (l, e, g)
else:
head = list[0]
if head < e[0]:
return partition(list[1:], l + [head], e, g)
elif head > e[0]:
return partition(list[1:], l, e, g + [head])
else:
return partition(list[1:], l, e + [head], g)
X Encontro do PUG-PE
23
29. Python é multi-paradigma
• Programação orientada a objetos
class Quicksort(object):
def __init__(self,list):
self.list = list
def partition(self,list,l, e, g):
if self.list == []:
return (l, e, g)
else:
head = self.list[0]
if head < e[0]:
return partition(self.list[1:], l + [head], e, g)
elif head > e[0]:
return partition(self.list[1:], l, e, g + [head])
else:
return partition(self.list[1:], l, e + [head], g)
X Encontro do PUG-PE
24
30. Python é multi-paradigma
• Programação funcional
def qsort(L):
if len(L) <= 1: return L
return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + [ L[0] ] +
qsort( [ ge for ge in L[1:] if ge >= L[0] ] )
X Encontro do PUG-PE
25
32. Python é multi-plataforma
Linux, Unix, Windows, Mac OS...
Até aqui nada surpreendente, certo ?
X Encontro do PUG-PE
27
33. Python é multi-plataforma
• Python em dispositivos móveis
• Python for Symbian (PyS60), PySide (Maemo), ASE (Android)
X Encontro do PUG-PE
28
34. Python é multi-plataforma
• PyMT
• Python Multi Touch
• Especialmente criado para
ambientes multi-touch
http://pymt.eu/
X Encontro do PUG-PE
29
35. Python é multi-plataforma
• E até no Iphone!!
• Django portado para
Iphone
http://www.webmonkey.com/2007/08/running_django_on_the_iphone/
http://leepa.github.com/django-iphone-push/
http://code.google.com/p/django-mobileadmin/
X Encontro do PUG-PE
30
36. E tem vários acessórios!
NetworkX
http://pypi.python.org/pypi
X Encontro do PUG-PE
31
37. ... e por que Python ?
3. Python é utilizado ao redor do mundo
X Encontro do PUG-PE
32
38. Python é utilizado lá fora
II Encontro X Encontro do Pernambuco
Livre - Recife - PUG-PE
33
39. ... e aqui no Brasil também!
X Encontro do PUG-PE
34
40. Python entre as 10 + !
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
X Encontro do PUG-PE
35
41. Depoimentos sobre Python
Google:
"Python tem tido um papel importante dentro do Google desde o início, e
continua sendo à medida que nosso sistema cresce e evolui. Hoje vários
engenheiros do Google usam Python, e nós estamos procurando mais
pessoas com habilidades nesta linguagem.”
- Peter Norvig, Diretor de Qualidade de Pesquisa, Google Inc.
Industrial Light & Magic:
“Python desempenha um papel fundamental em nosso esquema de
produção. Sem ele um projeto do tamanho do filme Star Wars: Episode
II seria impossível sair do papel. Desde renderização de personagens a
processamento em lote na composição da trilha, Python integra tudo
facilmente.”
- Tommy Burnette, Diretor Técnico Senior, Industrial Light&Magic Inc.
X Encontro do PUG-PE
36
42. Depoimentos sobre Python
Mameluco - Projeto Social Cats
“Nós da Mameluco escolhemos Python desde o início do nosso primeiro projeto, o website CATS. [..]
Conseguimos instalar a plataforma de desenvolvimento, configurá-lo no IDE Eclipse e escrever um ‘Hello
World’ em questão de minutos. [...] Durante o desenvolvimento do CATS, trabalhei muito com JavaEE em
outro projeto. A dificuldade de configuração, necessidade de ler centenas de páginas e pouca expressividade
me fizeram abandonar Java como Primeira linguagem. Foi Python mesmo que encontrei a maneira mais
natural de programar servidores, clientes HTTP e serviços REST.” Flávio Juvenal - CTO - Mameluco
Orygens:
“Escolhemos Python nos nossos projetos por ser uma linguagem madura e de fácil aprendizado e com uma
comunidade ativa de usuários. Além de atender nossas necessidades, até nosso designer está aprendendo
desenvolver em Python/Django e está achando muito simples. Nós prentendemos usá-lo em vários outros
projetos da Orygens [...]. Além da simplicação do desenvolvimento web, [...] reduziu a complexidade e
tempo em um novo projeto”. Rafael Carício - CTO - http://atepassar.com
Instituto Nokia de Tecnologia:
[...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usado
na maioria dos projetos open source dos quais sou usuário. Aprender Python foi muito rápido e o código é
muito agradável de ler.[...] Recomendaria Python a qualquer um, [...] creio que só não recomendaria para
quem gosta de declarar os tipos e suas variáveis previamente.” Marcelo Lira, Desenvolvedor, INDT
X Encontro do PUG-PE
37
43. PyGame e Jogos
http://www.pygame.org/news.html
X Encontro do PUG-PE
38
54. Por lá...
http://www.python.org/community/jobs/
X Encontro do PUG-PE
49
55. Por lá...
Número de ofertas de emprego
60
49 56
45
37
30
19
15
Nov-2010
Dec-2010 0
Jan-2011
Feb-2011
http://www.python.org/community/jobs/
X Encontro do PUG-PE
50
56. Até em casa!
http://www.freelancer.com/projects/
X Encontro do PUG-PE
51
57. ... e por que Python ?
6. Conversa bem com outras linguagens
X Encontro do PUG-PE
52
58. Python e C/C++
static PyObject *my_callback = NULL;
static PyObject *
my_set_callback(PyObject *dummy, PyObject *args)
{
PyObject *result = NULL;
PyObject *temp;
if (PyArg_ParseTuple(args, "O:set_callback", &temp)) {
if (!PyCallable_Check(temp)) {
Você pode extender
}
PyErr_SetString(PyExc_TypeError, "parameter must be callable");
return NULL; Python ou usá-lo em
Py_XINCREF(temp); /* Add a reference to new callback */
Py_XDECREF(my_callback); /* Dispose of previous callback */
my_callback = temp; /* Remember new callback */
códigos C/C++
/* Boilerplate to return "None" */
Py_INCREF(Py_None);
result = Py_None;
}
return result;
}
http://docs.python.org/extending/extending.html
X Encontro do PUG-PE
53
59. Python e Java
import javax.swing as sshwing
firstNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)
scndNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)
sum = int(firstNum) + int(scndNum)
sshwing.JOptionPane.showMessageDialog(None, “The sum of your integers is %d “ % sum)
http://www.jython.org/
X Encontro do PUG-PE
54
60. Python e .Net
import sys
sys.path.append(r’C:Python25Lib’)
import clr
clr.AddReference(“System.Windows.Forms”)
from System.Windows.Forms import Application,Form
class Hello World(Form):
def __init__(self):
self.Text = ʻHello Worldʼ
self.Name = ʻHello Worldʼ
form = HelloWorld(Form)
Application.Run(Form
http://ironpython.net/
X Encontro do PUG-PE
55
61. Python e muito mais!
PyMat - Matlab
http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html http://rpy.sourceforge.net/
http://code.google.com/p/pyswip/
http://appscript.sourceforge.net/
X Encontro do PUG-PE
56
62. Interpretada, e o desempenho?
“Não fique apenas com o conhecimento que você tem do código.”
Módulos para Python escritos em C. (Extensões): Ex: PyRex
PyPy: Implementação da linguagem Python em Python (Otimizando a linguagem).
http://pypy.org
Psyco: Compilador para Python que gera código nativo da máquina (2x - 100x)
http://psyco.sourceforge.net/
200
150
100 Lines of code
Time per iteration (ms)
50
0
Sun JDK 1.6.0 C++ 4.13 Python + Psyco Python 2.5.1
http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/
X Encontro do PUG-PE
57
63. ... e por que Python ?
7. Uma boa linguagem para quem está começando!
X Encontro do PUG-PE
58
64. Aprendar programar com Python
http://ark4n.wordpress.com/python/ http://www.aprendendodjango.com/
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm
X Encontro do PUG-PE
59
65. Aprendar programar com Python
Universidade Federal Rural de Pernambuco já adota Python
Bacharelado em Sistemas de Informação
Licenciatura em Física
Licenciatura em Computação
[...] O curso BSI-UFRPE tem como Python a LP oficial do curso! Todas as disciplinas que envolvem programação
[...], usam Python! Recentemente tenho experimentado usar algo que é fantástico em Python para ensinar a
programar: Python é híbrida. [...] O resultado desta experiência está sendo organizado em um texto [...], e
pretendo transformá-lo até o fim do ano em um livro, cujo título provisório é ‘Python como Primeira LP: Uma
abordagem Imperativa, Funcional e Orientada a Objetos”. Prof. PHD Wilson Rosa - Pesquisador UFRPE
X Encontro do PUG-PE
60
66. ... e por que Python ?
8. Uma comunidade forte com que você pode contar!
X Encontro do PUG-PE
61
67. 24 hrs ao seu dispor!
http://br.groups.yahoo.com/group/python-brasil/
X Encontro do PUG-PE
62
68. PUG - PE
Grupo de usuários de Python de
Pernambuco
http://groups.google.com/group/pug-pe?hl=pt-BR
X Encontro do PUG-PE
63
69. Razão bônus!
9. Permite expor suas idéias de forma rápida!
X Encontro do PUG-PE
64
74. TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife
http://twitter.com/transitoRE
Apenas 65 linhas de código!
X Encontro do PUG-PE
65
79. Referências
http://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9)
http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentation
http://www.python.org/
http://www.pythonbrasil.org.br/
http://ark4n.wordpress.com/python/
E-mails, Listas, Fóruns, conversas no Google Talk, etc.
X Encontro do PUG-PE
67
80. Chegamos ao fim !!
Hora da random.choice([pergunta, dúvida, discussão]) !!
X Encontro do PUG-PE
68
81. Conhecendo Python e
Por que ele importa?
Marcel Pinheiro Caraciolo
email: caraciol@gmail.com
twitter: marcelcaraciolo
X Encontro do PUG-PE
69