payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


Conditional Blocks   in Category: पाइथन   by amit

🕙 Posted on 2023-07-03 at 20:21:56


नियंत्रण संरचनाएँ

    नियंत्रण संरचनाएँ (Control Structures) कोड के ब्लॉक हैं, जिनका उपयोग विशिष्ट कार्यों को करने के लिए किया जाता है। सशर्त (condit­ional) कथन (statements), लूप्स (Loops), फ़ंक्शंस (functions) और क्लासेस (classes) नियंत्रण संरचनाएं हैं। अभी तक पायथन ट्यूटोरियल्स में इंडेंटेशन का उपयोग नहीं किया गया है। हालाँकि, नियंत्रण संरचनाएँ लिखते समय, आपको इंडेंटेशन के संबंध में सावधान रहना चाहिए, और कोड के दूसरे ब्लॉक के अंदर नेस्टेड (अन्दर लिखे) कोड के ब्लॉक में विभिन्न इंडेंटेशन के स्तर को बनाए रखना चाहिए।

सशर्त कथन

    सशर्त (condit­ional) कथन (statements) तीन प्रकार के हैं − (1) if ब्लॉक, (2) if else ब्लॉक, और (3) if elif else ब्लॉक, जिनका उपयोग आप पायथन प्रोग्राम में कर सकते हैं। ये तीनों ही महत्वपूर्ण हैं और इनका वाक्य-विन्यास (syntax) निम्न वर्णित है।

    निम्नलिखित तीन उदाहरणों में, आप विभिन्न प्रकार के सशर्त कथन (नियंत्रण संरचनाएं) देख सकते हैं, जो सशर्त अभिव्यक्ति (expression) True होने पर कुछ कार्य (अर्थात कोड के कुछ ब्लॉक निष्पादित) करेंगे। इन तीन उदाहरणों में, सरल तरीके से समझाने के लिए बूलियन डेटा-प्रकार का केवल शाब्दिक मान प्रदान किया गया है।

    आप जितना चाहे, स्वतंत्र if सशर्त ब्लॉक लिख सकते हैं, जो कुछ परिस्थितियों में जरुरी हो सकते हैं। प्रत्येक if ब्लॉक इसके बाद सशर्त अभिव्यक्ति की जांच करेगा, और जब इसका मूल्यांकन True किया जाएगा, तभी इंडेंटेशन के भीतर, इसके नीचे कोड का ब्लॉक निष्पादित किया जाएगा। इंडेंटेशन 1, 2, 3, या 4 रिक्त (सफ़ेद) स्थानों का हो सकता है।

if True:
  print( "Condition is True, and block will be executed." ) # शर्त सत्य है, और ब्लॉक निष्पादित किया जाएगा।

    उपरोक्त कोड में दूसरी पंक्ति में दो इंडेंटेशन स्थान प्रदान किए गए हैं। इसी प्रकार, निम्नलिखित उदाहरणों में, प्रत्येक सशर्त अभिव्यक्ति की जांच के बाद, यानी : (कोलन) प्रतीक के बाद, अगली पंक्ति में दो इंडेंटेशन स्थान प्रदान किए जाएगें।

    if else कोड का ब्लॉक किसी भी : (कोलन) प्रतीक के बाद कथनों के केवल एक सेट को निष्पादित करेगा। अर्थात्, जब सशर्त अभिव्यक्ति True है, तो कथनों का पहला सेट (if के नीचे) निष्पादित किया जाएगा, और जब सशर्त अभिव्यक्ति False है, तो कथनों का दूसरा सेट (else के नीचे) निष्पादित किया जाएगा।

    निम्नलिखित उदाहरण में, आप देख सकते हैं कि दोनों if और else कीवर्ड इंडेंटेशन के बिना हैं, और उनके नीचे के कोड विशेष रूप से दो रिक्त (सफ़ेद) स्थानों के बाद लिखे गए हैं। आपको प्रत्येक ब्लॉक के लिए समान स्तर का इंडेंटेशन प्रदान करना होगा, और आपको इंडेंटेशन (रिक्त स्थान) से विरोध (mismatch) नहीं होना चाहिए, अन्यथा IndetationError प्रदर्शित हो सकता है।

if False:
  print( "Condition is False, this statement will not be executed." ) # शर्त False है, यह कथन निष्पादित नहीं किया जाएगा.
else:
  print( "Statement below the else will be executed, when condition is False." ) # else के नीचे दिए गए कथन को निष्पादित किया जाएगा, जब शर्त False हो।

    PHP और जावास्क्रिप्ट में, कई शर्तों की जांच करने के लिए, if elseif else या if else if else (else if के बीच एक खाली जगह) सशर्त कथनों का उपयोग किया जाता है। लेकिन पायथन में, आपको सावधान रहना चाहिए, और केवल if elif else नियंत्रण संरचना का उपयोग करना चाहिए। elif एक आरक्षित कीवर्ड है और else if या elseif का संक्षिप्त (या छोटा) रूप नहीं है। इन नियंत्रण संरचनाओं की कार्यक्षमता तीनों प्रोग्रामिंग भाषाओं और अन्य C आधारित प्रोग्रामिंग भाषाओं में समान है।

    निम्नलिखित उदाहरण में, (किसी भी सशर्त ब्लॉक के अंदर) कथनों का केवल एक सेट निष्पादित किया जाएगा। यहां नीचे दिए गए उदाहरण में, if, elif या else ब्लॉक में केवल एक कथन लिखा गया है (यह बताने के लिए कि निम्नलिखित उदाहरण कैसे काम करता है), हालांकि इंडेंटेशन के भीतर : (कोलन) प्रतीक के बाद (अगली पंक्ति से) कई कथन लिखे जा सकते हैं।

    आप if और else ब्लॉक के बीच में कई elif शर्तें जोड़ सकते हैं, लेकिन कथनों का केवल एक सेट निष्पादित किया जाएगा, जब या तो किसी एक शर्त का मूल्यांकन True के रूप में किया जाता है, या सभी शर्तों का मूल्यांकन False के रूप में किया जाता है, तो else ब्लॉक के बाद कथनों का अंतिम सेट निष्पादित किया जाएगा। आपको else ब्लॉक प्रदान करने की आवश्यकता नहीं है, और इसलिए, जब सभी शर्तों का मूल्यांकन False के रूप में किया जाएगा, तो if elif ब्लॉक में कुछ भी निष्पादित नहीं किया जाएगा।

if False:
  print( "Condition is False, this statement will not be executed." ) # शर्त False है, यह कथन निष्पादित नहीं किया जाएगा.
elif True:
  print( "Statement below elif will be executed, when if condition is False, and elif condition is True." ) # elif के नीचे दिए गए कथन को निष्पादित किया जाएगा, जब if की शर्त False हो और elif की शर्त True हो।
else:
  print( "Statement below the else will be executed, when above two conditions are False." ) # else के नीचे का कथन निष्पादित किया जाएगा, जब उपरोक्त दोनों शर्तें False हों।

    निम्नलिखित उदाहरण में, आप देख सकते हैं कि if elif else कोड के ब्लॉक से पहले के सभी तीन कथन इंडेंटेशन के बिना हैं। इन तीन कथनों में, condition1 = False, condition2 = True, and condition3 = False, तीन चर नाम बूलियन शाब्दिक के साथ निर्दिष्ट किए गए हैं। ये कथन सशर्त अभिव्यक्ति हो सकते हैं, उदाहरण के लिए, 5 < 4 जिसका मूल्यांकन False किया जाता है।

condition1 = False
condition2 = True
condition3 = True

# कोड के निम्नलिखित if-elif-else ब्लॉक में,
# विभिन्न इंडेंटेशन स्तरों को रंग कोड (color coded) किया गया है।
# दो रिक्त स्थान पीले रंग से रंगे गए हैं, और
# चार रिक्त स्थान हरे रंग से रंगे गए हैं।


if condition1:
  # निष्पादित किए जाने वाले कोड का ब्लॉक
  print("Hello from if condition.")
  # नेस्टेड सशर्त बयानों में इंडेंटेशन होना चाहिए।
  if condition3:
    # इंडेंटेशन का दूसरा स्तर
    print("Hello from Nested if condition")
elif condition2:
  # block of codes to be executed.
  print("Hello from elif condition.")
else:
  # block of codes to be executed.
  print("Hello from else (when all conditions are False).")

    इन if, if else और if elif else ब्लॉकों की मदद से, आप जटिल सीएलआई (CLI) एप्लिकेशन, या वेब-डेवलपमेंट ऐप, इत्यादि बना सकते हैं। उन्नत (advanced) अनुभाग (section) में, आप परिष्कृत ज्योतिष ऐप बनाना सीखेंगे, जो इन उदाहरणों (बेसिक पायथन कौशल सीखने) के मुकाबले कहीं अधिक जटिल हो सकता है। निम्नलिखित उदाहरण में, आप सीखेंगे कि यह कैसे निर्धारित किया जाए कि कोई वर्ष लीप वर्ष है या नहीं।

    स्कूल में हमें सिखाया गया है कि कोई भी वर्ष जो 4 से विभाज्य है, एक लीप वर्ष है, के विपरीत इसमें जटिल गणना है, जैसा कि नीचे दिखाया गया है। आप इस प्रकार पता लगा सकते हैं कि यदि कोई विशेष वर्ष एक लीप वर्ष है:
(1) प्रत्येक वर्ष 4 से समान रूप से विभाज्य है, लेकिन
(2) वह वर्ष 100 से समान रूप से विभाज्य नहीं है,
(3) और जब वह वर्ष 100 से समान रूप से विभाज्य है, तो 400 से भी समान रूप से विभाज्य है।

    निम्नलिखित तीन उदाहरणों में, आप यह भी देख सकते हैं कि विभिन्न इंडेंटेशन स्तर रंग-कोडित हैं, यानी दो रिक्त स्थान पीले रंग के हैं, चार रिक्त स्थान हरे रंग के हैं, और छह रिक्त स्थान सियान (cyan) रंग के हैं। उपरोक्त अभ्यास को लिखने के लिए, अर्थात दिए गए सॅंख्या को लीप वर्ष निर्धारित करने के लिए, आपको पहले if else कोड के निम्नलिखित ब्लॉक को लिखना चाहिए।

if year % 4 == 0:
  # जब (नीचे उदाहरण में जोड़ा गया) नेस्टेड if शर्त का मूल्यांकन false है, तो
  # year लीप वर्ष है, अन्यथा दूसरे नेस्टेड if else ब्लॉक की जरुरत होगी
else:
  # जब (year % 4 != 0) है, तो निम्नलिखित कथन का निष्पादन होगा।
  print(year, " is not a leap year.")

    फिर, कोड का पहला नेस्टेड if else ब्लॉक निम्नानुसार डालें।

if year % 4 == 0:
  if year % 100 == 0:
    # जब (year % 100 == 0) का मूल्यांकन True है, तब दूसरे
    # (नीचे उदाहरण में जोड़ा गया) नेस्टेड if else ब्लॉक की जरुरत होगी।
  else:
    print(year, " is a leap year.")
else:
  print(year, " is not a leap year.")

    उसके बाद, आप if else कोड का एक और नेस्टेड ब्लॉक सम्मिलित कर सकते हैं जैसा कि नीचे (पूर्ण) उदाहरण में दिखाया गया है।

year = int( input( "Enter the year to check for leap year: " ) )
if year % 4 == 0:
  if year % 100 == 0:
    if year % 400 == 0:
      print(year, " is a leap year.")
    else:
      print(year, " is not a leap year.")
  else:
    print(year, " is a leap year.")
else:
  print(year, " is not a leap year.")

    आपको लीप वर्ष की अवधारणा को समझाने के लिए कुछ वर्ष नीचे दिखाए गए हैं। जब पहली स्थिति (उदाहरण के लिए, एक व्यक्ति के रूप में) का मूल्यांकन True के रूप में किया जाता है, तो उपयोगकर्ता द्वारा प्रदान किया गया वर्ष एक लीप वर्ष होगा, केवल तभी जब नेस्टेड शर्त (व्यक्ति का बच्चा) का मूल्यांकन False के रूप में किया जाता है। जब नेस्टेड शर्त (बच्चे) का मूल्यांकन False के रूप में किया जाता है, तो दूसरी नेस्टेड शर्त (व्यक्ति का पोता, अर्थात बच्चे का बच्चा) का मूल्यांकन नहीं किया जाएगा। लेकिन जब पहली नेस्टेड शर्त (child) का मूल्यांकन True के रूप में किया जाता है, तो वह वर्ष लीप वर्ष नहीं होगा, सिवाय इसके कि जब दूसरी नेस्टेड शर्त (grand-child) का मूल्यांकन भी True के रूप में किया जाता है। जब तीनों स्थितियों का मूल्यांकन True के रूप में किया जाता है, तो वह वर्ष लीप वर्ष होगा।
(2000%4==0) और (2000%100==0) और (2000%400==0) एक लीप वर्ष है।
(2100%4==0) और (2100%100==0) और (2100%400==100) लीप वर्ष नहीं है।
(1900%4==0) और (1900%100==0) और (1900%400==300) लीप वर्ष नहीं है।
(2400%4==0) और (2400%100==0) और (2400%400==0) एक लीप वर्ष है।
(2024%4==0) और (2024%100==24) और (2024%400 आवश्यक नहीं) एक लीप वर्ष है।


Leave a Comment: