Fácil Python
Saudação com argumento nomeado
Enunciado
Crie uma função saudacao que receba nome e mensagem (com valor padrão "Olá") e retorne uma string no formato "{mensagem}, {nome}!". Chame a função duas vezes: uma passando apenas nome="Ana" e outra passando nome="Beto" e mensagem="Bom dia". Imprima os resultados.
Requisitos
- A função deve ter
nomecomo parâmetro obrigatório emensagemcom valor padrão"Olá". - A primeira chamada deve usar apenas
nome="Ana". - A segunda chamada deve usar
nome="Beto"emensagem="Bom dia". - As saídas devem ser exatamente
Olá, Ana!eBom dia, Beto!.
Código inicial
def saudacao(nome, mensagem="Olá"):
# Complete a função
pass
# Chame e imprima os resultados
Saída esperada
Olá, Ana!
Bom dia, Beto!
Ver dica
Use f-string para formatar a mensagem. Lembre-se de que o valor padrão já está definido, então não precisa passá-lo na primeira chamada.
Mostrar solução
def saudacao(nome, mensagem="Olá"):
"""Retorna uma saudação personalizada."""
return f"{mensagem}, {nome}!"
# Chamada com argumento nomeado apenas para nome
print(saudacao(nome="Ana"))
# Chamada com ambos os argumentos nomeados
print(saudacao(nome="Beto", mensagem="Bom dia"))
Passo a passo
- Definimos a função
saudacaocom dois parâmetros:nome(obrigatório) emensagem(com valor padrão"Olá"). - Dentro da função, usamos uma f-string para montar a string no formato
"{mensagem}, {nome}!". - Na primeira chamada, passamos apenas
nome="Ana". Comomensagemnão foi fornecida, o valor padrão"Olá"é usado. - Na segunda chamada, passamos
nome="Beto"emensagem="Bom dia", sobrescrevendo o padrão. - Imprimimos os resultados com
print.
Por que funciona
Argumentos nomeados permitem associar explicitamente cada valor ao parâmetro correspondente, independentemente da ordem. O valor padrão é aplicado quando o argumento não é fornecido, tornando a função flexível.
Erros comuns
- Esquecer o
fna string:return "{mensagem}, {nome}!"retorna o texto literal com chaves, não os valores. - Passar argumento posicional após nomeado:
saudacao(nome="Ana", "Bom dia")geraSyntaxError. - Omitir o
nome:saudacao(mensagem="Oi")geraTypeErrorporquenomeé obrigatório.
Outra forma de resolver
Poderia usar concatenação simples, mas menos legível:
return mensagem + ", " + nome + "!"
Prefira f-strings pela clareza.
Saída esperada
Olá, Ana!
Bom dia, Beto!