प्रोग्राम में निर्देश सामान्यतः ऊपर से नीचे क्रम से चलते हैं, परंतु कई बार हमें शर्तों के अनुसार निर्णय लेने की आवश्यकता होती है। इसके लिए पाइथन में कंट्रोल स्ट्रक्चर (Control Structures) का उपयोग होता है। ये प्रोग्राम के निष्पादन की दिशा निर्धारित करते हैं। मुख्य कंट्रोल स्ट्रक्चर निम्नलिखित हैं:
इस अध्याय में हम निर्णयात्मक कंट्रोल स्ट्रक्चर - if, if-else, if-elif-else और नेस्टेड if का विस्तार से अध्ययन करेंगे। साथ ही तुलनात्मक और तार्किक ऑपरेटरों को भी सीखेंगे।
शर्तों में तुलना करने के लिए तुलनात्मक ऑपरेटरों का उपयोग होता है:
| ऑपरेटर | अर्थ | उदाहरण |
|---|---|---|
| == | बराबर | 5 == 5 (True) |
| != | बराबर नहीं | 5 != 3 (True) |
| > | बड़ा | 7 > 3 (True) |
| < | छोटा | 7 < 3 (False) |
| >= | बड़ा या बराबर | 7 >= 7 (True) |
| <= | छोटा या बराबर | 5 <= 6 (True) |
कई शर्तों को जोड़ने के लिए तार्किक ऑपरेटरों का उपयोग होता है:
if कथन किसी शर्त की जाँच करता है। यदि शर्त सत्य (True) हो, तो उसके अंदर का कोड चलता है; यदि असत्य (False) हो, तो कोड छोड़ दिया जाता है।
उम्र = 15
if उम्र >= 13:
print("आप किशोर हैं")
यहाँ यदि उम्र 13 से बड़ी या बराबर है, तो 'आप किशोर हैं' प्रिंट होगा। ध्यान दें कि if के अंदर का कोड इंडेंटेशन (स्पेस) से लिखा जाता है।
if-else में शर्त सत्य होने पर एक कोड और असत्य होने पर दूसरा कोड चलता है।
अंक = 45
if अंक >= 33:
print("उत्तीर्ण")
else:
print("अनुत्तीर्ण")
यहाँ अंक 33 से अधिक होने पर 'उत्तीर्ण' नहीं तो 'अनुत्तीर्ण' प्रिंट होगा।
जब एक से अधिक शर्तें हों, तो if-elif-else का उपयोग होता है। elif का अर्थ 'else if' है।
अंक = 85
if अंक >= 90:
print("ग्रेड A")
elif अंक >= 75:
print("ग्रेड B")
elif अंक >= 60:
print("ग्रेड C")
else:
print("ग्रेड D")
यहाँ अंक 85 है, इसलिए पहली शर्त (>=90) असत्य है, दूसरी शर्त (>=75) सत्य है, इसलिए 'ग्रेड B' प्रिंट होगा।
जब किसी if के अंदर कोई और if लगाया जाता है, तो उसे नेस्टेड if कहते हैं। यह तब उपयोगी है जब एक शर्त के सत्य होने के बाद दूसरी शर्त जाँचनी हो।
संख्या = 10
if संख्या > 0:
if संख्या % 2 == 0:
print("धनात्मक सम संख्या")
else:
print("धनात्मक विषम संख्या")
पाइथन में if, else आदि के अंदर का कोड इंडेंटेशन (बायें से समान स्पेस) से लिखा जाता है। इंडेंटेशन न होने पर IndentationError आती है। यह पाइथन की सबसे विशिष्ट विशेषता है, क्योंकि अन्य भाषाओं में कोड को कर्ली ब्रेसेस { } से व्यवस्थित किया जाता है।
कंट्रोल स्ट्रक्चर को वास्तविक जीवन की समस्याओं पर लागू करने से इसकी समझ मजबूत होती है। आइए कुछ उदाहरण देखें:
संख्या = int(input("संख्या दर्ज करें: "))
if संख्या > 0:
print("धनात्मक संख्या")
elif संख्या < 0:
print("ऋणात्मक संख्या")
else:
print("शून्य")
इस कोड में उपयोगकर्ता द्वारा दर्ज संख्या का परीक्षण करके उसकी प्रकृति बताई जाती है। यदि संख्या शून्य से बड़ी है, तो 'धनात्मक', छोटी है तो 'ऋणात्मक' और बराबर है तो 'शून्य' प्रिंट होगा।
a = 5
b = 8
if a > b:
print("a बड़ा है")
else:
print("b बड़ा है")
यहाँ 8, 5 से बड़ा है, इसलिए 'b बड़ा है' प्रिंट होगा।
अंक = int(input("अंक दर्ज करें: "))
if अंक >= 33:
print("उत्तीर्ण")
else:
print("अनुत्तीर्ण")
इन उदाहरणों से स्पष्ट है कि if-else के माध्यम से हम प्रोग्राम में निर्णय ले सकते हैं। शर्त में तुलनात्मक ऑपरेटर (>, <, >=, <=, ==, !=) और तार्किक ऑपरेटर (and, or, not) दोनों का उपयोग होता है। जटिल समस्याओं के समाधान में कभी-कभी कई शर्तों को and या or से जोड़ा जाता है। उदाहरण के लिए, यदि किसी प्रतियोगिता में प्रवेश के लिए न्यूनतम अंक और न्यूनतम आयु दोनों आवश्यक हों, तो शर्त इस प्रकार लिखी जा सकती है:
if अंक >= 60 and उम्र >= 12:
print("प्रवेश स्वीकृत")
else:
print("प्रवेश अस्वीकृत")
इस प्रकार, and ऑपरेटर दोनों शर्तों को एक साथ जाँचने में सहायक है। यदि दोनों में से कोई एक शर्त भी असत्य हो, तो else का कोड चलेगा। शर्तों के इसी व्यवस्थित उपयोग से प्रोग्राम वास्तविक समस्याओं का सही समाधान कर पाते हैं।
कंट्रोल स्ट्रक्चर के उपयोग से प्रोग्राम केवल कथनों की सूची नहीं, बल्कि निर्णय लेने में सक्षम एक बुद्धिमान प्रणाली बन जाता है। उदाहरण के लिए, स्कूल की मार्कशीट में ग्रेड निर्धारित करना, बिजली बिल में स्लैब के अनुसार दर लगाना, या किसी खेल में विजेता तय करना - इन सभी कार्यों में if-elif-else ही सहायता करता है। परीक्षा के दृष्टिकोण से यह ध्यान रखना चाहिए कि कोलन (:) और इंडेंटेशन के बिना पाइथन का कंट्रोल स्ट्रक्चर कार्य नहीं करता। इसलिए कोड लिखते समय इन दोनों पर विशेष ध्यान देना आवश्यक है।
| ऑपरेटर | अर्थ | उदाहरण परिणाम |
|---|---|---|
| == | बराबर | 5 == 5 (True) |
| != | असमान | 5 != 3 (True) |
| > | बड़ा | 7 > 3 (True) |
| < | छोटा | 7 < 3 (False) |
| >= | बड़ा या बराबर | 7 >= 7 (True) |
| <= | छोटा या बराबर | 5 <= 6 (True) |
| ऑपरेटर | नियम | उदाहरण |
|---|---|---|
| and | दोनों सत्य | True and True = True |
| or | कोई एक सत्य | True or False = True |
| not | परिणाम उल्टा | not True = False |
| स्ट्रक्चर | उपयोग |
|---|---|
| if | एक शर्त |
| if-else | दो विकल्प |
| if-elif-else | कई शर्तें |
| नेस्टेड if | if के अंदर if |
कंट्रोल स्ट्रक्चर प्रोग्राम को निर्णय लेने की शक्ति देते हैं। if कथन एक शर्त, if-else दो विकल्प, और if-elif-else अनेक शर्तों के लिए उपयोगी है। नेस्टेड if जटिल शर्तों को संभालता है। तुलनात्मक (==, >, <) और तार्किक (and, or, not) ऑपरेटर शर्तों को सशक्त बनाते हैं। पाइथन में इंडेंटेशन कोड ब्लॉकों की पहचान का आधार है, इसलिए इसकी अनदेखी त्रुटि का कारण बनती है। इस अध्याय का ज्ञान विद्यार्थियों को वास्तविक समस्याओं (ग्रेड निर्धारण, परीक्षा परिणाम, संख्या की जाँच) के समाधान के प्रोग्राम लिखने में सक्षम बनाता है। आगे के अध्याय में हम लूप्स और फंक्शन का अध्ययन करेंगे, जो प्रोग्रामिंग को और अधिक शक्तिशाली बनाते हैं।