Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Operadores Lógicos | Booleanos e Comparações
Tipos de Dados em Python

bookOperadores Lógicos

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 serão utilizados com comparações em if/while.

Significado de Cada Operador

Precedência

not possui maior precedência que and, que por sua vez possui 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:

123
age = 21 has_id = True print(age >= 18 and has_id) # True
copy

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 analisar 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 & Curto-circuito (Juntos)

and e or nem sempre retornam as palavras True/False, eles retornam um de seus operandos, e o Python pode parar a avaliação assim que o resultado for conhecido.

  • A and B:

  • Se A for falso, toda a expressão é falsa e o resultado é A (Python não avalia B);

  • Se A for verdadeiro, o resultado depende de B e a expressão é avaliada para B.

  • A or B:

  • Se A for verdadeiro, a expressão é verdadeira e o resultado é A (Python não avalia B);

  • Se A for falso, o resultado depende de B e a expressão é avaliada para B.

  • not X sempre retorna um valor Booleano real: True ou False.

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
copy

1. Preencha os espaços 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?

question-icon

Preencha os espaços com True ou False. Considere X = True, Y = False.

X and Y
not X

X or Y

question mark

Qual afirmação corresponde à lógica clássica para "nem X nem Y"?

Select the correct answer

question mark

O que a expressão retorna?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.45

bookOperadores 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 serão utilizados com comparações em if/while.

Significado de Cada Operador

Precedência

not possui maior precedência que and, que por sua vez possui 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:

123
age = 21 has_id = True print(age >= 18 and has_id) # True
copy

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 analisar 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 & Curto-circuito (Juntos)

and e or nem sempre retornam as palavras True/False, eles retornam um de seus operandos, e o Python pode parar a avaliação assim que o resultado for conhecido.

  • A and B:

  • Se A for falso, toda a expressão é falsa e o resultado é A (Python não avalia B);

  • Se A for verdadeiro, o resultado depende de B e a expressão é avaliada para B.

  • A or B:

  • Se A for verdadeiro, a expressão é verdadeira e o resultado é A (Python não avalia B);

  • Se A for falso, o resultado depende de B e a expressão é avaliada para B.

  • not X sempre retorna um valor Booleano real: True ou False.

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
copy

1. Preencha os espaços 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?

question-icon

Preencha os espaços com True ou False. Considere X = True, Y = False.

X and Y
not X

X or Y

question mark

Qual afirmação corresponde à lógica clássica para "nem X nem Y"?

Select the correct answer

question mark

O que a expressão retorna?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
some-alt