Olá Matheus, tudo bem? Espero que sim!
A função vai funcionar da forma como foi escrita, mas a variável idade_da_pessoa que está sendo passada como um parâmetro não foi utilizada, portanto quando fizer permissao_3(idade_hoje), o valor passado para a função não vai interferir em nada no código. Sugiro uma das mudanças que proponho a seguir.
A primeira opção é passando um argumento para a função, e utilizando esse valor na comparação. Repare que o parâmtro da função é idade_da_pessoa, e ele é utilizado para o cálculo da variável anos_para_dirigir. Fora da função foi criada uma variável idade_hoje, e ao passar essa variável para a função permissao_3(), o valor será atribuído à variável idade_da_pessoa dentro da função.
def permissao_3(idade_da_pessoa):
anos_para_dirigir = 18 - idade_da_pessoa #calculando a diferença entre a idade digitada e a idade permitida para dirigir
if idade_da_pessoa >= 18:
print('Você tem permissão para dirigir!')
else:
print(f'Você ainda não tem permissão para dirigir! Aguarde mais {anos_para_dirigir} ano(s) para poder tirar a sua licença de motorista!')
idade_hoje = 41
permissao_3(idade_hoje)
A segunda opção é utilizar o input(), e como o valor será inserido ao rodar a função, não é necessário passar nenhum parâmetro adicional.
def permissao_3():
idade_hoje = int(input('Qual é a sua idade? '))
anos_para_dirigir = 18 - idade_hoje #calculando a diferença entre a idade digitada e a idade permitida para dirigir
if idade_hoje >= 18:
print('Você tem permissão para dirigir!')
else:
print(f'Você ainda não tem permissão para dirigir! Aguarde mais {anos_para_dirigir} ano(s) para poder tirar a sua licença de motorista!')
permissao_3()
Dessa forma, a variável idade_hoje será inicializada dentro da função através do input, e basta chamar a função sem nenhum parâmetro.
Bons estudos!