diff --git a/fugindo-com-python-2.html b/fugindo-com-python-2.html index 249b7f1..7a1b292 100644 --- a/fugindo-com-python-2.html +++ b/fugindo-com-python-2.html @@ -58,15 +58,15 @@ max-height: 90%; } - .semi-opaque { - background-color: rgba(0, 0, 0, 0.7); - color: #fff; - text-shadow: 2px 2px #000; - } - - .reveal h1 { - font-size: 3em !important; - } + .semi-opaque { + background-color: rgba(0, 0, 0, 0.8); + color: #fff; + text-shadow: 2px 2px #000; + } + + .reveal h1 { + font-size: 3em !important; + } @@ -86,9 +86,8 @@
@@ -112,7 +111,7 @@

Solução

-
"""Randomize a "Run to the hills" phrase."""
+                        
"""Randomize a "Run to the hills" phrase."""
 
 from __future__ import print_function
 
@@ -178,7 +177,7 @@ if __name__ == "__main__":
                     

Docstrings

-

+                        

 """Randomize a "Run to the hills" phrase."""    
                         
@@ -203,7 +202,7 @@ if __name__ == "__main__":

Módulos e imports

-

+                        

 import random
 from argparse import ArgumentParser
                         
@@ -267,7 +266,7 @@ from argparse import ArgumentParser

Variáveis e tipos

-

+                        

 CONSONANTS = ['f', 'j', 'c', 'l', 'n']
 PASSPHRASE = '{}u{}am para as {}o{}i{}as'
                         
@@ -292,13 +291,25 @@ PASSPHRASE = '{}u{}am para as {}o{}i{}as' nós vamos estragar essa convenção.)
+ +
+

Variáveis e tipos (um pouco mais)

+ +
    +
  • " ou ': Strings
  • +
  • []: Listas/arrays
  • +
  • {}: Dicionários/mapas/objetos/arrays associativos
  • +
  • (): Tuplas
  • +
  • Set(): Conjuntos (tipo lista, sem duplicações)
  • +
+

Funções

-

+                        

 def print_phrase(consonants):
     """Print the phrase with the randomized consonants."""
                         
@@ -328,7 +339,7 @@ def print_phrase(consonants):

Funções

-

+                        

 def print_phrase(consonants, something_else):
                         
@@ -341,7 +352,7 @@ def print_phrase(consonants, something_else):

Funcões

-

+                        

 def soma(primeiro, segundo):
     total = primeiro + segundo
     return total
@@ -361,7 +372,7 @@ def soma(primeiro, segundo):
                     

Funções

-

+                        

 soma(1, 2)
                         
@@ -374,7 +385,7 @@ soma(1, 2)

Funções

-

+                        

 soma(primeiro=2, segundo=3)
                         
@@ -387,7 +398,7 @@ soma(primeiro=2, segundo=3)

Funções

-

+                        

 soma(segundo=3, primeiro=2)
                         
@@ -404,11 +415,11 @@ soma(segundo=3, primeiro=2)

Funções

-

+                        

 def soma(primeiro=0, segundo=0):
                         
-

+                        

 soma()
 soma(1)
 soma(segundo=3)
@@ -428,17 +439,17 @@ soma(segundo=3)
                     

Pausa: Varargs

-

+                        

 def soma(primeiro, segundo):
     total = primeiro + segundo
     return total
                         
-

+                        

 soma(1)
                         
-

+                        

 soma(1, 2, 3)
                         
@@ -451,7 +462,7 @@ soma(1, 2, 3)

Pausa: Varargs

-

+                        

 TypeError: soma() takes exactly 2 arguments (3 given)
                         
@@ -464,7 +475,7 @@ TypeError: soma() takes exactly 2 arguments (3 given)

Pausa: Varargs

-

+                        

 def soma(*valores):
                         
@@ -479,16 +490,16 @@ def soma(*valores):

Pausa: Varargs

-

+                        

 def soma(*valores):
     print(valores)
                         
-

+                        

 soma(1, 2, 3, 4, 5)
                         
-

+                        

 [1, 2, 3, 4, 5]
                         
@@ -496,7 +507,7 @@ soma(1, 2, 3, 4, 5)

Pausa: Varargs

-

+                        

 def soma(inicial, segundo=0, *valores):
     print(inicial)
     print(segundo)
@@ -504,11 +515,11 @@ def soma(inicial, segundo=0, *valores):
 
                         
-

+                        

 soma(2)
                         
-

+                        

 2
 0
 []
@@ -526,16 +537,16 @@ soma(2)
                     

Pausa: Varargs

-

+                        

 def soma(**valores):
     print(valores)
                         
-

+                        

 soma(primeiro=1, segundo=2)
                         
-

+                        

 {'primeiro': 1, 'segundo': 2}
                         
@@ -568,7 +579,7 @@ soma(primeiro=1, segundo=2)

Pausa: Varargs

-

+                        

 params = [4, 4]
 soma(*params)
                         
@@ -594,7 +605,7 @@ soma(*params)

Pausa: Objetos

-

+                        

 "isso é uma string"
                         
@@ -606,7 +617,7 @@ soma(*params)

Pausa: Objetos

-

+                        

 help("isso é uma string")
                         
@@ -625,11 +636,11 @@ help("isso é uma string")

Pausa: Objetos

-

+                        

 "isso é uma string".capitalize()
                         
-

+                        

 frase = "isso é uma string"
 frase.capitalize()
                         
@@ -640,7 +651,7 @@ frase.capitalize()

Welcome to Hell

-

+                        

     print(PASSPHRASE.format(*consonants).capitalize())
                         
@@ -680,11 +691,11 @@ frase.capitalize()

Welcome to Hell

-

+                        

 'Bem vindo {}!'.format('Júlio')
                         
-

+                        

 Bem vindo Júlio!
                         
@@ -697,12 +708,12 @@ Bem vindo Júlio!

Welcome to Hell

-

+                        

 PASSPHRASE = '{}u{}am para as {}o{}i{}as'
 PASSPHRASE.format('f', 'j', 'c', 'l', 'n')
                         
-

+                        

 'fujam para as colinas'
                         
@@ -716,13 +727,13 @@ PASSPHRASE.format('f', 'j', 'c', 'l', 'n')

Welcome to... Hell

-

+                        

 CONSONANTS = ['f', 'j', 'c', 'l', 'n']
 PASSPHRASE = '{}u{}am para as {}o{}i{}as'
 PASSPHRASE.format(*CONSONANTS)
                         
-

+                        

 'fujam para as colinas'
                         
@@ -737,11 +748,11 @@ PASSPHRASE.format(*CONSONANTS)

Welcome to... Hell?

-

+                        

 'fujam para as colinas'.capitalize()
                         
-

+                        

 Fujam para as colinas
                         
@@ -756,7 +767,7 @@ Fujam para as colinas

Randomizações

-

+                        

 def totally_random():
     """Run a totally random way."""
     random.shuffle(CONSONANTS)
@@ -776,7 +787,7 @@ def totally_random():
                     

Randomizações

-

+                        

 def switch_two():
     """Run by changing two steps at a time."""
     first = random.randint(0, 1)
@@ -801,7 +812,7 @@ def switch_two():
                     

Welcome to hell, maybe?

-

+                        

     CONSONANTS[second], CONSONANTS[first] = \
         CONSONANTS[first], CONSONANTS[second]
                         
@@ -810,7 +821,7 @@ def switch_two():

Welcome to Listas!

-

+                        

 # CONSONANTS = ['f', 'j', 'c', 'l', 'n']
 # second = random.randint(2, 4)
 CONSONANTS[second]
@@ -836,7 +847,7 @@ CONSONANTS[second]
                             E pra criar uma tupla:
                         

-

+                        

 valor, valor
                         
@@ -846,13 +857,13 @@ valor, valor

Welcome to Destructuring

-

+                        

 primeiro, segundo = [1, 2]
 print(primeiro)
 print(segundo)
                         
-

+                        

 1
 2
                         
@@ -875,12 +886,12 @@ print(segundo)

Tudo junto, agora!

-

+                        

     CONSONANTS[second], CONSONANTS[first] = \
         CONSONANTS[first], CONSONANTS[second]
                         
-

+                        

 tmp = CONSONANTS[first]
 CONSONANTS[first] = CONSONANTS[second]
 CONSONANTS[second] = tmp
@@ -901,7 +912,7 @@ CONSONANTS[second] = tmp
                     

O Pai de Todos Módulos

-

+                        

 if __name__ == "__main__":
                         
@@ -937,7 +948,7 @@ if __name__ == "__main__":

A linha de comando

-

+                        

     args = ArgumentParser()
     args.add_argument('-t', '--totally',
                       dest='type',
@@ -967,7 +978,7 @@ if __name__ == "__main__":
                     

Funções são cidadãos de primeira classe

-

+                        

     callbacks = {
         'totally': totally_random,
         'switch': switch_two
@@ -1010,6 +1021,46 @@ if __name__ == "__main__":
                     
+
+
+

O que faltou?

+
+ +
+

List comprehensions

+ +

+numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+pares = [num
+         for num
+         in numeros
+         if num % 2 = 0]
+                        
+ +

Curiosidade: Strings são iteráveis como listas.

+
+ +
+

Generators

+ +

+numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+pares = (num
+         for num
+         in numeros
+         if num % 2 = 0)
+                        
+ +

+<generator object <genexpr> at 0x7f03ce4e67d0>
+                        
+
+ +
+

Laziness

+
+
+

Fulindo para as Cojinas com Python

@@ -1022,47 +1073,49 @@ if __name__ == "__main__":
+
+ +
+ +

+

Perguntas?

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