Modificando Funções
Em programação, funções são ferramentas dinâmicas que podem se adaptar a diferentes situações e necessidades. Elas não são apenas blocos de código fixos. É possível aprimorar funções para torná-las mais versáteis e fáceis de usar em diversos contextos.
Neste capítulo, serão exploradas algumas técnicas importantes para modificar funções, como o uso de argumentos padrão e argumentos nomeados.
Veja a seguir um exemplo simples de modificação de funções para aumentar sua utilidade em nosso sistema de gerenciamento de supermercado:
Argumentos Padrão
Argumentos padrão são um recurso útil em Python que permite especificar valores padrão para os parâmetros de uma função.
Na função apply_discount()
, o parâmetro discount
é definido como 0.10
por padrão. Isso significa que a função aplicará automaticamente um desconto de 10% caso não seja especificado outro valor. Como mostrado na variável default_discount_price
, é possível chamar a função apenas com o parâmetro price
.
No entanto, se necessário, é possível sobrescrever o valor padrão passando tanto o price
quanto um discount
personalizado (por exemplo, 0.20
para 20%), como demonstrado na variável custom_discount_price
.
# Define a function with a default `discount` argument def apply_discount(price, discount=0.10): discounted_price = price * (1 - discount) return discounted_price # Call the function without providing a `discount`, using the default value default_discount_price = apply_discount(100) print(f"Price after applying the default discount: ${default_discount_price}") # Call the function with a custom `discount` value custom_discount_price = apply_discount(100, 0.20) print(f"Price after applying a custom discount: ${custom_discount_price}")
Argumentos Nomeados
Argumentos nomeados em Python permitem passar argumentos explicitamente nomeando cada parâmetro, tornando as chamadas de função mais legíveis e flexíveis. Isso é especialmente útil quando uma função possui múltiplos parâmetros ou quando a ordem dos argumentos pode ser confusa.
No exemplo a seguir, tanto price
quanto discount
são especificados, enquanto o parâmetro tax
permanece com seu valor padrão, proporcionando flexibilidade sem comprometer a clareza.
# Function where `tax` has a default value def calculate_total(price, discount, tax=0.05): total = price * (1 + tax) * (1 - discount) return total # Calling the function using keyword arguments total_cost = calculate_total(price=100, discount=0.15) print(f"Total cost after applying discount: ${total_cost}")
Nota
A ordem dos parâmetros não importa quando eles são passados usando argumentos nomeados.
Swipe to start coding
Crie funções para calcular o custo total de um produto aplicando desconto e imposto, utilizando argumentos nomeados e valores padrão para maior flexibilidade.
- Definir
apply_discount(price, discount=0.05)
→ Retorna o preço após aplicar o desconto. - Definir
apply_tax(price, tax=0.07)
→ Retorna o preço após adicionar o imposto. - Definir
calculate_total(price, discount=0.05, tax=0.07)
→ Utilizaapply_discount()
eapply_tax()
para retornar o preço total com desconto e imposto aplicados. - Chamar
calculate_total(120)
utilizando o desconto e imposto padrão. - Chamar
calculate_total(100, discount=0.10, tax=0.08)
utilizando valores personalizados por meio de argumentos nomeados.
Requisitos de Saída
- Imprimir o resultado com valores padrão:
Total cost with default discount and tax: $<total_price_default>
- Imprimir o resultado com valores personalizados:
Total cost with custom discount and tax: $<total_price_custom>
Observação
Ao definir funções, coloque primeiro os parâmetros obrigatórios, seguidos dos parâmetros com valores padrão.
Ao chamar funções com argumentos nomeados, argumentos posicionais devem vir antes dos argumentos nomeados.
Solução
Obrigado pelo seu feedback!