From 450fd0e80f68d8dd9e3adf07a36052f512695307 Mon Sep 17 00:00:00 2001
From: Julio Biason
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
-
+
@@ -203,7 +202,7 @@ if __name__ == "__main__":
"""Randomize a "Run to the hills" phrase."""
Módulos e imports
-
+
@@ -267,7 +266,7 @@ from argparse import ArgumentParser
import random
from argparse import ArgumentParser
Variáveis e tipos
-
+
@@ -292,13 +291,25 @@ PASSPHRASE = '{}u{}am para as {}o{}i{}as'
nós vamos estragar essa convenção.)
CONSONANTS = ['f', 'j', 'c', 'l', 'n']
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
Variáveis e tipos (um pouco mais)
+
+
+
+ " ou '
: Strings[]
: Listas/arrays{}
: Dicionários/mapas/objetos/arrays associativos()
: TuplasSet()
: Conjuntos (tipo lista, sem duplicações)Funções
-
+
@@ -328,7 +339,7 @@ def print_phrase(consonants):
def print_phrase(consonants):
"""Print the phrase with the randomized consonants."""
Funções
-
+
@@ -341,7 +352,7 @@ def print_phrase(consonants, something_else):
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
-
+
@@ -374,7 +385,7 @@ soma(1, 2)
soma(1, 2)
Funções
-
+
@@ -387,7 +398,7 @@ soma(primeiro=2, segundo=3)
soma(primeiro=2, segundo=3)
Funções
-
+
@@ -404,11 +415,11 @@ soma(segundo=3, primeiro=2)
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)
+
@@ -451,7 +462,7 @@ soma(1, 2, 3)
soma(1, 2, 3)
Pausa: Varargs
-
+
@@ -464,7 +475,7 @@ TypeError: soma() takes exactly 2 arguments (3 given)
TypeError: soma() takes exactly 2 arguments (3 given)
Pausa: Varargs
-
+
@@ -479,16 +490,16 @@ def soma(*valores):
def soma(*valores):
Pausa: Varargs
-
+
-
def soma(*valores):
print(valores)
+
-
soma(1, 2, 3, 4, 5)
+
[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)
+
@@ -568,7 +579,7 @@ soma(primeiro=1, segundo=2)
{'primeiro': 1, 'segundo': 2}
Pausa: Varargs
-
+
@@ -594,7 +605,7 @@ soma(*params)
params = [4, 4]
soma(*params)
Pausa: Objetos
-
+
@@ -606,7 +617,7 @@ soma(*params)
"isso é uma string"
Pausa: Objetos
-
+
@@ -625,11 +636,11 @@ help("isso é uma string")
help("isso é uma string")
Pausa: Objetos
-
+
-
"isso é uma string".capitalize()
+
@@ -640,7 +651,7 @@ frase.capitalize()
frase = "isso é uma string"
frase.capitalize()
Welcome to Hell
-
+
@@ -680,11 +691,11 @@ frase.capitalize()
print(PASSPHRASE.format(*consonants).capitalize())
Welcome to Hell
-
+
-
'Bem vindo {}!'.format('Júlio')
+
@@ -697,12 +708,12 @@ Bem vindo Júlio!
Bem vindo Júlio!
Welcome to Hell
-
+
-
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
PASSPHRASE.format('f', 'j', 'c', 'l', 'n')
+
@@ -716,13 +727,13 @@ PASSPHRASE.format('f', 'j', 'c', 'l', 'n')
'fujam para as colinas'
Welcome to... Hell
-
+
-
CONSONANTS = ['f', 'j', 'c', 'l', 'n']
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
PASSPHRASE.format(*CONSONANTS)
+
@@ -737,11 +748,11 @@ PASSPHRASE.format(*CONSONANTS)
'fujam para as colinas'
Welcome to... Hell?
-
+
-
'fujam para as colinas'.capitalize()
+
@@ -756,7 +767,7 @@ Fujam para as colinas
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?
-
+
@@ -810,7 +821,7 @@ def switch_two():
CONSONANTS[second], CONSONANTS[first] = \
CONSONANTS[first], CONSONANTS[second]
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__":
+
+
+ - Júlio Biason
+ - https://functional.cafe/@juliobiason
+ - julio.biason@pm.me
+ - http://presentations.juliobiason.net
+
+
+
+
+
Perguntas?
+
+
+
+
-
-
- - @juliobiason
- - https://functional.cafe/@juliobiason
- - julio.biason@gmail.com
- - http://presentations.juliobiason.net
-
-
-
-
-
-
-
-
-
-
-
-
-