1
resposta

Vocês veem algum problema em usar dessa forma?

Nesse exercício a minha solução foi:

#Exercício 1
from datetime import date

def idade():
nascimento = int(input('Digite o ano de nascimento: ')) #cast para int
ano_atual = date.today().year # já é int; não precisa de int(...)
return ano_atual - nascimento

print(idade())

O gabarito é:

def contar_caracteres(palavra):
return len(palavra)

texto = input("Digite uma palavra: ")
print(f"Essa palavra tem {contar_caracteres(texto)} caracteres.")

A grande diferença a meu ver é que na minha solução o argumento é processado dentro da função. Testei e funcionou, mas não sei se existe uma boa prática associada a solução do gabarito.

1 resposta

Olá, João, tudo bem?

Pode ficar tranquilo: não há erro no seu código, ele funciona sim.

A diferença em relação ao gabarito está mais em boa prática do que em certo ou errado. A ideia é evitar colocar o input dentro da função, para que ela fique responsável só pelo cálculo.

Quando a função recebe o valor por parâmetro, ela fica mais fácil de reaproveitar depois, seja com dados de uma variável, de um arquivo ou até de um banco de dados.

Para esse exercício, sua solução está correta e atende perfeitamente. O legal agora é começar a perceber esses detalhes, porque eles aparecem bastante conforme os códigos vão crescendo.

Bons estudos!

Sucesso

Imagem da comunidade