Skip to content

Commit 06372c0

Browse files
authored
Add files
1 parent d67fefb commit 06372c0

14 files changed

+204
-0
lines changed

Diff for: Funções/Acessando_todos_os_parametros.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
def todos_params(*args, **kwargs):
2+
print(f"args: {args}")
3+
print(f"kwards: {kwargs}")
4+
5+
todos_params("a", "b", "c", legal=True, valor=12.99)
6+
todos_params("Felipe", True, [1, 6, 8], valor=34, pesado=False)

Diff for: Funções/Callable_Object.py

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!python
2+
3+
class Potencia:
4+
def __init__(self, expoente):
5+
self.expoente = expoente
6+
7+
def __call__(self, base):
8+
return base ** self.expoente
9+
10+
quadrado = Potencia(2)
11+
12+
if callable(quadrado):
13+
print(f"2**2 => {quadrado(2)}")

Diff for: Funções/Callable_Unpacking.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!python
2+
3+
def cal_preco_final(preco_bruto, cal_calc_imposto, *params):
4+
return preco_bruto + preco_bruto * cal_calc_imposto(*params)
5+
6+
def imposto_x(importado):
7+
return 0.22 if importado else 0.13
8+
9+
def imposto_y(explosivo, fator_mult = 1):
10+
return 0.11 * fator_mult if explosivo else 0
11+
12+
preco_bruto = 134.98
13+
preco_final = cal_preco_final(preco_bruto, imposto_x, True)
14+
preco_final = cal_preco_final(preco_final, imposto_y, True, 1.5)
15+
print(f"Preco final: R${preco_final}")

Diff for: Funções/Callable_com_Unpacking_Nomeado.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!python
2+
3+
def cal_preco_final(preco_bruto, cal_calc_imposto, **params):
4+
return preco_bruto + preco_bruto * cal_calc_imposto(**params)
5+
6+
def imposto_x(importado):
7+
return 0.22 if importado else 0.13
8+
9+
def imposto_y(explosivo, fator_mult = 1):
10+
return 0.11 * fator_mult if explosivo else 0
11+
12+
preco_bruto = 134.98
13+
preco_final = cal_preco_final(preco_bruto, imposto_x, importado=True)
14+
preco_final = cal_preco_final(preco_final, imposto_y, explosivo=True, fator_mult=1.5)
15+
print(f"Preco final: R${preco_final}")

Diff for: Funções/Correção_args_mutaveis.py

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!python
2+
3+
#problema
4+
5+
def fibonacci(sequencia=None):
6+
sequencia = sequencia or [0, 1]
7+
sequencia.append(sequencia[-1] + sequencia[-2])
8+
return sequencia
9+
10+
inicio = fibonacci()
11+
print(inicio, id(inicio))
12+
print(fibonacci(inicio))
13+
restart = fibonacci()
14+
print(restart)

Diff for: Funções/Decorator.py

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
def log(function):
2+
def decorator(*args, **kwargs):
3+
print(f"Inicio da chamada da funcao: {function.__name__}")
4+
print(f"Args: {args}")
5+
print(f"kwargs: {kwargs}")
6+
resultado = function(*args, **kwargs)
7+
print(f"Resultado da chamada: {resultado}")
8+
return resultado
9+
return decorator
10+
11+
@log
12+
def soma(x, y):
13+
return x + y
14+
15+
@log
16+
def sub(x, y):
17+
return x - y
18+
19+
print(sub(3, 6))
20+
print(soma(3, 9))

Diff for: Funções/Gerador_html_v5.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!python
2+
3+
def tag_bloco(conteudo, *args, classe='success', inline=False):
4+
tag = 'span' if inline else 'div'
5+
html = conteudo if not callable(conteudo) else conteudo(*args)
6+
return f'<{tag} class="{classe}">{html}</{tag}>'
7+
8+
9+
def tag_lista(*itens):
10+
lista = "".join((f'<li>{item}</li>' for item in itens))
11+
return f'<ul>{lista}</ul>'
12+
13+
14+
if __name__ == '__main__':
15+
print(tag_bloco('bloco'))
16+
print(tag_bloco("inline e classe", classe="info", inline=True))
17+
print(tag_bloco("inline", inline=True))
18+
print(tag_bloco("falhou", classe="error"))
19+
print(tag_lista("ANA", "BEATRIZ", "SOFIA"))
20+
print(tag_bloco(tag_lista("Item 1", "item 2")))
21+
print(tag_bloco(tag_lista, "Sabado", "Domingo", classe="info", inline=True))

Diff for: Funções/Pack_Unpack02.py

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!python
2+
3+
def tag_bloco(texto, classe='success', inline=False):
4+
tag = 'span' if inline else 'div'
5+
return f'<{tag} class="{classe}">{texto}</{tag}>'
6+
7+
8+
def tag_lista(*itens):
9+
lista = "".join((f'<li>{item}</li>' for item in itens))
10+
return f'<ul>{lista}</ul>'
11+
12+
13+
if __name__ == '__main__':
14+
print(tag_bloco('bloco'))
15+
print(tag_bloco("inline e classe", "info", True))
16+
print(tag_bloco("inline", inline=True))
17+
print(tag_bloco("falhou", "error"))
18+
print(tag_lista("ANA", "BEATRIZ", "SOFIA"))
19+
print(tag_bloco(tag_lista("Item 1", "item 2")))

Diff for: Funções/ParametrosNomeados.py

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def tag_bloco(texto, classe='success', inline=False):
2+
tag = 'span' if inline else 'div'
3+
return f'<{tag} class="{classe}">{texto}</{tag}>'
4+
5+
6+
if __name__ == '__main__':
7+
print(tag_bloco('bloco'))
8+
print(tag_bloco("inline e classe", "info", True))
9+
print(tag_bloco("inline", inline=True))
10+
print(tag_bloco("falhou", "error"))
11+

Diff for: Funções/Parametros_Opcionais_Unpacking.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!python
2+
3+
def tag_bloco(conteudo, *args, classe='success', inline=False):
4+
tag = 'span' if inline else 'div'
5+
html = conteudo if not callable(conteudo) else conteudo(*args)
6+
return f'<{tag} class="{classe}">{html}</{tag}>'
7+
8+
9+
def tag_lista(*itens):
10+
lista = "".join((f'<li>{item}</li>' for item in itens))
11+
return f'<ul>{lista}</ul>'
12+
13+
14+
if __name__ == '__main__':
15+
print(tag_bloco('bloco'))
16+
print(tag_bloco("inline e classe", classe="info", inline=True))
17+
print(tag_bloco("inline", inline=True))
18+
print(tag_bloco("falhou", classe="error"))
19+
print(tag_lista("ANA", "BEATRIZ", "SOFIA"))
20+
print(tag_bloco(tag_lista("Item 1", "item 2")))
21+
print(tag_bloco(tag_lista, "Sabado", "Domingo", classe="info", inline=True))

Diff for: Funções/ParâmetrosOpcionais.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def tag_bloco(texto, classe='success'):
2+
return '<div class="{}">{}</div>'.format(classe, texto)
3+
4+
5+
if __name__ == '__main__':
6+
assert tag_bloco('Incluído com sucesso!') == \
7+
'<div class="success">Incluído com sucesso!</div>'
8+
assert tag_bloco('Impossível excluir!', 'error') == \
9+
'<div class="error">Impossível excluir!</div>'
10+
print(tag_bloco('bloco'))

Diff for: Funções/Problem_Param_Padrão_mutavel.py

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!python
2+
3+
#problema
4+
5+
def fibonacci(sequencia=[0, 1]):
6+
sequencia.append(sequencia[-1] + sequencia[-2])
7+
return sequencia
8+
9+
inicio = fibonacci()
10+
print(inicio, id(inicio))
11+
print(fibonacci(inicio))
12+
restart = fibonacci()
13+
print(fibonacci(restart))

Diff for: Funções/Prog_Funcional_spoiler.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!python
2+
3+
def executar(funcao):
4+
if callable(funcao):
5+
funcao()
6+
7+
def bomDia():
8+
print("Bom dia")
9+
10+
def boaTarde():
11+
print("Boa tarde")
12+
13+
executar(bomDia)
14+
executar(boaTarde)
15+

Diff for: Funções/Unpacking_Nomeado.py

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!python
2+
3+
def resultadoF1(**podium):
4+
for posicao, piloto in podium.items():
5+
print(f"{posicao} -> {piloto}")
6+
7+
resultadoF1(
8+
primeiro="L. Hamilton",
9+
segundo="M. Verstappen",
10+
terceiro="S. Vettel"
11+
)

0 commit comments

Comments
 (0)