Argumentos posicionais e nomeados

Quando chamamos funções, fornecemos valores para os argumentos para que a função execute usando esses valores. É possível fornecer esses valores tanto com argumentos posicionais quanto nomeados:
def rectangle(h, w, val=0):
    return [[val] * w] * h

print(rectangle(2, 3, 1))
# [[1, 1, 1], [1, 1, 1]]
def rectangle(h, w, val=0):
    return [[val] * w] * h

print(rectangle(2, w=3, val=1))
# [[1, 1, 1], [1, 1, 1]]
Podemos fornecer valores para argumentos especificando os nomes desses argumentos, como fizemos no segundo exemplo (val=1 ou w=3).
Isto é especialmente útil para funções que têm muitos argumentos e a maioria deles possui valores padrão. Nesse caso, podemos fornecer os argumentos nomeados apenas para os parâmetros que precisamos e ignorar o restante.
Observe que os argumentos nomeados não precisam ser fornecidos na mesma ordem dos argumentos da função. Eles podem ter uma ordem arbitrária, desde que seus nomes correspondam aos argumentos da função. É também importante notar que argumentos posicionais não podem seguir argumentos nomeados. Ao chamar uma função, primeiro especificamos os argumentos posicionais e somente depois os argumentos nomeados. Consegue pensar por que isso acontece? 🤔

Desafio

Dada a função que imprime as propriedades de um paciente, chame-a 3 vezes com as seguintes ordens de argumentos:
  1. name, age, height
  1. age, name, height
  1. height, age, name
As saídas de cada chamada precisam ser as mesmas, mas você pode usar tanto argumentos posicionais quanto nomeados para chamar a função.
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue