इंडेंटेशन और ब्लॉक
Python पंक्ति की शुरुआत की खाली जगह (इंडेंटेशन) से कथनों का ब्लॉक बनाता है। ब्लॉक कोलन पर ख़त्म होने वाली पंक्ति (if, else, for, while) के बाद शुरू होता है और उसकी सारी पंक्तियाँ बराबर अंदर हों (मानक 4 स्पेस)। गलत इंडेंटेशन पर IndentationError।
if marks >= 33:
print('Pass') # if के अंदर
print('Done') # बाहर, हमेशा चलेगा
चयन: if, if-else, if-elif-else
if n > 0:
print('धनात्मक')
if n % 2 == 0:
print('सम')
else:
print('विषम')
if m >= 90:
g = 'A'
elif m >= 75:
g = 'B'
elif m >= 50:
g = 'C'
else:
g = 'D'if-elif-else में केवल पहली सत्य शाखा चलती है; बाकी छूट जाती हैं। else वैकल्पिक है और उसकी कोई शर्त नहीं।
for लूप और range()
for अनुक्रम के हर आइटम के लिए ब्लॉक एक बार दोहराता है।
range(5)→ 0, 1, 2, 3, 4range(2, 7)→ 2, 3, 4, 5, 6range(1, 10, 3)→ 1, 4, 7range(10, 0, -2)→ 10, 8, 6, 4, 2
stop मान कभी शामिल नहीं। for ch in 'cat': हर अक्षर पर चलता है।
while लूप
while शर्त सत्य रहने तक दोहराता है। अंदर कुछ ऐसा बदलना चाहिए जो शर्त बदले, वरना अनंत लूप।
n = 1
while n <= 5:
print(n)
n += 1कितनी बार दोहराना है पता हो तो for; कुछ होने तक दोहराना हो तो while।
break और continue
break लूप तुरंत ख़त्म करता है; प्रोग्राम लूप के बाद की पहली पंक्ति पर जाता है।
continue इस बारी का बाकी भाग छोड़कर अगली बारी पर जाता है।
for n in range(1, 11):
if n == 8:
break
if n % 3 == 0:
continue
print(n) # 1 2 4 5 7लूप के साथ else भी हो सकता है, जो तभी चलता है जब लूप बिना break ख़त्म हो।
नेस्टेड लूप और पैटर्न प्रोग्राम
लूप के अंदर लूप नेस्टेड लूप है। बाहरी लूप की हर बारी में अंदर का लूप पूरा चलता है।
for i in range(1, 5):
for j in range(1, i + 1):
print('*', end=' ')
print()आउटपुट: हर पंक्ति में 1, 2, 3, 4 तारे। j छापें तो संख्या पैटर्न, chr(64 + j) छापें तो अक्षर पैटर्न।
श्रेणी (Series) प्रोग्राम
श्रेणी का योग एक accumulator से निकलता है जो 0 (गुणनफल के लिए 1) से शुरू होकर हर बारी एक पद जोड़ता है।
# 1 + 1/2 + 1/3 + ... + 1/n
s = 0
for i in range(1, n + 1):
s += 1 / i
# 1 - x + x**2 - x**3 ... (n पद)
s = 0
for i in range(n):
s += (-1) ** i * x ** iअन्य प्रैक्टिकल प्रोग्राम: फ़ैक्टोरियल, फ़िबोनाची, अभाज्य जाँच, आर्मस्ट्रांग, परफ़ेक्ट और पैलिंड्रोम संख्या, GCD/LCM।
मुख्य सूत्र और परिभाषाएँ
- range(start, stop, step): stop शामिल नहीं
- if … elif … else: केवल पहली सत्य शाखा
- break: लूप छोड़ो · continue: अगली बारी
- Accumulator: s = 0; s += पद
- नेस्टेड लूप: बाहरी हर बारी पर अंदर का पूरा चलता है
हल किए गए उदाहरण
1. दो संख्याओं में बड़ी छापने का प्रोग्राम लिखें।
a = int(input()); b = int(input()) if a > b: print(a) else: print(b)
2. for i in range(10, 0, -3): print(i, end=' ') क्या छापेगा?
10 7 4 1
3. while से 1 + 2 + … + n निकालें।
n = int(input()); s = 0; i = 1 while i <= n: s += i i += 1 print(s) # n = 10 पर 55
4. संख्या अभाज्य है या नहीं जाँचें।
n = int(input()) if n < 2: print('अभाज्य नहीं') else: for d in range(2, n): if n % d == 0: print('अभाज्य नहीं'); break else: print('अभाज्य')
5. पहली 8 फ़िबोनाची संख्याएँ छापें।
a, b = 0, 1 for _ in range(8): print(a, end=' ') a, b = b, a + b # 0 1 1 2 3 5 8 13
6. 4 पंक्तियों का पैटर्न छापें: 1 / 1 2 / 1 2 3 / 1 2 3 4।
for i in range(1, 5): for j in range(1, i + 1): print(j, end=' ') print()
7. x = 2, n = 4 के लिए 1 + x + x² + … + xⁿ निकालें।
s = 0 for i in range(0, 5): s += 2 ** i # 1 + 2 + 4 + 8 + 16 = 31
8. जाँचें कि 153 आर्मस्ट्रांग संख्या है या नहीं।
n = 153; s = 0; t = n while t > 0: d = t % 10; s += d ** 3; t //= 10 print(s == n) # 1 + 125 + 27 = 153 → True
आम गलतियाँ
- if/for/while के बाद कोलन भूलना, या टैब और स्पेस मिलाना।
- range(1, 5) में 5 शामिल समझना।
- while के अंदर चर न बदलना, जिससे अनंत लूप बनता है।
- जब एक ही शाखा चलनी हो तब कई अलग if लिखना; elif लें।