Considere o código em Python 3 a seguir.O resultado da execu...

Próximas questões
Com base no mesmo assunto
Q3952850 Programação
Considere o código em Python 3 a seguir.

Q93.png (222×117)

O resultado da execução desse código será
Alternativas

Comentários

Veja os comentários dos nossos alunos

Em python, o comando AND é verificado antes de OR

Então fica:

(A ou B) e not C

Not C= True

(AouB) e True

A=verdadeiro

B=falso

True e True= True

Tem de conhecer o que o Python considera Falso e Verdadeiro em uma sentença lógica

--> a or b and not c

a = x = 0 (False/Falso)

b = y = [1, 2] (True/Verdadeiro) -> objetos não-vazios

c = z = False(False/Falso)

Substituindo:

False or True and True -> False or True -> True 

Fato interessante:

bool(booleanos) em Python é subclasse de inteiros pode visualizar o Method Resolution Order da classe bool pelo método "bool.mro()"

Teste: 2**False e 2**True ou 2*False e 2*True

Outro fato interessante é como um objeto pode ser falso? Pelo dunder method/ special method __len__ ou __bool__, mas se o __bool__ não tiver sido implementado o __len__ vai ser usado.

E se a classe não implementa nada e for só um objeto? E verdadeiro tb seu valor lógico.

Continuarei em outro comentário...

[Continuando]

Código para visualizar melhor com exemplos de diferentes implementações

"""

class exemplo1:

  ...

class exemplo2:

  def __len__(self):

    return 0

class exemplo3:

  def __len__(self):

    return 1

class exemplo4:

  def __len__(self):

    return 0

  def __bool__(self):

    return True

ex1 = exemplo1()

ex2 = exemplo2()

ex3 = exemplo3()

ex4 = exemplo4()

cont = 1

for i in ex1, ex2, ex3, ex4: print(f"ex{cont}\n", "Valor lógico: Verdadeiro" if i else "Valor lógico: Falso", "\n"); cont+=1

   

"""

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo