📘 CodingMarble Learn

Python में नियंत्रण प्रवाह

नियंत्रण प्रवाह वह क्रम है जिसमें कथन चलते हैं। Python में तीन प्रकार: क्रमिक (ऊपर से नीचे), चयन (if, if-else, if-elif-else) और पुनरावृत्ति (for और while लूप)। ब्लॉक इंडेंटेशन से बनते हैं (कोलन के बाद आमतौर पर 4 स्पेस)। range(start, stop, step) start से stop तक, पर stop शामिल नहीं। while तब तक दोहराता है जब तक शर्त सत्य है। break लूप तुरंत छोड़ता है; continue अगली बारी पर जाता है। लूप के अंदर लूप नेस्टेड लूप है, जो पैटर्न में काम आता है; जोड़ने वाले चर (accumulator) से श्रेणी का योग निकलता है।

🎬 कदम-दर-कदम कहानी

  1. Python पंक्तियों का समूह इंडेंटेशन से बनाता है। कोलन के बाद एक जैसे स्पेस अंदर वाली पंक्तियाँ एक ब्लॉक हैं।
  2. if-elif-else ऊपर से शर्तें जाँचता है। पहली सत्य शर्त चलती है। 72 अंक पर ग्रेड C।
  3. for i in range(1, 6) देता है 1, 2, 3, 4, 5। यह 6 से पहले रुकता है। total 15 हो जाता है।
  4. while लूप शर्त सत्य रहने तक दोहराता है। continue एक बारी छोड़ता है। break लूप रोक देता है।
  5. नेस्टेड लूप में बाहरी लूप पंक्ति चुनता है। अंदर का लूप उस पंक्ति के तारे छापता है।
  6. आपकी बारी: पंक्तियाँ और पैटर्न चुनें और आउटपुट देखें।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

Python कोष्ठक की जगह स्पेस क्यों लेता है?

इंडेंटेशन कोड को साफ़ रखता है और ढाँचा एक नज़र में दिखाता है। Python स्पेस पढ़कर जानता है कि कौन-सी पंक्तियाँ साथ हैं।

95 अंक पर क्या '≥ 50' वाली शाखा भी चलेगी?

नहीं। पहली सत्य शर्त (≥ 90) चलती है और Python बाकी सारे elif और else छोड़ देता है।

range stop से पहले क्यों रुकता है?

ताकि range(n) ठीक n संख्याएँ 0 से n − 1 दे, जो लिस्ट के इंडेक्स से मेल खाएँ।

for की जगह while कब लें?

जब बारियों की संख्या पहले से पता न हो, जैसे 'पासवर्ड सही होने तक पूछते रहो'।

अंदर का लूप कुल कितनी बार चलता है?

बाहरी हर बारी पर पूरा चलता है। 4 पंक्तियों में 1 + 2 + 3 + 4 = 10 बार।

इंडेंटेशन और ब्लॉक

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 अनुक्रम के हर आइटम के लिए ब्लॉक एक बार दोहराता है।

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।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

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

आम गलतियाँ

अभ्यास क्विज़

1. range(3, 8) देता है:
2. कौन-सा कथन अगली बारी पर भेजता है?
3. Python ब्लॉक किससे बनाता है?
4. for i in range(0, 10, 2) कितनी बार चलेगा?
5. if-elif-else में कितनी शाखाएँ चलती हैं?

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

Python में नियंत्रण प्रवाह के प्रकार कौन-से हैं?

क्रमिक, चयन (if, if-else, if-elif-else) और पुनरावृत्ति (for और while लूप)।

for और while लूप में क्या अंतर है?

for अनुक्रम या range पर तय बार दोहराता है; while शर्त सत्य रहने तक दोहराता है।

break और continue क्या करते हैं?

break लूप तुरंत छोड़ता है; continue इस बारी का बाकी भाग छोड़कर अगली बारी पर जाता है।

यह कहाँ पढ़ाया जाता है

सीबीएसई (भारत)कक्षा 11संगणनात्मक चिंतन और प्रोग्रामिंग - 1
सीबीएसई (भारत)कक्षा 11पायथन का परिचय
अमेरिकाGrade 8Algorithms and Programming
अमेरिकाGrade 9Algorithms and Programming
अमेरिकाGrade 11Selection and Iteration
दक्षिण कोरिया고등학교 2학년Algorithms and programming
दक्षिण कोरिया고등학교 3학년Programming

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ