Conditionals

Back

Loading concept...

Python Control Flow: The Traffic Light of Code 🚦

Imagine you’re at a crossroads. Left leads to the park, right leads to school, straight goes to the bakery. How do you decide which way to go? Conditionals in Python work exactly like this — they help your code make decisions!


The Universal Analogy: The Magic Gatekeeper

Think of conditionals as a magic gatekeeper at a castle. The gatekeeper asks questions:

  • “Do you have the password?” → If yes, enter!
  • “Are you a friend?” → If yes, come in. If no, go away!

Your Python code has its own gatekeeper. Let’s meet them!


1. If Statements: The Simple Question

The gatekeeper asks one question. If the answer is “yes” (True), you get in.

How It Works

age = 10

if age >= 5:
    print("You can ride!")

What happens:

  • The gatekeeper checks: “Is age 5 or more?”
  • Age is 10. Yes! That’s 5 or more.
  • So it prints: You can ride!

The Pattern

if condition:
    # do this when True

Key rule: The code under if only runs when the condition is True.


2. If-Else: Two Doors

Now the gatekeeper has two doors. One for “yes” and one for “no.”

How It Works

has_ticket = False

if has_ticket:
    print("Welcome to the movie!")
else:
    print("Sorry, buy a ticket first!")

What happens:

  • Gatekeeper checks: “Do you have a ticket?”
  • has_ticket is False (no ticket!)
  • Goes through the else door: Sorry, buy a ticket first!

3. If-Elif-Else: Many Doors

Sometimes there are many choices, not just yes or no. Like a restaurant menu!

How It Works

score = 85

if score >= 90:
    print("Grade: A")
elif score >= 80:
    print("Grade: B")
elif score >= 70:
    print("Grade: C")
else:
    print("Keep trying!")

What happens:

  • Is 85 >= 90? No, skip.
  • Is 85 >= 80? Yes! Print Grade: B
  • Stop checking. We found our answer!

The Flow

graph TD A["Start: score = 85"] --> B{score >= 90?} B -->|No| C{score >= 80?} B -->|Yes| D["Grade: A"] C -->|Yes| E["Grade: B"] C -->|No| F{score >= 70?} F -->|Yes| G["Grade: C"] F -->|No| H["Keep trying!"]

4. Ternary Operator: The One-Liner Magic

Sometimes you want to make a quick decision in one line. Like a shortcut!

The Long Way

age = 15
if age >= 18:
    status = "adult"
else:
    status = "minor"

The Shortcut (Ternary)

age = 15
status = "adult" if age >= 18 else "minor"

Result: status is "minor"

The Pattern

value = this_if_true if condition else this_if_false

Think of it as asking: “Is this true? Pick left. Otherwise, pick right.”


5. Truthy and Falsy Values: The Invisible Truth

Here’s a secret: Python doesn’t just check True or False. It checks if things feel true or false!

Falsy Values (Feel False)

These are empty or nothing:

Value Why Falsy
False Literally false
0 Zero = nothing
"" Empty string
[] Empty list
{} Empty dictionary
None Nothing at all

Truthy Values (Feel True)

Everything else! If it has something, it’s truthy.

Real Example

name = ""

if name:
    print(f"Hello, {name}!")
else:
    print("Hello, stranger!")

What happens:

  • name is "" (empty string)
  • Empty feels falsy
  • Prints: Hello, stranger!

Another Example

friends = ["Alice", "Bob"]

if friends:
    print("You have friends!")
else:
    print("Time to make friends!")

What happens:

  • friends has items (not empty)
  • That feels truthy
  • Prints: You have friends!

6. Short-Circuit Evaluation: The Lazy Gatekeeper

This gatekeeper is lazy (in a smart way). They stop checking as soon as they know the answer!

With and — Both Must Be True

has_key = False
door_open = True

if has_key and door_open:
    print("Enter!")

What happens:

  • Checks has_key first → It’s False
  • Gatekeeper thinks: “If the first is False, both can’t be True!”
  • Stops immediately. Doesn’t even check door_open!

With or — One Must Be True

is_vip = True
has_ticket = False

if is_vip or has_ticket:
    print("Welcome!")

What happens:

  • Checks is_vip first → It’s True
  • Gatekeeper thinks: “One True is enough!”
  • Stops immediately. Doesn’t check has_ticket!

Why This Matters

You can use it for safe checks:

items = []

# Safe! Checks if items exist first
if items and items[0] == "apple":
    print("First item is apple!")

If items is empty, Python never tries items[0] (which would crash!).


7. Chained Comparisons: The Elegant Way

Python lets you chain comparisons like math class!

The Old Way

age = 15

if age >= 13 and age <= 19:
    print("You're a teenager!")

The Python Way

age = 15

if 13 <= age <= 19:
    print("You're a teenager!")

Same result, but cleaner!

More Examples

x = 5

# Check if x is between 1 and 10
if 1 < x < 10:
    print("x is in range!")

# Check if all three are equal
a = b = c = 7
if a == b == c:
    print("All equal!")

The Flow

graph TD A["age = 15"] --> B{13 <= 15?} B -->|Yes| C{15 <= 19?} C -->|Yes| D["Teenager!"] B -->|No| E["Not a teen"] C -->|No| E

Putting It All Together

Let’s build a game entry checker using everything we learned!

age = 14
has_permission = True
coins = 0

# Chain comparison for age
is_right_age = 10 <= age <= 18

# Short-circuit: check coins only if
# age and permission are okay
if is_right_age and has_permission:
    # Ternary for quick message
    msg = "Play!" if coins else "Need coins!"
    print(msg)
elif is_right_age:
    print("Get parent permission!")
else:
    print("Age not allowed.")

What happens:

  1. is_right_age → 10 <= 14 <= 18? True!
  2. is_right_age and has_permission → True and True? True!
  3. coins is 0 → Falsy!
  4. Ternary picks: "Need coins!"
  5. Prints: Need coins!

Quick Reference Card

Concept Pattern Example
If if x: if age > 5:
If-Else if x: ... else: if ok: go() else: stop()
Elif if x: ... elif y: if a: ... elif b:
Ternary a if x else b "yes" if ok else "no"
Truthy Non-empty/non-zero if my_list:
Falsy Empty/zero/None 0, "", [], None
Short-circuit and/or stops early x and y
Chained a < b < c 1 < x < 10

You Did It! 🎉

You just learned how Python makes decisions! Remember:

  1. If = One question, one action
  2. If-Else = Two paths to choose
  3. If-Elif-Else = Many paths to choose
  4. Ternary = Quick one-line decision
  5. Truthy/Falsy = Empty feels false, stuff feels true
  6. Short-circuit = Stop checking when you know the answer
  7. Chained = Compare multiple things elegantly

Now go write some code that thinks! 🚀

Loading story...

Story - Premium Content

Please sign in to view this story and start learning.

Upgrade to Premium to unlock full access to all stories.

Stay Tuned!

Story is coming soon.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.