Operadores Lógicos
Deslize para mostrar o menu
As pessoas dizem sim e sim, sim ou não, definitivamente não. Em Python, os operadores lógicos and, or e not expressam essas ideias formalmente e produzem valores booleanos (True/False) que você usará com comparações em if/while.
O que cada operador significa
Precedência
not tem maior precedência que and, que por sua vez tem maior precedência que or (not > and > or). Utilize parênteses em caso de dúvida.
Por exemplo, age >= 18 and has_id é True apenas se ambas as verificações forem verdadeiras:
123age = 21 has_id = True print(age >= 18 and has_id) # True
Tabela-Verdade
Uma tabela-verdade lista todos os possíveis valores lógicos das entradas e mostra o resultado de uma expressão lógica. É uma forma compacta de raciocinar sobre lógica sem executar o código.
Usando a Tabela
Se X for False e Y for True, então X and Y é False, X or Y é True e not X é True.
Valores de Retorno e Curto-Circuito
and e or nem sempre retornam os valores booleanos True ou False. Em vez disso, eles retornam um de seus operandos, e o Python interrompe a avaliação antecipadamente (curto-circuito) assim que o resultado final é garantido.
-
A and B:- Se
Afor falso, o resultado é garantido como falso, então o Python faz curto-circuito e retornaA(sem avaliarB).
- Se
-
Se
Afor verdadeiro, o resultado depende totalmente deB, então o Python avalia e retornaB. -
A or B:- Se
Afor verdadeiro, o resultado é garantido como verdadeiro, então o Python faz curto-circuito e retornaA(sem avaliarB).
- Se
-
Se
Afor falso, o resultado depende totalmente deB, então o Python avalia e retornaB. -
not Xsempre retorna um valor booleano real:TrueouFalse.
1234567891011121314151617# Choosing a display name for a user profile username = "" # user didn't set a custom name print(username or "Guest") # "Guest" → fallback to default name username = "Alice" print(username or "Guest") # "Alice" → custom name is used # Checking login attempts and access permissions login_attempts = 0 access_level = 123 print(login_attempts and access_level) # 0 → login not yet attempted login_attempts = 5 print(login_attempts and access_level) # 123 → user has access after attempts # Checking empty and non-empty values print(not 0, not "Hello") # True False → 0 is falsey, non-empty string is truthy
1. Preencha as lacunas com True ou False. Considere X = True, Y = False.
2. Qual afirmação corresponde à lógica clássica para "nem X nem Y"?
3. O que a expressão retorna?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo