Course Content
Introduction to Python (copy)
Introduction to Python (copy)
For Loops
Welcome to the section dedicated to loops!
In this chapter, we'll dive into how loops serve as a key tool for automating repetitive tasks and are essential for efficiently handling lists and other iterable data types.
Join Alex as he demonstrates the use of for
loops to simplify operations in our grocery store:
The usage of for
loops in Python allows you to execute a block of code repeatedly for each item in a collection (iterable object). Here's what you need to know about for
loops:
Syntax
Initiate a for
loop with the for
keyword, followed by a variable name such as item
to represent each element in the sequence. This is followed by the in
keyword and then the iterable object such as groceryItems
. The code block within the loop is executed once for each element.
In this example, item
acts as the iterator variable that sequentially accesses each element in the groceryItems
list and executes the print()
function for each one:
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iteration refers to the process of executing a block of code repeatedly. Python supports two main types of iteration:
Definite Iteration
Where the number of iterations is known in advance. for
loops are a classic example, automatically stopping when they reach the end of the sequence.
Indefinite Iteration
In which execution continues until a specific condition is met, typically handled by while
loops, which will be explored in detail in the upcoming chapter.
Example Applications
for
loops in Python can be used with any iterable object (lists
, tuples
, dictionaries
, strings
), allowing for data manipulation on a per-element basis.
Whether you need to access items in a list, keys or values in a dictionary, or characters in a string, for
loops provide a clear syntax that simplifies code for repetitive tasks.
Here's how you can use a for
loop to iterate over the elements in a string and a tuple, similar to how we saw with lists:
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
When using a for
loop with a dictionary, iterating directly over the dictionary will loop through its keys by default.
Here's what to expect when you directly iterate over a dictionary:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Notice how the iterator variable product
only accesses the dictionary keys.
To iterate over the values of a dictionary, you can use the values()
method.
This is useful for operations that require access to values without needing to reference the keys:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
If you need to access the keys and values simultaneously, the items()
method allows you to loop through key-value pairs in a dictionary.
To use this method in a for
loop, we specify two variables before the in
keyword — one for the key (product
) and one for the value (stock
):
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Note
In this example, we use f-strings (also known as formatted string literals) to embed variables directly into strings. The syntax is simple: add an
f
before the opening quotation mark"
, and place variables or expressions inside curly braces{}
within the string. This method makes combining strings and variables in print statements much more readable, so it's worth learning.
Drawing on your knowledge of if/else
, boolean operators, and for
loops, we can run a simple inventory check on a dictionary:
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Note
You may notice that we've placed
if
statements inside thefor
loop, which added extra indentation to theif
block. As mentioned earlier, each indented block of code can be treated as independent, regardless of where it's placed. The key is to ensure that the indentation is consistent and correct between them.
Swipe to start coding
Manage stock and promotions in a grocery store by looping through the inventory, checking restock conditions, and applying promotions.
- Loop through each product in the
inventory
dictionary. - Inside the loop, get the
current_stock
andmin_stock
from the inventory list. - Use an
if
statement to check if current stock is less than or equal to minimum stock:- If so, print a restocking message, increase the stock by
20
, update the inventory, and print the update message.
- If so, print a restocking message, increase the stock by
- Use another
if
statement to check if the product exists in thepromotions
dictionary.
Output Requirements
For each item, print:
-
--- Processing: <item> ---
-
If restocking is needed:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
-
If promotion exists:
Promotion for <item>: <promotion_details>
-
If not:
No promotions for <item>
Solution
Thanks for your feedback!
For Loops
Welcome to the section dedicated to loops!
In this chapter, we'll dive into how loops serve as a key tool for automating repetitive tasks and are essential for efficiently handling lists and other iterable data types.
Join Alex as he demonstrates the use of for
loops to simplify operations in our grocery store:
The usage of for
loops in Python allows you to execute a block of code repeatedly for each item in a collection (iterable object). Here's what you need to know about for
loops:
Syntax
Initiate a for
loop with the for
keyword, followed by a variable name such as item
to represent each element in the sequence. This is followed by the in
keyword and then the iterable object such as groceryItems
. The code block within the loop is executed once for each element.
In this example, item
acts as the iterator variable that sequentially accesses each element in the groceryItems
list and executes the print()
function for each one:
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iteration refers to the process of executing a block of code repeatedly. Python supports two main types of iteration:
Definite Iteration
Where the number of iterations is known in advance. for
loops are a classic example, automatically stopping when they reach the end of the sequence.
Indefinite Iteration
In which execution continues until a specific condition is met, typically handled by while
loops, which will be explored in detail in the upcoming chapter.
Example Applications
for
loops in Python can be used with any iterable object (lists
, tuples
, dictionaries
, strings
), allowing for data manipulation on a per-element basis.
Whether you need to access items in a list, keys or values in a dictionary, or characters in a string, for
loops provide a clear syntax that simplifies code for repetitive tasks.
Here's how you can use a for
loop to iterate over the elements in a string and a tuple, similar to how we saw with lists:
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
When using a for
loop with a dictionary, iterating directly over the dictionary will loop through its keys by default.
Here's what to expect when you directly iterate over a dictionary:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Notice how the iterator variable product
only accesses the dictionary keys.
To iterate over the values of a dictionary, you can use the values()
method.
This is useful for operations that require access to values without needing to reference the keys:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
If you need to access the keys and values simultaneously, the items()
method allows you to loop through key-value pairs in a dictionary.
To use this method in a for
loop, we specify two variables before the in
keyword — one for the key (product
) and one for the value (stock
):
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Note
In this example, we use f-strings (also known as formatted string literals) to embed variables directly into strings. The syntax is simple: add an
f
before the opening quotation mark"
, and place variables or expressions inside curly braces{}
within the string. This method makes combining strings and variables in print statements much more readable, so it's worth learning.
Drawing on your knowledge of if/else
, boolean operators, and for
loops, we can run a simple inventory check on a dictionary:
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Note
You may notice that we've placed
if
statements inside thefor
loop, which added extra indentation to theif
block. As mentioned earlier, each indented block of code can be treated as independent, regardless of where it's placed. The key is to ensure that the indentation is consistent and correct between them.
Swipe to start coding
Manage stock and promotions in a grocery store by looping through the inventory, checking restock conditions, and applying promotions.
- Loop through each product in the
inventory
dictionary. - Inside the loop, get the
current_stock
andmin_stock
from the inventory list. - Use an
if
statement to check if current stock is less than or equal to minimum stock:- If so, print a restocking message, increase the stock by
20
, update the inventory, and print the update message.
- If so, print a restocking message, increase the stock by
- Use another
if
statement to check if the product exists in thepromotions
dictionary.
Output Requirements
For each item, print:
-
--- Processing: <item> ---
-
If restocking is needed:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
-
If promotion exists:
Promotion for <item>: <promotion_details>
-
If not:
No promotions for <item>
Solution
Thanks for your feedback!