"""Randomize a "Run to the hills" phrase."""
from __future__ import print_function
import random
from argparse import ArgumentParser
CONSONANTS = ['f', 'j', 'c', 'l', 'n']
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
def print_phrase(consonants):
"""Print the phrase with the randomized consonants."""
print(PASSPHRASE.format(*consonants).capitalize())
def totally_random():
"""Run a totally random way."""
random.shuffle(CONSONANTS)
print_phrase(CONSONANTS)
def switch_two():
"""Run by changing two steps at a time."""
first = random.randint(0, 1)
second = random.randint(2, 4)
CONSONANTS[second], CONSONANTS[first] = \
CONSONANTS[first], CONSONANTS[second]
print_phrase(CONSONANTS)
if __name__ == "__main__":
args = ArgumentParser()
args.add_argument('-t', '--totally',
dest='totally',
default=False,
action='store_true',
help='Like, toootaly random')
args.add_argument('-s', '--short',
dest='short',
default=False,
action='store_true',
help='Not so random')
result = args.parse_args()
if result.totally:
totally_random()
elif result.short:
switch_two()
else:
print('Dude, option!')
"""Randomize a "Run to the hills" phrase."""
import random
from argparse import ArgumentParser
CONSONANTS = ['f', 'j', 'c', 'l', 'n']
PASSPHRASE = '{}u{}am para as {}o{}i{}as'
def print_phrase(consonants):
"""Print the phrase with the randomized consonants."""
def print_phrase(consonants, something_else):
def soma(primeiro, segundo):
total = primeiro + segundo
return total
soma(1, 2)
soma(primeiro=2, segundo=3)
soma(segundo=3, primeiro=2)
def soma(primeiro=0, segundo=0):
soma()
soma(1)
soma(segundo=3)
def soma(primeiro, segundo):
total = primeiro + segundo
return total
soma(1)
soma(1, 2, 3)
TypeError: soma() takes exactly 2 arguments (3 given)
def soma(*valores):
def soma(*valores):
print(valores)
soma(1, 2, 3, 4, 5)
[1, 2, 3, 4, 5]
def soma(inicial, segundo=0, *valores):
print(inicial)
print(segundo)
print(valores)
soma(2)
2
0
[]
E o que acontece com parâmetros com nomes?
def soma(**valores):
print(valores)
soma(primeiro=1, segundo=2)
{'primeiro': 1, 'segundo': 2}
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.
params = [4, 4]
soma(*params)
Sem entrar em detalhes sobre como criar objetos:
"isso é uma string"
help("isso é uma string")
"isso é uma string".capitalize()
frase = "isso é uma string"
frase.capitalize()
print(PASSPHRASE.format(*consonants).capitalize())
O que sabemos:
PASSPHRASE
é uma string..format
deve ser um método de strings.consonants
é uma lista*consonants
tá transformando a lista em parâmetroscapitalize
também deve ser um método de strings