📖 Scenario: You are working on a simple inventory system for a small bookstore. The store keeps a list of book titles and their prices. You want to practice going through this list to find books that meet certain price conditions.
🎯 Goal: Build a program that creates a list of book prices, sets a price limit, finds all books cheaper than or equal to that limit, and prints those prices.
📋 What You'll Learn
Create a list called book_prices with the exact values: 12.99, 7.50, 15.20, 5.99, 9.99
Create a variable called price_limit and set it to 10.00
Use a for loop with the variable price to traverse book_prices and collect prices less than or equal to price_limit into a list called affordable_books
Print the affordable_books list
💡 Why This Matters
🌍 Real World
Filtering items based on conditions is common in shopping apps, inventory systems, and data analysis.
💼 Career
Understanding how to traverse arrays and apply conditions is a fundamental skill for software developers and data analysts.
Progress0 / 4 steps
1
Create the list of book prices
Create a list called book_prices with these exact values: 12.99, 7.50, 15.20, 5.99, 9.99
DSA Python
Hint
Use square brackets [] to create a list and separate values with commas.
2
Set the price limit
Create a variable called price_limit and set it to 10.00
DSA Python
Hint
Use the assignment operator = to set the value.
3
Find affordable books using a for loop
Use a for loop with the variable price to traverse book_prices and collect prices less than or equal to price_limit into a list called affordable_books
DSA Python
Hint
Start with an empty list. Use for price in book_prices: to go through each price. Use if price <= price_limit: to check the condition. Use append() to add to the list.
4
Print the affordable books list
Print the affordable_books list
DSA Python
Hint
Use print(affordable_books) to show the list.
Practice
(1/5)
1. What does the following code do? for i in range(len(arr)): print(arr[i]) Assuming arr is a list of numbers.
easy
A. Prints only the first element of the array.
B. Prints all elements of the array from first to last.
C. Prints the indices of the array elements.
D. Prints the array in reverse order.
Solution
Step 1: Understand the loop range
The loop runs from 0 to len(arr)-1, covering all valid indices of the array.
Step 2: Access and print each element
Inside the loop, arr[i] accesses each element in order, printing them one by one.
Final Answer:
Prints all elements of the array from first to last. -> Option B
Quick Check:
Loop over indices prints elements in order [OK]
Hint: Loop over range(len(arr)) accesses all elements by index [OK]
Common Mistakes:
Thinking it prints indices instead of elements
Assuming it prints in reverse order
Confusing range(len(arr)) with just range(arr)
2. Which of the following is the correct syntax to traverse all elements in a list arr using a for-each style loop in Python?
easy
A. for i to len(arr): print(arr[i])
B. for i in range(arr): print(i)
C. for element in arr: print(element)
D. for element in range(len(arr)): print(element)
Solution
Step 1: Identify correct for-each syntax
Python uses for variable in iterable to loop over elements directly.
Step 2: Check each option
for element in arr: print(element) uses for element in arr, which correctly loops over elements. Others have syntax errors or misuse range.
Final Answer:
for element in arr: print(element) -> Option C
Quick Check:
For-each loop uses 'for element in arr' [OK]
Hint: Use 'for element in arr' to loop elements directly [OK]
Common Mistakes:
Using range(arr) instead of range(len(arr))
Writing 'for i to len(arr)' which is invalid syntax
Confusing indices with elements in for-each loops
3. What is the output of the following code?
arr = [10, 20, 30, 40] for i in range(1, len(arr)): print(arr[i])
medium
A. 20 30 40
B. 40
C. 10 20 30
D. 10 20 30 40
Solution
Step 1: Analyze the loop range
The loop runs from 1 to len(arr)-1, which is 1 to 3 for this array.
Step 2: Print elements at indices 1, 2, 3
Elements are arr[1]=20, arr[2]=30, arr[3]=40, printed in order.
Final Answer:
20 30 40 -> Option A
Quick Check:
Range(1,4) prints elements from index 1 to 3 [OK]
Hint: range(1, len(arr)) skips first element [OK]
Common Mistakes:
Including the first element (index 0) mistakenly
Confusing range end as inclusive
Printing indices instead of elements
4. Find the error in this code snippet that tries to print all elements of arr:
arr = [1, 2, 3, 4] for i in range(len(arr)): print(arr[i+1])
medium
A. No error, prints all elements correctly.
B. SyntaxError due to incorrect for loop syntax.
C. Prints elements in reverse order.
D. IndexError because i+1 goes out of range on last iteration.
Solution
Step 1: Check loop indices and access
Loop runs i from 0 to 3 (len(arr)=4). Accessing arr[i+1] means indices 1 to 4.
Step 2: Identify out of range access
When i=3, arr[4] is accessed, which is outside the array bounds causing IndexError.
Final Answer:
IndexError because i+1 goes out of range on last iteration. -> Option D
Quick Check:
Accessing arr[i+1] with i at last index causes error [OK]
Hint: Check index +1 can exceed array length [OK]
Common Mistakes:
Ignoring index out of range error
Thinking syntax is wrong instead
Assuming it prints reversed elements
5. Given a list arr = [3, 5, 7, 9, 11], write code to print elements at even indices only using array traversal patterns. Which code snippet does this correctly?
hard
A. for i in range(0, len(arr), 2): print(arr[i])
B. for i in range(1, len(arr), 2): print(arr[i])
C. for element in arr: if element % 2 == 0: print(element)
D. for i in range(len(arr)): if i % 2 == 1: print(arr[i])
Solution
Step 1: Understand even index traversal
Even indices are 0, 2, 4 for this list. Step size 2 starting at 0 covers these.
Step 2: Check each option
for i in range(0, len(arr), 2): print(arr[i]) uses range(0, len(arr), 2) which correctly iterates over even indices. Others either use odd indices or check element values incorrectly.
Final Answer:
for i in range(0, len(arr), 2): print(arr[i]) -> Option A
Quick Check:
Step 2 in range picks even indices [OK]
Hint: Use range(start=0, end, step=2) for even indices [OK]
Common Mistakes:
Using odd indices instead of even
Checking element value parity instead of index
Forgetting step argument in range
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.