Python Conditional Statements: From if to match case & Comparisons

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Python Conditional Statements: The Complete Guide

Conditional statements are a fundamental building block of programming. They allow your code to make decisions and execute specific actions only when certain conditions are met. Python provides developers with a powerful set of tools for working with conditional logic.

Types of Conditional Statements

Python offers the following types of conditional statements:

  • Classic if, elif, and else constructs
  • Logical operators: and, or, not
  • Comparison operators: ==, !=, <, >, is, in
  • Structural pattern matching with match case (Python 3.10+)

Each of these tools has its own use cases and is suited for solving specific programming problems.

Basic Conditional Constructs

The if, elif, else Structure

The foundation of conditional logic in Python is the if-elif-else construct:

x = 10
if x > 0:
    print("Positive")
elif x == 0:
    print("Zero")
else:
    print("Negative")

Python uses indentation to define code blocks instead of curly braces. Proper indentation is critical because it's part of the language's syntax.

Syntax Essentials

Indentation in Python must be consistent throughout your code. It's recommended to use 4 spaces for each nesting level. Mixing spaces and tabs can lead to runtime errors.

Python Comparison Operators

Python supports a wide range of comparison operators, allowing you to create complex conditions:

Arithmetic Comparisons

  • == checks if values are equal
  • != checks if values are not equal
  • < and > compare less than and greater than
  • <= and >= include equality in the comparison

Special Operators

The is operator checks object identity in memory, not value equality. The in operator checks if an element belongs to a collection.

s1 = "hello"
s2 = "hello"
print(s1 == s2)  # True - value equality
print(s1 is s2)  # True for interned strings

String Comparison and Gotchas

Python automatically interns short strings, meaning identical strings may reference the same object in memory. This affects the result when using is for comparison.

Logical Operators: and, or, not

Logical operators let you combine multiple conditions into a single expression:

a = 5
b = 10
if a > 0 and b > 0:
    print("Both are positive")

How Logical Operators Work

  • and returns True only when both conditions are true
  • or returns True if at least one condition is true
  • not inverts the boolean value

Short-Circuit Evaluation

Python uses short-circuit evaluation when evaluating logical expressions. This means if the result is already determined by the first operand, the second operand is not evaluated.

Nested Conditional Statements

You can nest conditional statements inside each other to create more complex logic:

x = 15
if x > 0:
    if x < 10:
        print("Less than 10")
    else:
        print("10 or greater")

Best Practices

Excessive nesting can hurt code readability. Try to limit yourself to 3-4 levels of nesting, and extract complex logic into separate functions when needed.

match case in Python 3.10+

Introduction to Structural Pattern Matching

Introduced in Python 3.10, the match case statement brings structural pattern matching to the language. It's a powerful alternative to long if-elif chains, especially when dealing with complex data structures:

def process_command(command):
    match command:
        case "start":
            print("Starting...")
        case "stop":
            print("Stopping...")
        case _:
            print("Unknown command")

Match case can also match against patterns in lists, dictionaries, and custom objects, making it incredibly versatile for data processing tasks.

Blogs

Book Recommendations