Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Buscar os dois nomes com os operadores logicos?

Gostaria de saber se daria no exemplo aplicado, usar os operadores lógicos para buscar os dois nomes e como ficaria? Fiz com o or pq tem um nome que nao esta, mas se tivesse seria o and, certo?

if nome_1 or nome_2 in lista:
  print(f'{nome_1 or nome_2} está na lista')
else:
  print(f'{nome_1 or nome_2} não está na lista')
2 respostas
solução!

Oi! Tudo certo?

Sim, dá pra usar os operadores lógicos para buscar os dois nomes no exemplo que você trouxe, mas é importante ajustar a forma como a condição está escrita. No seu código, a linha:

if nome_1 or nome_2 in lista

O problema é que o Python entende isso assim:

"Se nome_1 for verdadeiro ou se nome_2 estiver na lista"

E aí vem a parte importante: em Python, qualquer texto (string) que não está vazio é considerado verdadeiro. Por exemplo:

nome = 'Ana'
if nome:
    print('Isso é verdadeiro')  # Vai mostrar isso

Então, mesmo que nome_1 não esteja na lista, o Python considera ele como "verdadeiro", porque tem texto dentro. E por isso seu código pode funcionar de um jeito que você não esperava.

Se você quiser saber se pelo menos um dos nomes está na lista, escreva assim:

if nome_1 in lista or nome_2 in lista:
    print('Um dos nomes está na lista')
else:
    print('Nenhum dos dois está na lista')

Agora, se você quiser saber se os dois nomes estão na lista, escreva assim:

if nome_1 in lista and nome_2 in lista:
    print('Os dois nomes estão na lista')
else:
    print('Pelo menos um deles não está na lista')

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

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

ah sim, me ajudou, muito obrigada!