Question 31 markMCQSection A

Which of the following expressions in Python evaluates to True ?

Review of Python Basics (Class XI Recap)
Logical Operators (and)

Options

(A)2>3 and 2<3
(B)3>1 and 2
(C)3>1 and 3>2
(D)3>1 and 3<2

Official answer

Option C — 3>1 and 3>2 evaluates to True, because both relational sub-expressions (3>1 and 3>2) are individually True, so their logical and is True.

Answer keywords:logical operatorsand operatorrelational operatorsshort-circuit evaluationboolean expressionsPython operators

Marking scheme

  1. 1.1 mark: for correctly selecting option C.

Hint

Remember: `and` returns the actual second operand (not necessarily a boolean) if the first operand is truthy — check the literal output, not just truthiness.

Quick oral answer

Option C: 3>1 and 3>2 evaluates to True and True, which is True; the other options either give False or return a non-boolean truthy value.

Common mistakes

  1. 1.Believing option B evaluates to True because 2 is truthy — but `and` returns the actual operand value (2), not the boolean True.
  2. 2.Not evaluating relational operators (>, <) before applying and.

Analysis and explanation

This question tests precise evaluation of relational and logical (and) operators together, including the subtlety of Python's short-circuit behaviour.


Concept

  • and returns the second operand if the first is truthy; the result is a strict boolean (True/False) only when both operands themselves are booleans.
  • Evaluate each option's operands strictly left to right.

Option-by-option evaluation

  • A: 2>3 and 2<3 → False and True → short-circuits to False (first operand is False, so and returns it directly).
  • B: 3>1 and 2 → True and 2 → since the first operand is truthy, and returns the second operand as-is, i.e., the integer 2 (not the boolean True) — truthy, but the expression does not literally evaluate to True.
  • C: 3>1 and 3>2 → True and True → True. Correct.
  • D: 3>1 and 3<2 → True and False → False.

Exam trap

  • Many students think option B 'evaluates to True' because 2 is truthy; but the actual value RETURNED by and in B is the integer 2, not the boolean True, so B does not satisfy 'evaluates to True' literally.

Interesting facts

In Python, `and` and `or` are short-circuit operators that return one of their operands (not necessarily True/False), unlike many other languages where logical operators always return a strict boolean.

This operand-returning behaviour of and/or is often used as a compact way to write default-value expressions, e.g., `x = a or default`.

Question details

Q3 of 48 questions

Board
CBSE
Class
Class 12
Subject
Computer Science
Year
2026
Section
Section A
Marks
1
Type
MCQ
Chapter
Review of Python Basics (Class XI Recap)
Topic
Logical Operators (and)
Bloom's level
apply
Syllabus topic
Unit 1: Computational Thinking and Programming – 2 — Operators: Relational and Logical Operators
Author
CBSE
Reviewed by
Padhantu Academic Team

Spotted a mistake or something unclear?

Tell us and we will fix it.

Frequently asked questions

Does 'and' in Python always return True or False?

No. Python's and operator returns one of its actual operands: if the first operand is falsy, it returns the first operand; if truthy, it returns the second operand — the result is only a strict boolean if both operands were booleans.

Why doesn't 3>1 and 2 evaluate to the literal value True?

Because 3>1 is True (truthy), so 'and' returns the second operand as-is, which is the integer 2, not the boolean True. The expression is truthy, not literally True.