Este documento apresenta os principais conceitos da linguagem de programação Python em menos de 10 minutos, incluindo tipos de dados, variáveis, expressões, estruturas de controle, funções, classes, objetos e um exemplo de programa.
1. Python em (mais de) 10
minutinhos
Rudá Moura
Setembro de 2009
2. Mantras
• Blocos de código são alinhados por
espaços e/ou tabulações;
• Tudo em Python é um objeto;
• Variáveis referenciam a objetos; objetos
têm tipos, mas variáveis não têm tipos;
• Não há conversão automática de tipos.
Tudo tem que ser explícito (convertido).
5. Variáveis e Expressões
• p = True and False # or, not, p = False
• n = 1024 * 512 # + - / % **
• azul = (0x0, 0x0, 0xFF) # 0x hexadecimal
• azul[2] # 255
• lst = [p, n, azul]
• lst[-1][2] # 255 (azul[2])
• semana = {} ; semana[‘segunda’] = 1
6. If…
if condição:
comandos
else: # é opcional
comandos if x > 0:
print “positivo”
elif x < 0:
# tipo um switch/case print “negativo”
if condição: else:
comandos print “zero”
elif condição:
comandos
else:
comandos
7. While/Do While
while condição:
comandos
do: soma = i = 0
while i < 10:
comandos soma += i
while: i += 1
condição # soma é 45
8. For(each)
for elemento in sequência:
comando
for x in range(10):
print x # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
elems = [‘tesoura’, ‘papel’, ‘pedra’]
for elem in elems:
print elem # tesoura, papel e pedra
9. Funções & Métodos
def função(argumentos):
‘documentacao’
# corpo da funcao
return algo def fatorial(n):
‘fatorial de n recursivo’
def método(self, if n == 0: return 1
argumentos): else:
return n * fatorial(n-1)
‘documentacao’
# corpo do método
return algo
10. Classes
class Pessoa(object):
‘Modelagem de pessoa’
def __init__(self, nome, idade):
self.nome = nome
self.idade = int(idade)
def primeiroNome(self):
‘Retorna o primeiro nome da pessoa’
nome = self.nome.split() # corta espaços
return nome[0] # 1º elemento da lista
11. class Programador(Pessoa):
‘Modelagem de programador’
elementos = 0 # atributo de classe
def __init__(self, nome, idade, linguagem=‘Python’):
Pessoa.__init__(self, nome, idade)
self.linguagem = linguagem
self.karma = 0
Programador.quantidade += 1
def aumentaKarma(self):
self.karma += 1
def diminuiKarma(self):
self.karma -= 1
13. Programa passwd.py
#!/usr/bin/python
import sys
def username_of(login):
passwd = open("/etc/passwd")
lines = passwd.readlines()
passwd.close()
for line in lines:
list = line.split(":”) # ['root','x', '0', '0',
'root', '/root', '/bin/bashn']
user, x, uid, gid, full_name, home, shell = list
if login == user:
return full_name
return None
14. # É o main() do Python…
if __name__ == "__main__":
for arg in sys.argv[1:]: # [“root”, “ruda”, “abc”]
name = username_of(arg)
print 'O login "%s" pertence ao "%s"' % (arg, name)
else:
print 'O login "%s" nao existe!' % arg
# python passwd.py ruda
# Ruda Moura
15. Não vimos...
• Funções builtins len(), range(), int(), …
• Exceções (try/except/raise)
• Fatias (slices) x[0], x[-1], x[1:], x[1,-1]
• Decorators @foobar
• List comprehension [x for x in range(10) if
x % 2] # [1,3,5,7,9]
• Biblioteca padrão (sys, os, urllib,…)
16. Consulte e aprenda
• Rudá Moura (estou ai né?)
• Python Brasil http://www.python.org.br/
• Python http://python.org/
• http://docs.python.org/tutorial/index.html
• http://www.python.org.br/wiki/
TutorialPython