Introdu o Linguagem Python 6
Introdu o Linguagem Python 6
FUNÇÕES EM PYTHON
0
Vanessa Cadan Scheffer
Ver anotações
IMPLEMENTANDO SOLUÇÕES POR MEIO DE FUNÇÕES
Como funções em Python são capazes de lidar com vários tipos de dinâmicas e implementar
soluções.
Fonte: Shutterstock.
DESAFIO
O desenvolvimento de um software pode envolver diversas pessoas e até mesmo
diferentes equipes. Orquestrar todos os envolvidos com as etapas do projeto é um
desafio em qualquer empresa. Para ajudar nessa missão, a engenharia de software
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 1/6
11/05/2023, 21:01 fmt_ldkls202_u1s3_lin_pro
software para o cliente, por exemplo, em cada sprint (intervalo de tempo, que
0
trabalha no layout da interface gráfica, um desenvolvedor trabalha nas
Ver anotações
funcionalidades front-end, enquanto outro trabalha no back-end e podemos ainda
ter um DBA (Data Base Administrator) cuidando das conexões com o banco de
dados.
sistema: calcular o total de vendas. Como seus negócios estão expandindo, o cliente
solicitou que o sistema seja capaz de receber valores em reais, dolár ou euro, e que
seja feita a conversão para o valor em reais. Como essa entrega demanda a
A moeda em que deve ser feito o cálculo (obrigatório, sendo padrão o real).
A porcentagem do desconto que será concedida na compra (opcional).
Uma conta não pode ter desconto e acréscimo ao mesmo tempo. Nessa primeira
versão, você deve considerar o valor do dólar em R$ 5,00 e do euro 5,70. Ainda não
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 2/6
11/05/2023, 21:01 fmt_ldkls202_u1s3_lin_pro
Qual nome você dará para a função? Como você especificará os parâmetros que a
função pode receber? A função retornará um valor ou somente imprimirá na tela o
0
RESOLUÇÃO
Ver anotações
Em seu novo projeto, você foi designado a implementar uma solução que envolve o
cálculo de uma compra. Para esse cálculo existem parâmetros que são obrigatórios
e outros opcionais, portanto a função deve ser capaz de lidar com esse tipo de
dinâmica. Observe uma possível implementação a seguir.
if desconto:
v_liquido = v_bruto - (v_bruto * (desconto / 100))
elif acrescimo:
v_liquido = v_bruto + (v_bruto * (acrescimo / 100))
else:
v_liquido = v_bruto
if moeda == 'real':
return v_liquido
elif moeda == 'dolar':
return v_liquido * 5
elif moeda == 'euro':
return v_liquido * 5.7
else:
print("Moeda não cadastrada!")
return 0
verbo no infinitivo "calcular", toda função executa ações, por isso, é uma boa
prática escolher verbos infinitos.
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 3/6
11/05/2023, 21:01 fmt_ldkls202_u1s3_lin_pro
A função foi desenvolvida de modo a receber cinco parâmetros, sendo três deles
obrigatórios e dois opcionais. Nessa implementação, para construir os parâmetros
opcionais atribuímos o valor None às variáveis, nesse caso, como tem um valor
padrão, mesmo sendo None, a função pode ser invocada sem a passagem desses
0
parâmetros.
Ver anotações
Usamos as estruturas condicionais (if) para verificar se foram passados valores para
Muitas vezes, uma solução pode ser implementada de diferentes formas. Observe
no código a seguir uma outra implementação, usando o **kwargs para os
argumentos opcionais. Nesse caso, um dicionário é recebido e precisa ter o valor
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 4/6
11/05/2023, 21:01 fmt_ldkls202_u1s3_lin_pro
if 'desconto' in kwargs:
desconto = kwargs['desconto']
v_liquido = v_bruto - (v_bruto * (desconto / 100))
0
elif 'acrescimo' in kwargs:
acrescimo = kwargs['acrescimo']
Ver anotações
v_liquido = v_bruto + (v_bruto * (acrescimo / 100))
else:
v_liquido = v_bruto
if moeda == 'real':
return v_liquido
elif moeda == 'dolar':
return v_liquido * 5
elif moeda == 'euro':
return v_liquido * 5.7
else:
print("Moeda não cadastrada!")
return 0
DESAFIO DA INTERNET
Ganhar habilidade em programação exige estudo e treino (muito treino). Acesse a
biblioteca virtual no endereço http://biblioteca-virtual.com/ e busque pelo livro:
MANZANO, J. A. N. G; OLIVEIRA, J. F. de. Estudo Dirigido de Algoritmos. 15. ed. São
Paulo: Érica, 2012. Na página 209, do capítulo 12 da referida obra: Sub-rotinas do
tipo função, você encontrará o exemplo 3, que te desafia a criar uma função
"calculadora". Dependendo do parâmetro que a função receber, uma operação
deve ser feita. O livro discute a solução usando fluxograma e português
estruturado, utilize o emulador e faça a implementação usando a linguagem
Python.
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 5/6
11/05/2023, 21:01 fmt_ldkls202_u1s3_lin_pro
3
main.py Python3
inflammation-01.csv
Escolher Arquivo Nenhum arquivo escolhido
Code Run Share
Remix
0
Ver anotações
https://colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=kaike.pin%40gmail.com&usuarioNome=KAIKE+DOMINGUES+PINTO&disciplinaDescricao=&atividadeId=3500911&atividadeDescricao=CW+-+INT… 6/6