शुरुआत से Pythonशुरुआतीपाठ 1017 मिनट का पाठ

if के साथ फैसले लेना

प्रोग्राम तब काम के बनते हैं जब वे कोई फैसला ले सकें। वैल्यूज़ की तुलना करना सीखें और अलग-अलग मामलों में अलग-अलग काम करने के लिए if, elif और else का इस्तेमाल करें।

पाठ वीडियो में

60 सेकंड में

if के साथ फैसले लेना

प्रोग्राम तब काम के बनते हैं जब वे कोई फैसला ले सकें। वैल्यूज़ की तुलना करना सीखें और अलग-अलग मामलों में अलग-अलग काम करने के लिए if, elif और else का इस्तेमाल करें।

1/4
आसान शब्दों में
हर सुबह आप छोटे-छोटे फैसले लेते हैं: अगर बारिश हो रही है, तो छाता ले लो; नहीं तो, टोपी पहन लो। कोई प्रोग्राम भी बिल्कुल इसी तरह फैसले ले सकता है। वह किसी चीज़ की जांच करता है, और फिर तय करता है कि क्या करना है।

वैल्यूज़ की तुलना करना

एक तुलना (comparison) हां-या-ना वाला सवाल पूछती है। इसका जवाब या तो True होता है या False। इन दोनों वैल्यूज़ का अपना एक टाइप होता है, जिसे bool (Boolean का छोटा रूप) कहा जाता है।
चिह्नमतलबउदाहरणजवाब
==इसके बराबर है5 == 5True
!=इसके बराबर नहीं है5 != 3True
>इससे बड़ा है40 > 35True
<इससे छोटा है20 < 10False
>=इससे बड़ा या इसके बराबर है35 >= 35True
<=इससे छोटा या इसके बराबर है36 <= 35False
सावधान रहें
एक = किसी वैल्यू को स्टोर करता है: marks = 80। दो == तुलना करते हैं: marks == 80। इन्हें आपस में मिला देना शुरुआत करने वालों की सबसे आम गलतियों में से एक है।

if और else

Python: pass or notpython
marks = 42
if marks >= 35:
    print("Passed! Well done.")
else:
    print("Not passed this time. Keep practising.")
print("Result checked.")
इसके स्ट्रक्चर को ध्यान से देखें:
  • if वाली लाइन कोलन : पर खत्म होती है।
  • जो लाइनें if के अंदर आती हैं, उन्हें 4 स्पेस आगे खिसकाया जाता है। इसे indentation कहते हैं, और Python में यह सिर्फ दिखावे के लिए नहीं, बल्कि ज़रूरी होता है।
  • else: का मतलब है "बाकी सभी मामलों में"। इसकी अपनी कोई शर्त (condition) नहीं होती।
  • आखिरी लाइन इंडेंटेड नहीं है, इसलिए मार्क्स चाहे जो भी हों, यह हर बार चलेगी।

elif के साथ कई विकल्प

elif असल में "else if" का छोटा रूप है। Python ऊपर से नीचे तक हर शर्त को जांचता है और सिर्फ उसी पहली शर्त को चलाता है जो True होती है। उसके बाद वह बाकी सबको छोड़ देता है।
Python: ticket counterpython
age = 9
if age < 5:
    ticket = "free"
elif age < 12:
    ticket = "child"
else:
    ticket = "adult"
print(f"Age {age}: {ticket} ticket")   # made-up rules, just for practice
9 साल की उम्र के लिए, पहली जांच (age < 5) False है, दूसरी (age < 12) True है, इसलिए टिकट "child" मिलती है और Python कभी else को देखता ही नहीं। जांचों का क्रम बहुत मायने रखता है।

शर्तों को जोड़ना: and, or, not

Python: combining conditionspython
temperature = 34
has_water = True
if temperature > 30 and has_water:
    print("Hot day, but you have water. Good.")
if temperature > 30 or temperature < 10:
    print("Extreme weather today.")
if not has_water:
    print("Please carry a bottle.")

functions की पहली झलक

लैब में आप अपने फैसले को एक छोटे function के अंदर रखेंगे। function कुछ तय कदमों का एक नाम वाला सेट होता है जो कोई वैल्यू लेता है और एक जवाब वापस देता है। आप Lesson 6 में functions को ठीक से सीखेंगे। अभी के लिए, बस इसके स्ट्रक्चर को समझें:
Python: a tiny functionpython
def ticket_type(age):
    if age < 12:
        return "child"
    else:
        return "adult"

print(ticket_type(8))
print(ticket_type(30))
def से function शुरू होता है। age वह वैल्यू है जो इसे मिलती है। return जवाब को वापस भेज देता है। इसके बाद आप अलग-अलग उम्र के साथ इस function का बार-बार इस्तेमाल कर सकते हैं।
उलझन भरा
  • if marks >= 35 के बाद कोलन लगाना भूल जाना
  • कुछ लाइनों में 2 स्पेस और बाकी में 4 स्पेस का इंडेंटेशन होना
  • elif की चेन में if marks >= 90 से पहले if marks >= 35 रख देना, जिससे 95 कभी टॉप ग्रेड तक पहुंच ही न पाए
साफ-सुथरा
  • हर if, elif और else वाली लाइन : पर खत्म होती है
  • इंडेंटेशन के हर लेवल के लिए हमेशा 4 स्पेस रखें
  • पहले सबसे ऊंचे लेवल की जांच करें, फिर नीचे की तरफ बढ़ें
इसे आज़माएं। टिकट काउंटर में age = 12 सेट करें। आपको कौन सी टिकट मिलती है? क्या नियम ऐसा ही होना चाहिए? < को <= में बदलने से यह बदल जाता है कि किसे बच्चा माना जाएगा।

और देखें और पढ़ें

लैब

एक grade(marks) फ़ंक्शन जो परीक्षा के मार्क्स को ग्रेड में बदलता है।

~12 min

समस्या

grade(marks) फ़ंक्शन को पूरा करें ताकि यह इन नियमों (जो इस लैब के लिए बनाए गए हैं) का इस्तेमाल करके 100 में से आए मार्क्स के लिए सही ग्रेड लौटाए:

मार्क्सग्रेड
90 से 100"A"
75 से 89"B"
60 से 74"C"
35 से 59"D"
35 से कम"Fail"
  1. यह देखने के लिए Run दबाएं कि शुरुआती कोड अभी क्या देता है। कुछ जवाब गलत हैं।
  2. B, C और D के लिए elif वाली लाइनें जोड़ें। सबसे ऊंचे ग्रेड से शुरू करें और नीचे की तरफ बढ़ें।
  3. किनारों की जांच करें: 90, 89, 75, 74, 60, 59, 35 और 34। किनारे वही जगह हैं जहाँ बग्स छिपे होते हैं।

जब हर लाइन ठीक दिखे, तो Check दबाएं।

प्रैक्टिस लैब

कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।

आउटपुट

कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1elif जांचों का क्रम क्यों मायने रखता है? दिखाएं कि अगर <code>marks &gt;= 35</code> पहले आ जाए तो क्या गड़बड़ होती है।दिखाएं

Python सिर्फ उसी पहली शाखा को चलाता है जो True होती है। अगर पहली जांच marks >= 35 है, तो 95 इसमें पास हो जाएगा और उसे "D" मिल जाएगा, और A, B और C की जांच तक कोड कभी पहुंचेगा ही नहीं। सबसे ऊंचे लेवल की जांच पहले करने से बाद की हर जांच का मतलब "इसके और इसके ऊपर वाले के बीच" बन जाता है।

Q2एक समझदार grade फ़ंक्शन को 105 या -3 जैसे मार्क्स के साथ क्या करना चाहिए, और आप इसे कैसे जोड़ सकते हैं?दिखाएं

100 में से होने वाले टेस्ट के लिए ये मार्क्स नामुमकिन हैं, इसलिए ग्रेड देने के बजाय इन पर चेतावनी देना ज़्यादा सुरक्षित है। आप सबसे पहले एक जांच जोड़ सकते हैं, जैसे कि if marks < 0 or marks > 100: return "Invalid"। गलत इनपुट को शुरुआत में ही पकड़ लेना सभी प्रोग्रामों में एक अच्छी आदत होती है।

जारी रखने के लिए कृपया साइन इन करें।

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

क्या मुझे हमेशा else की ज़रूरत होती है?

नहीं। जब आप सिर्फ किसी एक ही मामले में कुछ करना चाहते हैं, तो अकेले if का इस्तेमाल करना ठीक है। else तब जोड़ें जब आप बाकी सभी मामलों में भी कुछ करना चाहते हों।

Python स्पेस पर इतना ध्यान क्यों देता है?

Python इंडेंटेशन का इस्तेमाल यह जानने के लिए करता है कि कौन सी लाइनें if के अंदर आती हैं। दूसरी भाषाएं इसके लिए कर्ली ब्रैकेट का इस्तेमाल करती हैं। आम तौर पर चार स्पेस देने का तरीका अपनाया जाता है। कई कोड एडिटर Tab दबाने पर खुद ही इन्हें जोड़ देते हैं।

क्या मैं टेक्स्ट की तुलना कर सकता हूँ?

हाँ। "Delhi" == "Delhi" तो True है, लेकिन "delhi" == "Delhi" False है, क्योंकि कैपिटल अक्षरों से फर्क पड़ता है। एक आम तरीका यह है कि लोअर-केस वाले रूपों की तुलना की जाए: city.lower() == "delhi"।

कई सारे if और एक if-elif चेन में क्या अंतर है?

अलग-अलग if स्टेटमेंट्स में से हर एक की जांच की जाती है, इसलिए एक से ज़्यादा चल सकते हैं। एक if/elif/else चेन में, सिर्फ वही पहला हिस्सा चलता है जो True होता है। ग्रेड्स के लिए, आपको बिल्कुल एक ही जवाब चाहिए होता है, इसलिए चेन का इस्तेमाल सही है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें