Programação em Python possui diversas vantagens como sintaxe clara, suporte a bibliotecas, tipagem forte e dinâmica. Pode ser usado em vários domínios como web, desktop, ciência e banco de dados. Oferece recursos como orientação a objetos, listas, geradores, lambda functions e desenvolvimento para Linux, Windows e Mac.
2. Por que usamos python...
Conceitos fundamentais são fáceis de aprender;
O mesmo código roda em plataformas Linux, Windows e
MAC sem alterações;
Possui uma sintaxe clara e de fácil aprendizado;
Suporte a uma diversidade muito grande de bibliotecas;
Tipagem forte e dinâmica;
Tipos pré definidos são poderosos;
É livre!
E por aí vai...
3. Aonde a cobra anda?
● Governo Brasileiro (Website)
● CIA (Website)
OLPC – One Laptop per Child
Quer mais? http://pythonology.org/success
7. Aspectos Iniciais...
Uso do interpretador interativo
for numero in range (5):
print numero
0
1
2
3 Ajuda! dos métodos primitivos:
4 ● dir(), help(), type()
Projetos Interessantes:
● Ipython
● Reinteract
8. Aspectos Iniciais...
Exemplo “iniciante”:
01 # * coding: utf8 *
02 Código que simula um diálogo entre duas
03 import threading pessoas usando “thread”
04 import time
05
06 def conversa(*args):
07 for frase in args:
08 print frase
09 time.sleep(2)
10
11 pessoa1 = ("Fulano: E aí Ciclano", "Fulano: programo em Python!")
12 pessoa2 = ("Ciclano: E aí Fulano, programa e que?", "Ciclano: Bom garoto!!! :)")
13
14 threading.Thread (target=conversa, args=pessoa1).start()
15 time.sleep(1)
16 threading.Thread (target=conversa, args=pessoa2).start()
9. Aspectos mais interessantes!
Um laço for simplesmente...
dados = ['Flisol', 'Rodrigo', 'Maringa'] for item in range(5):
for itens in dados: print item**2,
print itens
0 1 4 9 16
Flisol
Maringa
Rodrigo
+
Um pouco de conceitos matemáticos...
A = {x² : x Є {0 ... 9}}
B = (1, 2, 4, 8, ... 2¹²)
= List Comprehensions!
C = {x | x Є A e x é par}
10. Aspectos mais interessantes!
List Comprehensions
● A = {x² : x Є {0 ... 9}}
a = [x**2 for x in range(10)]
a
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
● B = (1, 2, 4, 8, ... 2¹²)
[2**i for i in range(13)]
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096]
● C = {x | x Є A e x é par}
[x for x in a if x % 2 == 0]
[0, 4, 16, 36, 64]
11. Aspectos mais interessantes!
Função de uma linha: lambda() + Listas (ou List Comprehensions) = Map
frase = 'O rato roeu a roupa do rei de roma'
palavras = frase.split()
palavras
jaspion = map(lambda w: [w.upper(), w.lower(), len(w)], palavras)
for i in jaspion:
print i
12. Aspectos mais interessantes!
Iteradores e Geradores
def sequencia(numero):
i = numero
while True:
i += 1
yield i
valores = sequencia(10)
valores.next()
11
valores.next()
12
...
13. Orientação a Objetos
Exemplo simples:
Uso:
class Pessoa(object):
pessoa = Pessoa(“Fulano”, “2222 – 8754”)
def __init__ (self, nome, telefone): pessoa.escreve()
self.nome = nome Fulano
self.telefone = telefone 2222 – 8754
def escreve(self):
print “Nome: ”+self.nome
print “Telefone: ”+self.telefone
Em python e possível implementa herança multipla!
14. Desenvolvimento para todos os gostos!!!
WEB Desktop Processamento
Django; Tkinter; Imagens / scripts
Zope / Plone; PyGTK; PIL;
Pylons; PyQT; PythonMagick;
Turbo Gears; wxPython; GIMPPython;
mod_python; ... ...
...
Ciência BD Diversão
Scipy; ZOBD; PyGame
BioPython; gadfly; Blender
AstroPy; Postgres; ...
NumPy; MySQL;
... ...
15. Uso de banco de dados: PostgreSQL
# Importa o módulo do PostegreSQL
import PgSQL
# Faz conexão com o banco de dados
db = PgSQL.connect(host='host', database='bd',
user='usuario',password='senha')
# Cria um cursor
cursor = db.cursor()
# Executa o SQL
cursor.execute("SELECT * FROM tabela")
# Recebe um conjunto de resultado em forma de “tupla”
result = cursor.fetchall()
# Navega pelos resultados armazenados na tupla
for record in result:
print record[0] , ">", record[1]
17. Referencias Bibliográficas
http://pythonbrasil.com.br
http://www.reinteract.org
http://ipython.scipy.org
http://djangoproject.org
Livros:
Learning to Python
Beginning Game Development with Python and Pygame
Dive into Python
Canal IRC:
#pythonbr (serv. FreeNode)
Lista de Discussão:
pythonbrasil (yahoo grupos)
grupypr (google grupos)