Loops in Python (for and while)
In this lesson: Learn for and while loops in Python — range(), break, continue, else on loops — with patterns and programs.
Why Loops?
A loop repeats a block of code many times without writing it again and again. Python has two loops: for (repeat a known number of times) and while (repeat until a condition becomes false).
The for Loop & range()
for repeats over a sequence. range(start, stop, step) generates numbers (stop is not included).
for i in range(1, 6):
print(i, end=" ")
| Step | i | range me hai? (1 se 5) | |
|---|---|---|---|
| 1 | 1 | haan | 1 |
| 2 | 2 | haan | 2 |
| 3 | 3 | haan | 3 |
| 4 | 4 | haan | 4 |
| 5 | 5 | haan | 5 |
| 6 | 6 | nahi | range(1,6) me 6 nahi aata — loop ruk gaya |
Python me range(1, 6) 1 se 5 tak deta hai — aakhri number (6) shaamil nahi hota. Isliye output 1 2 3 4 5 aata hai, 6 nahi. Ye ek bahut common confusion hai.
range(1, 6)gives 1,2,3,4,5 (6 is excluded).itakes each value one by one.
The while Loop
while keeps running as long as its condition is True. You must change something inside, or it loops forever.
count = 1
while count <= 3:
print("Count:", count)
count += 1 # this line ends the loop eventuallyProgram 1: Print 1 to 10
for i in range(1, 11):
print(i)range(1, 11) covers 1 to 10. Each pass prints one number.
Program 2: Multiplication Table
n = int(input("Table of: "))
for i in range(1, 11):
print(n, "x", i, "=", n * i)The loop runs 10 times; each time i grows from 1 to 10 and we print n * i.
Program 3: Sum & Average of N Numbers
n = int(input("How many numbers? "))
total = 0
for i in range(n):
num = int(input("Enter number: "))
total += num
print("Sum =", total)
print("Average =", total / n)total = 0starts an accumulator before the loop.total += numadds each input to the running total.
Program 4: Factorial using while
n = int(input("Enter n: "))
fact = 1
while n > 0:
fact *= n
n -= 1
print("Factorial =", fact)5! = 5x4x3x2x1 = 120. Each pass multiplies fact by n, then reduces n.
Program 5: Star Pattern (nested loop)
rows = 5
for i in range(1, rows + 1):
for j in range(i):
print("*", end="")
print()- The outer loop controls rows; the inner loop prints stars in each row.
- Row
iprintsistars, thenprint()moves to a new line.
Program 6: Number Guess with break & continue
secret = 7
while True:
g = int(input("Guess (1-10): "))
if g == secret:
print("Correct!")
break # exit the loop
if g < 1 or g > 10:
print("Out of range, try again")
continue # skip to next loop
print("Wrong, try again")break, continue and loop-else
break— exit the loop immediately.continue— skip the rest of this pass, go to the next.elseon a loop — runs once if the loop finished withoutbreak.
Common Mistakes
- Forgetting to update the variable in a
while→ infinite loop. - Off-by-one with
range()(remember stop is excluded). - Wrong indentation for the loop body.
Practice Tasks
- Print all even numbers from 1 to 50.
- Print the table of any number entered by the user.
- Find the sum of digits of a number using a while loop.
- Print an inverted star triangle (5 stars down to 1).
- Count how many numbers in a list are positive.
Summary
forrepeats a known number of times (often withrange()).whilerepeats until its condition is false — update the variable inside.breakexits,continueskips a pass.- Nested loops make patterns and tables.
