Python Notes
Master Python pattern programs using nested loops — stars, pyramids, diamonds, number triangles, alphabets, and special patterns. 15+ complete patterns with code, output, logic diagrams, and Hindi explanations.
Introduction (परिचय)
Pattern programs Python में nested loops की समझ को test करते हैं। ये interview में बहुत पूछे जाते हैं।
Pattern बनाने का secret: - Outer loop → rows (पंक्तियाँ) control करता है - Inner loop → columns (स्तंभ) control करता है - Pattern के shape को देखो → space और symbol के count को analyze करो
Pattern 1: Right Triangle (दाएँ त्रिभुज)
*
* *
* * *
* * * *
* * * * *Code
n = 5
for i in range(1, n + 1):
for j in range(i):
print("*", end=" ")
print()Short Version
n = 5
for i in range(1, n + 1):
print("* " * i)Logic Table
i=1: j goes 0 → 1 star
i=2: j goes 0,1 → 2 stars
i=3: j goes 0,1,2 → 3 stars
...
i=n: j goes 0..n-1 → n starsPattern 2: Inverted Right Triangle (उल्टा दाएँ त्रिभुज)
* * * * *
* * * *
* * *
* *
*Code
n = 5
for i in range(n, 0, -1):
for j in range(i):
print("*", end=" ")
print()Logic
i=5: 5 stars
i=4: 4 stars
i=3: 3 stars
i=2: 2 stars
i=1: 1 star
(i decreases from n to 1)Pattern 3: Full Pyramid (पूर्ण पिरामिड)
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *Code
n = 5
for i in range(1, n + 1):
# Print spaces
spaces = n - i
print(" " * spaces, end="")
# Print stars
stars = 2 * i - 1
print("* " * stars)Cleaner Version
n = 5
for i in range(1, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))Logic Table
Row i | Spaces (n-i) | Stars (2i-1)
1 | 4 | 1
2 | 3 | 3
3 | 2 | 5
4 | 1 | 7
5 | 0 | 9Pattern 4: Inverted Pyramid (उल्टा पिरामिड)
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*Code
n = 5
for i in range(n, 0, -1):
spaces = n - i
stars = 2 * i - 1
print(" " * spaces + "* " * stars)Pattern 5: Diamond (हीरा / Diamond)
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*Code
n = 5
# Upper half (including middle row)
for i in range(1, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))
# Lower half
for i in range(n - 1, 0, -1):
print(" " * (n - i) + "* " * (2 * i - 1))Logic
Upper half: rows 1 to n (pyramid)
Lower half: rows n-1 to 1 (inverted pyramid, no middle row)Pattern 6: Hollow Square (खाली वर्ग)
* * * * *
* *
* *
* *
* * * * *Code
n = 5
for i in range(1, n + 1):
for j in range(1, n + 1):
# First/last row OR first/last column
if i == 1 or i == n or j == 1 or j == n:
print("*", end=" ")
else:
print(" ", end=" ")
print()Pattern 7: Number Triangle (संख्या त्रिभुज)
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5Code
n = 5
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()Pattern 8: Repeated Number Triangle
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5Code
n = 5
for i in range(1, n + 1):
for j in range(i):
print(i, end=" ")
print()Pattern 9: Floyd's Triangle (फ्लॉयड का त्रिभुज)
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15Code
n = 5
num = 1
for i in range(1, n + 1):
for j in range(i):
print(num, end="\t")
num += 1
print()Pattern 10: Pascal's Triangle (पास्कल का त्रिभुज)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1Code
n = 5
for i in range(n):
# Print leading spaces
print(" " * (n - i - 1), end="")
# Calculate and print values using combination formula
val = 1
for j in range(i + 1):
print(f"{val:3d}", end="")
val = val * (i - j) // (j + 1)
print()Logic (Pascal's Triangle Rule)
Each number = sum of two numbers directly above it
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
C(row, col) = row! / (col! * (row-col)!)Pattern 11: Alphabet Triangle (वर्णमाला त्रिभुज)
A
A B
A B C
A B C D
A B C D ECode
n = 5
for i in range(n):
for j in range(i + 1):
print(chr(65 + j), end=" ") # chr(65) = 'A'
print()Same-Letter Triangle
A
B B
C C C
D D D D
E E E E En = 5
for i in range(n):
letter = chr(65 + i)
print((letter + " ") * (i + 1))Pattern 12: Butterfly Pattern (तितली)
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *Code
n = 4
# Upper half
for i in range(1, n + 1):
# Left stars
print("* " * i, end="")
# Middle spaces
print(" " * (2 * (n - i)), end="")
# Right stars
print("* " * i)
# Lower half
for i in range(n, 0, -1):
print("* " * i, end="")
print(" " * (2 * (n - i)), end="")
print("* " * i)Pattern 13: Number Pyramid (संख्या पिरामिड)
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5Code
n = 5
for i in range(1, n + 1):
# Spaces
print(" " * (n - i), end="")
# Decreasing numbers
for j in range(i, 0, -1):
print(j, end=" ")
# Increasing numbers (skip center)
for j in range(2, i + 1):
print(j, end=" ")
print()Pattern 14: Hollow Diamond (खोखला हीरा)
*
* *
* *
* *
* *
* *
* *
* *
*Code
n = 5
# Upper half
for i in range(1, n + 1):
for j in range(1, n + 1):
if j == n - i + 1 or j == n + i - 1:
print("*", end="")
else:
print(" ", end="")
print()
# Lower half
for i in range(n - 1, 0, -1):
for j in range(1, n + 1):
if j == n - i + 1 or j == n + i - 1:
print("*", end="")
else:
print(" ", end="")
print()Pattern 15: Cross / Plus Pattern (क्रॉस / प्लस)
* *
* *
*
* *
* *X Pattern
n = 5
for i in range(n):
for j in range(n):
if i == j or i + j == n - 1:
print("*", end="")
else:
print(" ", end="")
print()Output:
Pattern 16: Spiral Number Pattern (संख्या सर्पिल — Simulated)
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9Code (Snail/Spiral Fill)
Pattern Summary Table (पैटर्न सारांश तालिका)
| # | Pattern Name | Key Formula |
|---|---|---|
| 1 | Right Triangle | print("* " * i) |
| 2 | Inverted Triangle | range(n, 0, -1) |
| 3 | Full Pyramid | Spaces: n-i, Stars: 2i-1 |
| 4 | Inverted Pyramid | Reverse of pyramid |
| 5 | Diamond | Pyramid + Inverted Pyramid |
| 6 | Hollow Square | Check border condition |
| 7 | Number Triangle | print(j) for j in range(1, i+1) |
| 8 | Repeated Number | print(i) i times |
| 9 | Floyd's Triangle | Running counter |
| 10 | Pascal's Triangle | Combination formula |
| 11 | Alphabet Triangle | chr(65 + j) |
| 12 | Butterfly | Left stars + spaces + right stars |
| 13 | Number Pyramid | Descend then ascend |
| 14 | Hollow Diamond | Border condition |
| 15 | X Pattern | i==j or i+j==n-1 |
| 16 | Spiral | Layer-by-layer fill |
Quick Pattern Cheat Sheet (त्वरित संदर्भ)
Common Mistakes in Patterns (सामान्य गलतियाँ)
❌ Mistake 1: Off-by-one in range
# WRONG — prints 0..n-1 (0 is not useful for row count)
for i in range(n): # i = 0, 1, 2, ..., n-1
# CORRECT — prints 1..n
for i in range(1, n + 1): # i = 1, 2, 3, ..., n❌ Mistake 2: Not using end=""
# WRONG — each star on new line!
for j in range(i):
print("*") # Newline after every star
# CORRECT — all stars on same line
for j in range(i):
print("*", end=" ")
print() # Move to next line after row❌ Mistake 3: Forgetting to print newline
n = 5
for i in range(1, n + 1):
for j in range(i):
print("*", end=" ")
# Missing print() here!
# All rows print on same line!
# CORRECT
for i in range(1, n + 1):
for j in range(i):
print("*", end=" ")
print() # ← Don't forget this!❌ Mistake 4: Wrong space calculation
n = 5
# WRONG — spaces don't decrease properly
for i in range(1, n+1):
print(" " * n, end="") # Always n spaces!
print("* " * i)
# CORRECT — spaces = n - i
for i in range(1, n+1):
print(" " * (n - i), end="")
print("* " * i)Practice Exercises (अभ्यास प्रश्न)
Exercise 1 — Easy
Print this pattern (n=5):
Exercise 2 — Easy
Print this number pattern:
Exercise 3 — Medium
Print zigzag pattern:
Exercise 4 — Medium
Print this hollow triangle:
Exercise 5 — Hard
Print the following (hourglass):
Exercise 6 — Hard
Print numbers in a spiral pattern for n=4:
Solutions (हल)
Solution 1 — Inverted Right Triangle
n = 5
for i in range(n, 0, -1):
print("* " * i)Solution 2 — Inverted Number Triangle
n = 5
for i in range(n, 0, -1):
for j in range(1, i + 1):
print(j, end=" ")
print()Solution 4 — Hollow Triangle
n = 5
for i in range(1, n + 1):
for j in range(1, i + 1):
if j == 1 or j == i or i == n:
print("*", end=" ")
else:
print(" ", end=" ")
print()Solution 5 — Hourglass
n = 4 # half height
# Upper half (inverted pyramid)
for i in range(n, 0, -1):
print(" " * (n - i) + "* " * (2 * i - 1))
# Lower half (pyramid, skip middle)
for i in range(2, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))Interview Tips (Interview की तैयारी)
Pattern Interview Checklist:
□ Start with the easy right triangle
□ Always analyze rows vs columns first
□ Draw the table: i, spaces, stars
□ Use end="" to print on same line
□ Use print() at end of each row
□ Test with n=3 or n=4 first
□ Common questions: pyramid, diamond, Floyd's
□ Know how chr(65) = 'A' works for alphabets
□ Practice without seeing the solutionFinal Summary (अंतिम सारांश)
Pattern programs आपकी loop thinking test करते हैं:
- Right Triangle — Basic nested loop
- Pyramid — Add spaces before stars
- Diamond — Pyramid + Inverted
- Floyd's Triangle — Running counter
- Pascal's Triangle — Math + loops
- Alphabet patterns —
chr()function - Hollow patterns — Border condition
- Number patterns — Inner loop value
Practice करो: एक pattern बनाओ, समझो, फिर बिना देखे लिखो। यही interview में काम आएगा।
Previous Topic (पिछला विषय)
Next Section (अगला खंड)
➡️ Functions — Code को reusable बनाओ
📤 Output Examples (Pattern Outputs with Code)
यहाँ कुछ key patterns के outputs verify करें:
Right Triangle Output
n = 5
for i in range(1, n + 1):
print("* " * i)* * * * * * * * * * * * * * *
Full Pyramid Output
n = 5
for i in range(1, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1)) *
* * *
* * * * *
* * * * * * *
* * * * * * * * *Diamond Output
n = 5
for i in range(1, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))
for i in range(n - 1, 0, -1):
print(" " * (n - i) + "* " * (2 * i - 1)) *
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*Number Triangle Output
n = 5
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Floyd's Triangle Output
n = 5
num = 1
for i in range(1, n + 1):
for j in range(i):
print(num, end="\t")
num += 1
print()1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Alphabet Triangle Output
n = 5
for i in range(n):
for j in range(i + 1):
print(chr(65 + j), end=" ")
print()A A B A B C A B C D A B C D E
✅ Key Takeaways
- 🔁 Nested loops = Pattern programs — Outer loop rows handle करता है, inner loop columns print करता है
- 📐 Spaces matter — Pyramid और diamond patterns में
" " * (n - i)spaces center alignment देते हैं - 🖨️
end=""is essential — Same line पर print करने के लिएend=" "याend=""ज़रूरी है - 🔢 Formula find करो — हर pattern में row number (i) से spaces और symbols का count derive होता है
- 💎 Diamond = Pyramid + Inverted Pyramid — Complex patterns को simple patterns combine करके बनाओ
- 📊 Table बनाओ — Row, spaces, और stars का table बनाकर formula discover करो
- 🔤
chr(65)= 'A' — Alphabet patterns के लिए ASCII values use करो (chr(65 + j)) - 🧱 Hollow patterns — Border condition check करो: first/last row OR first/last column
- 🧮 Pascal's Triangle — Math formula
C(n, r)use करता है — loops + math combination - 🎯 Practice without looking — Interview में pattern देखकर 2 min में code लिखने की ability चाहिए
❓ FAQ
Q1: Pattern programs क्यों important हैं? 🤔
Answer: Pattern programs loop logic, nested loops, और problem decomposition test करते हैं। Interview में ये commonly पूछे जाते हैं क्योंकि ये prove करते हैं कि आप loops को deeply समझते हो। साथ ही ये matrix manipulation और 2D array problems की foundation हैं।
Q2: Outer loop और Inner loop में क्या difference है? 🔄
Answer: Outer loop = rows (पंक्तियाँ) control करता है — कितनी lines print होंगी। Inner loop = columns (स्तंभ) control करता है — एक line में क्या-क्या print होगा। Pattern programs में outer loop हमेशा row number decide करता है, inner loop content decide करता है।
Q3: end="" और end=" " में क्या अंतर है? 🖨️
Answer: end="" means print के बाद कुछ भी add मत करो (no space, no newline)। end=" " means print के बाद एक space add करो। Default end="\n" होता है जो newline add करता है। Pattern programs में same line पर multiple characters print करने के लिए end parameter ज़रूरी है।
Q4: Pyramid pattern में spaces कैसे calculate करें? 📐
Answer: Formula simple है: Spaces = n - i (जहाँ n = total rows, i = current row number 1 से शुरू)।
- Row 1:
n-1spaces (4 spaces for n=5) - Row 2:
n-2spaces (3 spaces) - Row n: 0 spaces
Stars formula: 2*i - 1 (odd numbers: 1, 3, 5, 7, 9)
Q5: Floyd's Triangle और Pascal's Triangle में क्या difference है? 🔢
Answer: Floyd's Triangle — Simply 1 से शुरू होकर continuous numbers fill करता है (1, 2, 3, 4...)। Logic simple है — एक counter बढ़ाते जाओ। Pascal's Triangle — Mathematical combination formula use करता है C(row, col)। हर number ऊपर के दो numbers का sum होता है। Pascal ज़्यादा complex है।
Q6: Diamond pattern कैसे बनाएं easily? 💎
Answer: Diamond = Upper pyramid + Lower inverted pyramid (without repeating middle row)।
# Upper: range(1, n+1) — rows 1 to n
# Lower: range(n-1, 0, -1) — rows n-1 to 1इसे divide and conquer approach कहते हैं — complex pattern को 2 simple patterns में तोड़ो।
Q7: Pattern programs को solve करने का best approach क्या है? 🎯
Answer: 5-step approach follow करो:
- Observe — Pattern को ध्यान से देखो
- Table बनाओ — Row number, spaces count, symbols count लिखो
- Formula find करो — i के terms में express करो
- Code लिखो — Outer loop (rows), inner loops (spaces + symbols)
- Test करो — Small n (3 or 4) से verify करो
Q8: Hollow patterns कैसे बनाते हैं? 🧱
Answer: Hollow patterns में border condition check करो — star सिर्फ तभी print करो जब:
- First row (
i == 1) या Last row (i == n) - First column (
j == 1) या Last column (j == n)
Baaki सब positions पर space print करो। यही logic hollow square, hollow triangle, hollow diamond सबमें apply होता है।
🎯 Interview Questions
Q1: Write a program to print a right-angled triangle with numbers instead of stars.
Answer:
n = 5
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Explanation: Outer loop rows control करता है (1 to n)। Inner loop range(1, i+1) — current row number तक numbers print करता है। end=" " same line पर print करता है, print() row end करता है।
Q2: How would you print a hollow pyramid? Explain the logic.
Answer:
n = 5
for i in range(1, n + 1):
for j in range(n - i):
print(" ", end="")
for j in range(1, 2 * i):
if j == 1 or j == 2 * i - 1 or i == n:
print("*", end="")
else:
print(" ", end="")
print()Explanation: Normal pyramid logic + hollow condition। Star सिर्फ first column (j==1), last column (j==2*i-1), या last row (i==n) पर print होता है। बाकी सब positions पर space print करते हैं।
Q3: What is the time complexity of printing a pattern of size n?
Answer: Most basic patterns O(n²) time complexity रखते हैं क्योंकि nested loops हैं — outer loop n times, inner loop average n/2 times चलता है। Spiral pattern भी O(n²) है लेकिन single loop से fill होता है। Pascal's triangle O(n²) है but mathematical computation extra cost add करता है।
Q4: How do you print a diamond pattern using minimum lines of code?
Answer:
n = 5
for i in range(1, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))
for i in range(n - 1, 0, -1):
print(" " * (n - i) + "* " * (2 * i - 1))Explanation: सिर्फ 4 lines of actual code! String multiplication (" " * count और "* " * count) use करके concise code लिखा। Upper half और lower half दो separate loops में handle किया।
Q5: Explain the difference between range(n), range(1, n+1), and range(n, 0, -1).
Answer:
range(n)→ 0, 1, 2, ..., n-1 (n elements, 0 से start)range(1, n+1)→ 1, 2, 3, ..., n (n elements, 1 से start)range(n, 0, -1)→ n, n-1, n-2, ..., 1 (reverse order, 0 excluded)
Pattern programs में: ascending patterns (growing triangle) → range(1, n+1), descending patterns (inverted triangle) → range(n, 0, -1) use करो।
Q6: Write a program to print Pascal's Triangle. Explain the mathematical formula.
Answer:
n = 5
for i in range(n):
val = 1
print(" " * (n - i - 1), end="")
for j in range(i + 1):
print(f"{val:3d}", end="")
val = val * (i - j) // (j + 1)
print()Explanation: Pascal's Triangle में हर element C(row, col) = combination formula use करता है। Instead of calculating factorial हर बार, हम previous value से next value derive करते हैं: val = val * (i - j) // (j + 1)। यह efficient approach है — O(1) per element।
Q7: How would you print a pattern using recursion instead of loops?
Answer:
def print_triangle(n, current=1):
if current > n:
return
print("* " * current)
print_triangle(n, current + 1)
print_triangle(5)* * * * * * * * * * * * * * *
Explanation: Recursion में function खुद को call करता है — base case current > n पर stop। हर call एक row print करती है और current + 1 pass करती है। यह approach interviews में recursion understanding demonstrate करता है, but loops ज़्यादा efficient हैं।
Q8: What is the approach to solve any unknown pattern in an interview?
Answer: 5-step systematic approach:
- Pattern observe करो — Rows count करो, हर row में क्या है लिखो
- Table बनाओ —
| Row (i) | Spaces | Symbols | Formula | - Formula derive करो — Spaces और symbols को
iके terms में express करो - Code structure — Outer loop = rows, Inner loop(s) = spaces + content
- Edge cases handle करो — First/last row, hollow conditions
Pro tip: Always start with n=3 for verification — less computation, easy to trace mentally।
Q9: Print a sandglass (hourglass) pattern. What's the trick?
Answer:
n = 4
# Upper inverted pyramid
for i in range(n, 0, -1):
print(" " * (n - i) + "* " * (2 * i - 1))
# Lower pyramid (skip middle)
for i in range(2, n + 1):
print(" " * (n - i) + "* " * (2 * i - 1))* * * * * * *
* * * * *
* * *
*
* * *
* * * * *
* * * * * * *Explanation: Hourglass = Inverted Pyramid (top) + Normal Pyramid (bottom, starting from row 2 to avoid duplicate middle row)। Same formula " " * (n-i) और "* " * (2*i-1) — बस direction change होती है।
Q10: How do you optimize pattern programs for large values of n?
Answer: Optimization techniques:
- String multiplication —
"* " * nis faster than loop-based printing - List comprehension + join —
print("".join(["* " for _ in range(i)]))avoids multiple I/O calls - Buffer output — Store all rows in list, then
print("\n".join(rows))— single I/O operation - Avoid repeated calculations — Pre-calculate spaces/stars formulas
Key insight: For n > 1000, I/O bottleneck matters more than loop computation। Buffer everything, print once।
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Pattern Programs in Python.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Python Master Course topic.
Search Terms
python-master-course, python master course, python, master, course, control, flow, pattern
Related Python Master Course Topics