2
respostas

[Dúvida] Tipo Booleano - Exemplo 2 da Aula

O código não retorna igual o modelo apresentado pelo professor. Não carrega nada Segue o meu código

idades = [20,14,40]

def verifica(idades):
  permissoes = []
for permissao in permissoes:
  if permissao == True:
    print('Tem permissão para dirigir')
  else:
    print('Não tem permissão para dirigir')

verifica(permissoes)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá, Coraci! Tudo bem?

Primeiramente, vamos relembrar a ideia desse código: temos que verificar quais idades são maiores ou igual a 18, e então armazenar numa lista chamada permissoes, sendo True para as que são maiores e False para as que são menores.

O que está acontecendo no seu código é o seguinte:

  • a variável permissoes foi criada dentro da função verifica(), e mesmo que você chame ela, ela só vai existir dentro da função, não poderá ser utilizada no restante do código.
  • por isso, quando você chamada a função verifica(permissoes), você está passando uma lista que não foi criada ainda, além do que deveria estar passando a lista de idades também.

Agora, vamos verificar o que está acontecendo em cada trecho do código.

Sobre a função verifica():

Ela está diferente do que foi proposto em aula, pois na sua está criando uma lista vazia chamada permissoes. A ideia dela é verificar quais idades são maiores ou iguais a 18. Nesse sentido, vamos criar uma célula contendo este código:

permissoes = []
idades = [20, 14, 40]  

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

verifica_se_pode_dirigir(idades, permissoes)

Como podemos verificar, também criamos as variáveis permissoes e idades antes da função e chamamos a função verifica_se_pode_dirigir(), passando as listas de idades e permissoes.

Como criamos a variável permissoes no início, passamos ela para que ela seja preenchida e retorne para que possamos utilizá-la em outras partes do código.

Agora que preenchemos a lista de permissões, temos que os resultados.

Exibir quais idades têm permissão para dirigir ou não:

Para isso, podemos simplesmente reaproveitar o seu código, onde vamos percorrer a lista permissoes que preenchemos na função verifica_se_pode_dirigir(), mas em outra célula:

for permissao in permissoes:
  if permissao == True:
    print('Tem permissão para dirigir')
  else:
    print('Não tem permissão para dirigir')

Saída:

Tem permissão para dirigir

Não tem permissão para dirigir

Tem permissão para dirigir

 

Espero ter ajudado, Coraci. Se tiver mais alguma dúvida, estou à disposição. Bons estudos =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado, Marcelo pela ajuda. Consegui entender a explicação.