From 3db60b6f5acefe626c5520b80a0d5090293ba718 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Tue, 1 Jul 2014 14:46:22 -0300 Subject: [PATCH] python is back --- _images/zuul.jpg | Bin 0 -> 38355 bytes python.html | 388 ++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 319 insertions(+), 69 deletions(-) create mode 100644 _images/zuul.jpg diff --git a/_images/zuul.jpg b/_images/zuul.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b1dd44ae8c15cd9272190ede35d4f10f8103542 GIT binary patch literal 38355 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

fB$(j=6iM! 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

AC@NcsAq`w2@nI@{|zaYW$`R!aXq{F;fGS@f(Xs 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 - - + + - Python + Python - + - - + + - + - - + + - - + + - - + + - + - - + + - + -

- -
-
-

Python

+
+ +
+
+

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
+						

+
-
-
- - - - - - - +
+
+ + + + + + +