2
respostas

[Dúvida] Booleano

Tenho uma dúvida em relação a essa tarefa: "Sabendo disso, crie uma lista chamada idades para armazenar várias idades. Em seguida, passe essa lista como parâmetro para uma função chamada verifica_se_pode_dirigir e para cada idade dentro da lista, verifique se a idade é maior ou igual a 18 anos. Se for, exiba a idade e a mensagem Tem permissão. Caso contrário, exiba a mensagem Não tem permissão."

Utilizei o seguinte script e deu certo: idades =[10,19,22,17] def verifica_se_pode_dirigir (idades): for idade in idades: if idade >= 18: print(f'{idade} anos, tem permissão para dirigir') else: print (f'{idade} anos, não tem permissão para dirigir')

Entretanto, tentei reformular o script utilizando o booleano e não funcionou:

permissoes = [] idades = [10,20,18,15]

def verificar_se_pode_dirigir (idades,permissoes): for idade in idades: if idade >= 18: permissoes.append(True) else: permissoes.append(False) for permissao in permissoes: if permissao == True: print (f'{idade} anos, está habilitado a dirigir') else: print (f'{idade} anos, Motorista não está habilitado a dirigir')

Ele não está retornando as idades fornecidas na lista, porém, retorna corretamente as condições (pode ou não dirigir).

Alguém pode me ajudar? obrigado desde já.

2 respostas

Mudei um pouco o código, adicionei a variavel i pra servir de contador, assim podemos usar para acessar as posições dentro da lista de permissoes e utilizar somente um for, antes a cada iteração ele printava a quantidade de vezes do total de itens dentro de permissoes. E também não precisa receber parâmetros na função pois já são variáveis globais.

idades = [10, 20, 18, 15]
permissoes = []


def verifica_se_pode_dirigir():
    i = 0
    for idade in idades:
        if idade >= 18:
            permissoes.append(True)
        else:
            permissoes.append(False)

        if permissoes[i] is True:
            print(f'{idade} anos, está habilitado a dirigir')
        else:
            print(f'{idade} anos, não está habilitado a dirigir')

        i += 1


verifica_se_pode_dirigir()

Olá Felipe! Acredito que deva ser algo relacionado a posição do índice da lista. Testei o script e mostrou a última posição (15 anos) nas quatro respostas.