2. O que é Python
• Intuitiva
• Múltiplos paradígmas (estruturado, OO,
funcional)
• Interpretado (bytecode)
• Tipagem dinâmica
• Multiplataforma
• Baterias Inclusas
• Criada por Guido van Rossum
2
3. O Interpretador
mufasa:~ diego$ python
Python 2.6.1 (r261:67515, Aug 2 2010, 20:10:18)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for
more information.
>>> print 'Hello world!'
Hello world!
>>>
3
10. Variáveis e tipos
>>> a = 123
>>> b = 1.23
>>> print 'a = %d' % a
a = 123
>>> print 'b = %f' % b
b = 1.230000
>>> print 'a = %d, b = %f' % (a, b)
a = 123, b = 1.230000
>>> valores = {'c1': 123, 'c2': 1.23, 'c3': 'um
texto'}
>>> print 'a = %(c1)d, b = %(c2)f, c = %(c3)s' %
valores
a = 123, b = 1.230000, c = um texto
10
11. Condicionais
>>> if a == 1 and b == 2:
... print 'a = 1 e b = 2'
... elif a == 2 or not b == 2:
... print 'a = 2 ou b != 2'
... elif a in [1, 2, 3]:
... print 'a = 1 ou a = 2 ou a = 3'
... else:
... print 'nao deu!'
>>> c = 1 if a == 2 else 2
11
12. Laços
>>> frutas = ['banana', 'maca', 'uva']
>>>
>>> for fruta in frutas:
... print fruta
...
banana
maca
uva
>>> # nao faca isso
>>> for i in range(len(frutas)):
... print frutas[i]
...
banana
maca
uva
12
13. Laços
>>> i = 0
>>> while i < 10:
... print i
... i += 1
...
0
1
2
3
4
5
6
7
8
9
13
14. Laços?
>>> # Múltiplos de 3 de 0 a 100
... # usando list compression
... m = [x for x in range(100) if x % 3 == 0]
>>> m
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33,
36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66,
69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
14
15. Funções
>>> def fatorial(n):
... ''' Funcao recursiva que retorna n! '''
... if n > 1:
... return n * fatorial(n - 1)
... else:
... return 1
...
>>> help(fatorial)
Help on function fatorial in module __main__:
fatorial(n)
Funcao recursiva que retorna n!
(END) 15
31. import this
• Bonito é melhor que feio.
• Explícito é melhor que implícito.
• Simples é melhor que complexo.
• Complexo é melhor que complicado.
• Plano é melhor que aninhado.
• Esparso é melhor que denso.
• Legibilidade conta.
31
32. import this
• Casos especiais não são especiais o bastante para se
quebrar as regras.
• Embora a simplicidade supere o purismo. Erros
nunca deveriam passar silenciosamente. A menos
que explicitamente silenciados.
• Ao encarar a ambiguidade, recuse a tentação de
adivinhar.
• Deve haver uma – e preferencialmente apenas uma
– maneira óbvia de se fazer isto.
• Embora aquela maneira possa não ser óbvia à
primeira vista se você não for holandês.
32
33. import this
• Agora é melhor que nunca.
• Embora nunca, seja muitas vezes melhor que pra já.
• Se a implementação é difícil de explicar, é uma má
idéia.
• Se a implementação é fácil de explicar, pode ser uma
boa idéia.
• Namespaces são uma idéia estupenda – vamos fazer
mais deles!
33