CS50P - Lecture 2 - Loops
Table of Contents
Introduction
This tutorial provides a comprehensive guide on using loops in Python, based on a CS50 lecture. Loops are fundamental programming constructs that allow you to execute a block of code multiple times efficiently. This guide will cover both while
and for
loops, along with practical examples and best practices.
Chapter 1: Understanding Loops
- Purpose of Loops: Loops enable repetitive execution of code without the need for manual duplication.
- Types of Loops:
- While Loop: Repeats code as long as a specified condition is true.
- For Loop: Iterates over a sequence (like a list) or a range of numbers.
Example: Using a While Loop
To create a simple program that prints "meow" three times:
- Initialize a Counter: Start with a variable (
i
) set to 3. - Set Up the While Loop:
i = 3 while i != 0: print("meow") i -= 1 # Decrement the counter
- Run the Code: This will print "meow" three times.
Common Pitfall
- Infinite Loops: If the loop's condition never becomes false, it will run indefinitely. Always ensure that the loop modifies a variable that affects its condition.
Chapter 2: Using For Loops
For loops provide a more concise way to repeat actions, particularly when iterating over a collection of items.
Example: Using a For Loop
To print "meow" three times more succinctly:
- Set Up the For Loop:
for i in range(3): print("meow")
- Understanding
range
: Therange(3)
generates a sequence of numbers from 0 to 2, allowing the loop to iterate three times.
Advanced Usage with Lists
You can also iterate over a list of items directly:
students = ["hermione", "harry", "ron"]
for student in students:
print(student) # Prints each student's name
Chapter 3: Validating Input with Loops
When asking for user input, you can use a loop to ensure valid data is provided.
Example: Input Validation
- Use an Infinite Loop:
while True: n = int(input("What's n? ")) if n > 0: break # Exit loop if input is positive
- Meowing Based on User Input:
for _ in range(n): print("meow")
Chapter 4: Nested Loops
Nested loops allow for more complex iterations, such as creating a grid.
Example: Printing a Grid
To print a square of hashes:
- Define a Function:
def print_square(size): for i in range(size): for j in range(size): print("#", end="") print() # New line after each row
- Call the Function:
print_square(3) # Prints a 3x3 grid of hashes
Chapter 5: Using Dictionaries with Loops
Dictionaries allow you to store key-value pairs and iterate through them.
Example: Iterating Over a Dictionary
- Define a Dictionary:
students = { "hermione": "gryffindor", "harry": "gryffindor", "ron": "gryffindor", "draco": "slytherin" }
- Print Each Student's House:
for student in students: print(f"{student} is in {students[student]}")
Conclusion
In this tutorial, we've covered the fundamentals of loops in Python, including how to create while
and for
loops, validate user input, and work with nested loops and dictionaries. Mastering these concepts is essential for effective programming, as they form the building blocks for creating dynamic and efficient code.
Next Steps
- Practice writing various loop structures.
- Experiment with more complex data types like dictionaries and lists.
- Explore advanced topics such as list comprehensions and generator expressions for efficient data handling.