Python

O que é Python?

  • Linguagem interpretada.
  • Dinamicamente tipada.

O interpretador Python


Python 2.7.5 (default, Jun 25 2014, 10:19:55) 
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
                        

Tipos

Tipos Mutáveis e Tipos Imutáveis

Em Python, o tipo da variável pode ser mutável ou imutável, mas a definição é data pelo tipo e não pelo usuário.

Uma variável do tipo "imutável" não pode ser alterada depois de criada. Tentar modificar a variável vai criar uma nova instância.

Uma variável do tipo "mutável" é o contrário: tentar alterar vai alterar o objeto, não criar um novo.

A importância disto será visto mais pra frente, mas tenha isso em mente.

bool: Tipo booleano.


a = True
b = False
                        

int: Um inteiro.


a = 1
                        


>>> 1 + 1
2
                        

float: Um número com ponto flutuante.


a = 1.1
b = 1.0
                        

str: Strings. É um objeto imutável.


a = 'Python'
b = "Python"
c = """Python
    Rocks!"""
                        

unicode: Strings em Unicode. É um objeto imutável.


a = u'Python'
                        

list: Listas. É um objeto mutável.


a = [1, 2, 'Python', ['Outra lista']]
                        

dict: Um dicionário/objeto/mapa. É um objeto mutável.


a = {'Python': 'Rocks',
     1: 1.0}
                        

tuple: Um conjunto de elementos. É um objeto imutável.


a = ('Python', 1)
b = (2,)
                        

E ainda (mas menos importantes):

  • None
  • Long (a = 1L)
  • Lambdas ( a = lambda a: a + 2)

Estruturas de Controle

(... que é o nome bonito para coisas tipo if, for...)

Antes de mais nada...

Blocos

Em Python, uma identação define um bloco.

Não tem { / }, não tem end, nada. Só blocos.

if [condição]


if a = 1:
    b = 2
c = 3
                        

while [condição]


a = 1
while True:
    a += 1
    if a > 10:
        break
                        

for [iterável]


soma = 0
for valor em [345, 123, 123, 34]:
    soma += valor
                        

The fuck "ITERÁVEL"?

Um objeto "iterável" é aquele que pode ter elementos acessados usando [ e ].

(Na verdade, o objeto tem que ter um generator; para acesar elementos diretamente, o objeto tem que implementar a função __getitem__.)

Tipos iteráveis:

  • Listas (a[2])
  • Tuplas (a[2])
  • Dicionários (a['Python'])
  • Strings/Unicodes (a[2])

Strings como iteráveis:


for l in 'Python':
    print l
                        

Dicionários como iteráveis:


for key in {'Python': 'Rocks', 'Parrot': 'Dead', 'Favorite Color': 'Blue'}:
	print key
						

Funções

def [nome_da_função]([parâmetro], [parâmetro]):


def funcao(a, b, c):
    return (a + b) / c