2
respostas

Condicional + cálculo

Bom dia, pessoal!

Fiz um teste como o da aula e inseri um cálculo para informar o tempo que falta para poder dirigir. É uma boa prática fazer dessa forma? Teria alguma forma mais simples? Obrigado!

def permissao_3(idade_da_pessoa):
  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(idade_hoje)
2 respostas

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!

Olá,

entendo que está ótimo. Mas poderia incrementar outras verificações ou resolver de outras formas, tudo depende de outros contextos.

Um exemplo, seria:

def verifica_permissao_para_dirigir(idade_minima=18):
    idade = int(input('Qual é a sua idade? '))

    if idade >= idade_minima:
        print('Você tem permissão para tirar a sua licença de motorista!')
    else:
        tempo_para_dirigir = idade_minima - idade
        print(
            f'Você ainda não tem permissão para dirigir! Aguarde mais ' +
            f'{tempo_para_dirigir} ano(s) para poder tirar a sua licença de motorista!'
        )


if __name__ == '__main__':
    verifica_permissao_para_dirigir(16)

Fazendo assim,

def verifica_permissao_para_dirigir(idade_minima=18)

vc poderá informar, se quiser, uma idade mínima diferente de 18. Qdo não quiser informar idade mínima, é só chamar a função

verifica_permissao_para_dirigir()

Obs.: Não vi que já tinham respondido. Além disso, tinha tbm aquele errinho do argumento :}

[]'s