Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Logical Operators | test section
fix fill code

bookLogical Operators

Deslize para mostrar o menu

People say yes and yes, yes or no, definitely not. In Python, the logical operators and, or, and not express these ideas formally and produce Booleans (True/False) you'll use with comparisons in if/while.

What Each Operator Means

Precedence

not binds tighter than and, which binds tighter than or (not > and > or). Use parentheses when in doubt.

For instance, age >= 18 and has_id is True only if both checks succeed:

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

Truth Table

A truth table lists all possible truth values of inputs and shows the resulting output of a logical expression. It's a compact way to reason about logic without running code.

Using the Table

If X is False and Y is True, then X and Y is False, X or Y is True, and not X is True.

Return Values & Short-Circuiting (Together)

and and or don't always yield the words True/False, they return one of their operands, and Python may stop early once the result is known.

  • A and B:

    • If A is falsey, the whole expression is false and the result is A (Python does not evaluate B);
    • If A is truthy, the result depends on B and the expression evaluates to B.
  • A or B:

    • If A is truthy, the expression is true and the result is A (Python does not evaluate B);
    • If A is falsey, the result depends on B and the expression evaluates to B.
  • not X always returns an actual Boolean: True or 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. Fill the blanks with True or False). Let X = True, Y = False.

2. Which statement matches classical logic for "neither X nor Y"?

3. What does the expression return?

question-icon

Fill the blanks with True or False). Let X = True, Y = False.

X and Y  not X  X or Y
question mark

Which statement matches classical logic for "neither X nor Y"?

Selecione a resposta correta

question mark

What does the expression return?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Seção 1. Capítulo 1
some-alt