Read And Learn
Python
Chapter 2: Control Flow, Loops & Functions
An In-Depth Comprehensive Guide for Beginners
1. Control Flow: Making Decisions
In programming, a script often needs to make decisions based on dynamic input or
changing conditions. This is known as control flow. Python achieves this using if ,
elif , and else statements. An if statement evaluates a boolean expression.
If the expression evaluates to True , the indented block of code directly beneath it
executes.
temperature = 28
if temperature > 30:
print("It's a hot day!")
elif temperature > 20:
print("The weather is pleasant.")
else:
print("It's a bit cold.")
Notice the indentation. Unlike C++ or JavaScript, which use curly braces {} to
define blocks of code, Python relies strictly on whitespace indentation. A standard
indent is exactly 4 spaces. This design forces developers to write cleanly formatted,
easily readable code.
2. Loops: The Power of Iteration
Loops allow us to execute a block of code multiple times without rewriting it. Python
provides two primary types of loops: the for loop and the while loop.
The for Loop
A for loop is used for iterating over a sequence (such as a list, tuple, dictionary,
or string). It executes its block of code once for each item in the sequence.
# Iterating over a string
for char in "Python":
print(char)
# Using the range() function
for i in range(5):
print(f"Iteration number: {i}")
The while Loop
A while loop repeatedly executes a block of code as long as a specified boolean
condition remains True . It is crucial to ensure that the condition eventually
becomes False ; otherwise, you will create an infinite loop.
countdown = 5
while countdown > 0:
print(countdown)
countdown -= 1
print("Liftoff!")
3. Collections: Lists and Tuples
So far, we have only assigned a single value to a variable. Collections allow you to
store multiple items in a single variable.
Lists
A list is a mutable (changeable), ordered sequence of elements enclosed in square
brackets [] . Lists can contain items of different data types, including other lists.
my_list = ["Apple", 42, True, 3.14]
my_list.append("Banana") # Adds to the end
my_list[1] = 50 # Modifies the second element
print(my_list)
Tuples
A tuple is similar to a list, but it is immutable. Once a tuple is created, its elements
cannot be added, removed, or changed. Tuples are enclosed in parentheses () .
coordinates = (10.0, 25.5)
print("X-axis:", coordinates[0])
4. Dictionaries: Key-Value Storage
A dictionary ( dict ) is an unordered collection of data stored in key-value pairs.
Dictionaries are incredibly fast for looking up data and are enclosed in curly braces
{} .
user_profile = {
"username": "coder_99",
"email": "coder@[Link]",
"is_active": True
}
# Accessing values via keys
print("Email:", user_profile["email"])
# Adding a new key-value pair
user_profile["age"] = 30
5. Functions: Reusable Code Blocks
A function is a named block of code designed to perform a specific task. By using
functions, you follow the DRY (Don't Repeat Yourself) principle. In Python, functions
are defined using the def keyword.
def greet_user(name, greeting="Hello"):
# The 'greeting' parameter has a default value
return f"{greeting}, {name}!"
# Calling the function
message1 = greet_user("Alice")
message2 = greet_user("Bob", "Welcome")
print(message1)
print(message2)
Functions can return values using the return statement. Once a return
statement is executed, the function immediately terminates, and the specified value
is passed back to the caller.
6. Practice Exercises
To master these concepts, apply them in the following 45 rigorous practice
exercises.
Exercise 1: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 1: If-Else Conditional Logic
value = 7
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 2: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 2: For Loop Iteration
total = 0
for num in range(1, 6):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 3: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 3: While Loop Mechanics
count = 5
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 4: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 4: List Manipulation
data_list = [10, 20, 30]
data_list.append(20)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 5: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 5: Dictionary Operations
config = {'id': 5, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 6: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 6: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 6
res = calculate_multiplier(8)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 7: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 7: If-Else Conditional Logic
value = 49
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 8: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 8: For Loop Iteration
total = 0
for num in range(1, 7):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 9: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 9: While Loop Mechanics
count = 3
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 10: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 10: List Manipulation
data_list = [10, 20, 30]
data_list.append(50)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 11: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 11: Dictionary Operations
config = {'id': 11, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 12: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 12: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 12
res = calculate_multiplier(4)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 13: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 13: If-Else Conditional Logic
value = 91
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 14: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 14: For Loop Iteration
total = 0
for num in range(1, 8):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 15: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 15: While Loop Mechanics
count = 5
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 16: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 16: List Manipulation
data_list = [10, 20, 30]
data_list.append(80)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 17: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 17: Dictionary Operations
config = {'id': 17, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 18: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 18: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 18
res = calculate_multiplier(10)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 19: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 19: If-Else Conditional Logic
value = 133
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 20: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 20: For Loop Iteration
total = 0
for num in range(1, 4):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 21: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 21: While Loop Mechanics
count = 3
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 22: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 22: List Manipulation
data_list = [10, 20, 30]
data_list.append(110)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 23: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 23: Dictionary Operations
config = {'id': 23, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 24: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 24: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 24
res = calculate_multiplier(6)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 25: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 25: If-Else Conditional Logic
value = 175
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 26: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 26: For Loop Iteration
total = 0
for num in range(1, 5):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 27: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 27: While Loop Mechanics
count = 5
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 28: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 28: List Manipulation
data_list = [10, 20, 30]
data_list.append(140)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 29: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 29: Dictionary Operations
config = {'id': 29, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 30: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 30: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 30
res = calculate_multiplier(2)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 31: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 31: If-Else Conditional Logic
value = 217
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 32: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 32: For Loop Iteration
total = 0
for num in range(1, 6):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 33: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 33: While Loop Mechanics
count = 3
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 34: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 34: List Manipulation
data_list = [10, 20, 30]
data_list.append(170)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 35: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 35: Dictionary Operations
config = {'id': 35, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 36: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 36: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 36
res = calculate_multiplier(8)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 37: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 37: If-Else Conditional Logic
value = 259
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 38: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 38: For Loop Iteration
total = 0
for num in range(1, 7):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 39: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 39: While Loop Mechanics
count = 5
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Exercise 40: List Manipulation
Problem Statement: Develop a Python script that applies list manipulation
to compute a result and display it.
Python Code Solution:
# Exercise 40: List Manipulation
data_list = [10, 20, 30]
data_list.append(200)
data_list.reverse()
print('Modified List:', data_list)
Detailed Explanation: This exercise tests your grasp of list manipulation.
Lists are mutable. We use the append() method to add a new integer to the
end of the list, and then reverse() to invert the order of all elements in-place.
Exercise 41: Dictionary Operations
Problem Statement: Develop a Python script that applies dictionary
operations to compute a result and display it.
Python Code Solution:
# Exercise 41: Dictionary Operations
config = {'id': 41, 'status': 'pending'}
config['status'] = 'active'
config['retries'] = 3
print('Configuration:', config)
Detailed Explanation: This exercise tests your grasp of dictionary
operations. Dictionaries map keys to values. We access the 'status' key to
modify its existing value, and we define a brand new 'retries' key,
dynamically expanding the dictionary.
Exercise 42: Function Definitions
Problem Statement: Develop a Python script that applies function
definitions to compute a result and display it.
Python Code Solution:
# Exercise 42: Function Definitions
def calculate_multiplier(base, factor=2):
return base * factor + 42
res = calculate_multiplier(4)
print('Result:', res)
Detailed Explanation: This exercise tests your grasp of function definitions.
We define a reusable function with a required parameter and an optional
default parameter. The function calculates a math expression and returns the
output via the return statement.
Exercise 43: If-Else Conditional Logic
Problem Statement: Develop a Python script that applies if-else conditional
logic to compute a result and display it.
Python Code Solution:
# Exercise 43: If-Else Conditional Logic
value = 301
if value % 2 == 0:
print(f'{value} is even')
else:
print(f'{value} is odd')
Detailed Explanation: This exercise tests your grasp of if-else conditional
logic. We use the modulo operator to check if the dynamically generated
value is divisible by 2. The if-else block ensures only the correct
corresponding string is printed to the console.
Exercise 44: For Loop Iteration
Problem Statement: Develop a Python script that applies for loop iteration
to compute a result and display it.
Python Code Solution:
# Exercise 44: For Loop Iteration
total = 0
for num in range(1, 8):
total += num
print('Sum of range:', total)
Detailed Explanation: This exercise tests your grasp of for loop iteration. A
for loop combined with the range() function iterates over a sequence of
numbers. During each iteration, the loop variable 'num' is added to the
running 'total'.
Exercise 45: While Loop Mechanics
Problem Statement: Develop a Python script that applies while loop
mechanics to compute a result and display it.
Python Code Solution:
# Exercise 45: While Loop Mechanics
count = 3
while count > 0:
print('Tick:', count)
count -= 1
print('Done!')
Detailed Explanation: This exercise tests your grasp of while loop
mechanics. The while loop continuously executes as long as the condition
(count > 0) evaluates to True. We manually decrement the count inside the
loop to avoid an infinite loop state.
Conclusion
Congratulations on finishing Chapter 2! You now understand how to control the flow
of your programs using conditionals and loops, how to store complex data using
lists, tuples, and dictionaries, and how to write clean, reusable code using
functions. These concepts form the absolute core of all Python applications. In the
next chapter, we will explore Object-Oriented Programming (OOP) and error
handling.