Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Parenteses

https://cursos.alura.com.br/forum/topico-duvida-selecao-nivel-3-186721

Com base no comentário acima, eu posso dizer que o uso do parêntese "extra" é para resguardar algum erro devido à quebra de linha, ou nada a ver? Por exemplo, isso aqui dá erro:

 selecao = (alunos.Idade > 10) & 
   (alunos.Idade < 20) | (alunos.Idade >= 40)
alunos[selecao]

Já isso aqui funciona:

((alunos.Idade > 10) & 
    (alunos.Idade < 20))

Isso aqui também funciona:

selecao = (alunos.Idade > 10) & (alunos.Idade < 20) | (alunos.Idade >= 40)

Porém, se eu quiser que o interpretador note que se trata de uma quebra de linha, sem usar parenteses a mais, então eu posso fazer isso:

selecao = (alunos.Idade > 10) & \
   (alunos.Idade < 20) | (alunos.Idade >= 40)
alunos[selecao]

Então, o "parenteses duplo" pode ser omitido em todos os casos semelhantes?

1 resposta
solução!

Sim, se o parênteses "duplo" está sendo usado por causa da quebra de linha.

Mas poderia ser o caso de usar parênteses "duplo" para mudar a precedência dos operadores e nesse caso a \ não resolveria.

por exemplo:

# isso avalia o '&' primeiro
selecao = (alunos.Idade > 10) & (alunos.Idade < 20) | (alunos.Idade >= 40)

Se eu quisesse, por algum motivo que o '|' fosse avaliado primeiro, precisaria fazer assim:


selecao = (alunos.Idade > 10) & ((alunos.Idade < 20) | (alunos.Idade >= 40))

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software