Home › Hindi › Pattern programs Hindi में
Python Pattern Programs Hindi में — बिना रटे हर Star व Number Pattern का Formula
🌐 यह page Hindi में है · Loops learning path in English →
3-Step Row/Column नियम6 Classic Patterns + OutputNested Loop बनाम String Multiply
Pattern रटना बंद करो — यह 3-सवाल वाला नियम सीख लो
कॉलेज के पहले सेमेस्टर और स्कूल के प्रैक्टिकल में जब स्टार या नंबर पैटर्न आता है, तो ज़्यादातर छात्र i और j में उलझ जाते हैं। असल में हर पैटर्न सिर्फ़ तीन सवालों से बन जाता है:
- सवाल 1 (बाहरी लूप): कुल कितनी पंक्तियाँ (rows) छपनी हैं? उतनी बार
for row in range(1, n + 1):चलेगा। - सवाल 2 (खाली जगह): उस पंक्ति में सितारों से पहले कितने spaces हैं? (अक्सर
n - row)। - सवाल 3 (अंदरूनी लूप): उस पंक्ति में कितने तारे या कौन-से अंक छपेंगे, और अंत में नई लाइन कब आएगी?
Pattern 1 और 2: सीधा समकोण त्रिभुज और उल्टा त्रिभुज
1. Right-Angled Star Triangle (row में उतने ही तारे):
n = 4
for row in range(1, n + 1):
for col in range(row):
print("*", end=" ")
print()
Output:
*
* *
* * *
* * * *
ध्यान दें: अंदर वाला print("*", end=" ") एक ही पंक्ति में छापता रहता है, और बाहरी लूप का खाली print() पंक्ति पूरी होने पर कर्सर को अगली लाइन पर ले जाता है।
2. Inverted Star Triangle (घटते हुए तारे):
n = 4
for row in range(n, 0, -1):
print("* " * row)
Output: पहली लाइन में 4 तारे, फिर 3, फिर 2, और अंत में 1 तारा। ध्यान रहे: अगर परीक्षा में nested loop से बनाने को कहा गया हो तो ऊपर वाला दो-लूप तरीका लिखें; और अगर कोई शर्त न हो तो Python का स्ट्रिंग गुणन ("* " * row) एकदम साफ और तेज़ है।
Pattern 3: बीच वाला Star Pyramid (`2 * row - 1` का नियम)
पिरामिड में तारे विषम संख्या (1, 3, 5, 7) में बढ़ते हैं और शुरू के spaces एक-एक घटते हैं:
n = 4
for row in range(1, n + 1):
spaces = " " * (n - row)
stars = "*" * (2 * row - 1)
print(spaces + stars)
Output:
*
***
*****
*******
Dry run (जब n = 4):
• row = 1 → 3 spaces + 1 star (2*1 - 1 = 1)
• row = 2 → 2 spaces + 3 stars (2*2 - 1 = 3)
• row = 4 → 0 spaces + 7 stars (2*4 - 1 = 7)।
Pattern 4 और 5: Number Triangle और Floyd’s Triangle
4. हर पंक्ति में `1` से `row` तक की गिनती:
n = 4
for row in range(1, n + 1):
for num in range(1, row + 1):
print(num, end=" ")
print()
Output:
1
1 2
1 2 3
1 2 3 4
5. Floyd’s Triangle (लगातार बढ़ती गिनती): जब गिनती हर पंक्ति पर रीसेट न होकर आगे बढ़ती रहे (1, फिर 2 3, फिर 4 5 6), तब बाहरी लूप के भी ऊपर एक अलग num = 1 वेरिएबल रखते हैं:
n = 4
num = 1
for row in range(1, n + 1):
for _ in range(row):
print(num, end=" ")
num += 1
print()
Output: आख़िरी पंक्ति 7 8 9 10 छापेगी।
Pattern 6: Alphabet Pattern (`chr` और `ord` की ट्रिक) + आम गलतियाँ
जब परीक्षा में A, A B, A B C छापना हो, तो ASCII कोड काम आता है — बड़े 'A' का कोड 65 होता है (ord('A') == 65):
n = 4
for row in range(1, n + 1):
for i in range(row):
print(chr(65 + i), end=" ")
print()
Output: पहली पंक्ति A, दूसरी A B, तीसरी A B C, चौथी A B C D।
3 गलतियाँ जिनसे बचना है:
range(1, n)लिख देना — इससे आख़िरी पंक्ति छूट जाती है; हमेशाrange(1, n + 1)लिखें।- खाली
print()को अंदर वाले लूप में इंडेंट कर देना — इससे हर सितारा अलग लाइन पर छपने लगता है! - घटते लूप में
range(n, 0)लिखकर-1step भूल जाना — वह लूप एक बार भी नहीं चलता।
इन सभी पैटर्न को खुद बदलकर देखने के लिए PyDebug Playground खोलें या आज के 20-मिनट अभ्यास से शुरुआत करें।
🛠️ Practice करो (free, browser में)
पढ़ना काफी नहीं — यही bug खुद fix करके देखो। नीचे के problems browser में ही चलते हैं, कोई install नहीं, कोई login नहीं।
- एक कदम ज़्यादा चलने वाला लूप — Bounds का सटीक अभ्यास
- गलत indentation सुधारो — print() अंदर बनाम बाहर का असर
- Text और numbers को जोड़ने की गलती — String multiplication बनाम concatenation
अक्सर पूछे जाने वाले सवाल
Python में बिना नई लाइन बदले एक ही पंक्ति में तारे कैसे छापते हैं?
print() में end पैरामीटर देकर — जैसे print('*', end=' ')। डिफ़ॉल्ट रूप से end='\n' होता है जो हर print के बाद लाइन बदल देता है।
परीक्षा में स्ट्रिंग गुणा ('*' * row) लिखना सही है या nested loop?
अगर प्रश्न में लिखा हो 'using nested loops' (जो कॉलेज लैब में अक्सर लिखा होता है), तो दो for लूप ही लिखें। आउटपुट प्रेडिक्शन या सामान्य प्रोग्राम में '*' * row पूरी तरह वैध और तेज़ है।
Alphabet pattern में 'A' से 'Z' कैसे लाते हैं?
chr(65) 'A' देता है, chr(66) 'B' देता है, और छोटे अक्षरों के लिए chr(97) 'a' देता है। लूप इंडेक्स i को 65 में जोड़कर chr(65 + i) से क्रम से अक्षर छापे जा सकते हैं।