Ex: "Cujam para as folinas", "Lujam para as cofinas" e "Nujam para as folicas"
-
-
-
+
+
+
O Problema
+
+
+
"Hello world" não é muito didático
+
Escrever "Fujam para as colinas"
+
... com randomização de alguns elementos.
+
Ex: "Cujam para as folinas", "Lujam para as cofinas" e "Nujam para as folicas"
+
+
+
-
-
-
Solução
+
+
+
Solução
-
"""Randomize a "Run to the hills" phrase."""
+
"""Randomize a "Run to the hills" phrase."""
from __future__ import print_function
@@ -173,246 +173,494 @@ if __name__ == "__main__":
switch_two()
else:
print('Dude, option!')
-
-
-
-
-
-
Docstrings
-
-
-"""Randomize a "Run to the hills" phrase."""
-
-
-
-
-
-
-
-
-
Módulos e imports
-
-
+
+
+
+
+
+
Docstrings
+
+
+"""Randomize a "Run to the hills" phrase."""
+
+
+
+
+
+
+
+
+
Módulos e imports
+
+
import random
from argparse import ArgumentParser
-
+
-
-
+
+
-
-
Módulos e imports
+
+
Módulos e imports
-
+
-
+ Como ambos estão em espaços separados, de `mod1` eu
+ não consigo chamar `func2` (e nem o contrário).
+
+
-
-
Módulos e imports
+
+
Módulos e imports
-
+
-
+ Como fazer a chamada usando o namespace é visto a seguir.
+
+
-
-
Módulos e imports
+
+
Módulos e imports
-
+
-
-
-
+
+
+
-
-
-
Variáveis e tipos
+
+
+
Variáveis e tipos
-
+
CONSONANTS = ['f', 'j', 'c', 'l', 'n']
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
-
-
-
-
-
-
-
-
-
Funções
-
-
+
+
+
+
+
+
+
+
+
Funções
+
+
def print_phrase(consonants):
"""Print the phrase with the randomized consonants."""
-
+
-
+ Quinto: Python não usa colchetes para blocos; blocos
+ são definidos por identação (como pode ser visto pela
+ docstring).
+
+
-
-
Funções
+
+
Funções
-
+
def print_phrase(consonants, something_else):
-
+
-
-
+
+
-
-
Funcões
+
+
Funcões
-
+
def soma(primeiro, segundo):
total = primeiro + segundo
- return total
-
-
-
-
+ return total
+
+
+
+
-
-
Funções
+
+
Funções
-
+
soma(1, 2)
-
+
-
-
+
+
-
-
Funções
+
+
Funções
-
+
soma(primeiro=2, segundo=3)
-
+
-
-
+
+
-
-
Funções
+
+
Funções
-
+
soma(segundo=3, primeiro=2)
-
+
+
+
+
+
+
+
Funções
+
+
+def soma(primeiro=0, segundo=0):
+
+
+
+soma()
+soma(1)
+soma(segundo=3)
+
-
-
+ E, com nomes nos parâmetros, é possível "pular"
+ por parâmetros que tem valor default.
+
+
+
+
+
+
+
Pausa: Varargs
+
+
+def soma(primeiro, segundo):
+ total = primeiro + segundo
+ return total
+
+ O legal de varargs (e o asterísco) é que ele
+ funciona pros dois lados: Não só ele transforma
+ parâmetros em lista, mas ele também pode
+ funcionar para converter uma lista em parâmetros.
+
+
+
+
+
Pausa: Varargs
+
+
+params = [4, 4]
+soma(*params)
+
+
+
+
+
+
+
Pausa: Objetos
+
+
+ Sem entrar em detalhes sobre como
+ criar objetos:
+
+
+
+
Objetos tem métodos (funções associadas a um objeto)
+
Para chamar um método, usa-se '.' e o nome do método
+
Strings são objetos
+
+
+
+
+
Pausa: Objetos
+
+
+"isso é uma string"
+
+
+
+
+
+
+
Pausa: Objetos
+
+
+help("isso é uma string")
+
+
+
+
+
+
+
Pausa: Objetos
+
+
+"isso é uma string".capitalize()
+
+
+
+frase = "isso é uma string"
+frase.capitalize()
+