नियंत्रण का बहाव
पंक्तियाँ किस क्रम में चलती हैं, उसे नियंत्रण का बहाव (flow of control) कहते हैं। तीन प्रकार:
- क्रम (sequence): एक के बाद एक पंक्ति।
- चयन (selection): रास्ता चुनना (
if)। - पुनरावृत्ति (repetition/loop): ब्लॉक दोहराना (
while,for)।
हर कथन के अंदर की पंक्तियाँ ब्लॉक बनाती हैं और इंडेंट होनी चाहिए।
if और if-else
if शर्त:
ब्लॉक A # True होने पर
else:
ब्लॉक B # False होने परशर्त कोई भी व्यंजक है जो True या False दे, जैसे m >= 33। दोनों में से केवल एक ब्लॉक चलता है। else ज़रूरी नहीं: अकेला if केवल True होने पर चलता है, वरना कुछ नहीं करता।
n = int(input("संख्या: "))
if n % 2 == 0:
print("सम")
else:
print("विषम")
if-elif-else: कई विकल्प
दो से ज़्यादा रास्ते हों तो elif ("else if") लगाएँ। पायथन ऊपर से जाँचता है और पहली True शर्त का ब्लॉक चलाकर बाकी छोड़ देता है।
if m >= 90:
grade = "A"
elif m >= 75:
grade = "B"
elif m >= 60:
grade = "C"
elif m >= 33:
grade = "D"
else:
grade = "Retry"क्रम मायने रखता है। अगर m >= 33 पहले होता, तो 95 अंक वाले को भी D मिलता।
एक if के अंदर दूसरा if नेस्टेड if कहलाता है।
while लूप
i = 1 # 1. शुरुआत
while i <= 5: # 2. जाँच
print(i)
i += 1 # 3. बदलावशर्त True रहने तक ब्लॉक दोहराता है। वेरिएबल को पहले शुरू करना और अंदर बदलना ज़रूरी है, वरना लूप कभी ख़त्म नहीं होगा (अनंत लूप)। while तब लगाएँ जब पहले से पता न हो कि कितनी बार दोहराना है, जैसे "पासवर्ड सही होने तक पूछते रहो"।
for लूप और range()
for किसी क्रम (range, स्ट्रिंग, list) का हर आइटम बारी-बारी लेता है।
total = 0
for n in range(1, 6):
total += n
print(total) # 15range(stop): 0 से stop − 1। range(start, stop): start से stop − 1। range(start, stop, step): step की छलाँग; उलटी गिनती के लिए step ऋणात्मक।
for ch in "IP":
print(ch) # पहले I फिर Pwhile बनाम for
for: दोहराने की संख्या पता हो (range या list)। while: किसी शर्त के बदलने तक दोहराना।
अतिरिक्त: break लूप से तुरंत बाहर; continue अगले चक्कर पर।
करके देखें: ट्रेस तालिका
काग़ज़ पर i और आउटपुट कॉलम वाली तालिका बनाएँ। i = 10; while i > 0: print(i); i -= 3 को हाथ से ट्रेस करें। फिर चलाएँ। क्या 10, 7, 4, 1 आया? फिर 3D के कदम 6 में स्लाइडर से सबसे कम अंक ढूँढें जिन पर ग्रेड B मिले।
मुख्य सूत्र और परिभाषाएँ
- if शर्त: … else: … → ठीक एक ब्लॉक चलता है
- if … elif … elif … else → पहली True जीतती है
- while शर्त: → शुरुआत, जाँच, बदलाव
- range(start, stop, step): stop शामिल नहीं; range(n) = 0 … n−1
हल किए गए उदाहरण
1. संख्या धनात्मक, ऋणात्मक या शून्य है, बताने वाला प्रोग्राम लिखें।
n = int(input()) if n > 0: print("धनात्मक") elif n < 0: print("ऋणात्मक") else: print("शून्य")
2. क्या छपेगा? i = 1 while i < 10: print(i, end=" ") i *= 2
i = 1, 2, 4, 8 सब 10 से कम, फिर i = 16 पर रुकता है। आउटपुट: 1 2 4 8
3. for से पहली 10 प्राकृत संख्याओं का योग निकालें।
s = 0 for n in range(1, 11): s += n print(s) → 55। जाँच: 10 × 11 ÷ 2 = 55।
4. range(15, 2, -4) के मान लिखें।
15 से शुरू, 4 घटाते जाओ, 2 से पहले रुको: 15, 11, 7, 3।
5. 7 का पहाड़ा (7 × 1 से 7 × 10) छापें।
for i in range(1, 11): print(7, "x", i, "=", 7 * i)
6. while लूप से 5 का फ़ैक्टोरियल निकालें।
f = 1; n = 5 while n > 1: f *= n; n -= 1 ट्रेस: f = 5, 20, 60, 120। आउटपुट 120।
7. for k in range(3, 20, 5) का ब्लॉक कितनी बार चलेगा?
k = 3, 8, 13, 18 → 4 बार।
आम गलतियाँ
- range(1, 10) लिखकर 10 के शामिल होने की उम्मीद।
- while लूप में वेरिएबल बदलना भूलना, जिससे लूप अनंत हो जाए।
- elif सीढ़ी में चौड़ी शर्त (m >= 33) को संकरी (m >= 90) से पहले रखना।
- if, elif, else, while या for के बाद कोलन या इंडेंटेशन भूलना।