if के साथ फैसले लेना
प्रोग्राम तब काम के बनते हैं जब वे कोई फैसला ले सकें। वैल्यूज़ की तुलना करना सीखें और अलग-अलग मामलों में अलग-अलग काम करने के लिए if, elif और else का इस्तेमाल करें।
60 सेकंड में
if के साथ फैसले लेना
प्रोग्राम तब काम के बनते हैं जब वे कोई फैसला ले सकें। वैल्यूज़ की तुलना करना सीखें और अलग-अलग मामलों में अलग-अलग काम करने के लिए if, elif और else का इस्तेमाल करें।
वैल्यूज़ की तुलना करना
True होता है या False। इन दोनों वैल्यूज़ का अपना एक टाइप होता है, जिसे bool (Boolean का छोटा रूप) कहा जाता है।| चिह्न | मतलब | उदाहरण | जवाब |
|---|---|---|---|
== | इसके बराबर है | 5 == 5 | True |
!= | इसके बराबर नहीं है | 5 != 3 | True |
> | इससे बड़ा है | 40 > 35 | True |
< | इससे छोटा है | 20 < 10 | False |
>= | इससे बड़ा या इसके बराबर है | 35 >= 35 | True |
<= | इससे छोटा या इसके बराबर है | 36 <= 35 | False |
= किसी वैल्यू को स्टोर करता है: marks = 80। दो == तुलना करते हैं: marks == 80। इन्हें आपस में मिला देना शुरुआत करने वालों की सबसे आम गलतियों में से एक है।if और else
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 होती है। उसके बाद वह बाकी सबको छोड़ देता है।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 practiceage < 5) False है, दूसरी (age < 12) True है, इसलिए टिकट "child" मिलती है और Python कभी else को देखता ही नहीं। जांचों का क्रम बहुत मायने रखता है।शर्तों को जोड़ना: and, or, not
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 की पहली झलक
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) फ़ंक्शन जो परीक्षा के मार्क्स को ग्रेड में बदलता है।
समस्या
grade(marks) फ़ंक्शन को पूरा करें ताकि यह इन नियमों (जो इस लैब के लिए बनाए गए हैं) का इस्तेमाल करके 100 में से आए मार्क्स के लिए सही ग्रेड लौटाए:
| मार्क्स | ग्रेड |
|---|---|
| 90 से 100 | "A" |
| 75 से 89 | "B" |
| 60 से 74 | "C" |
| 35 से 59 | "D" |
| 35 से कम | "Fail" |
- यह देखने के लिए Run दबाएं कि शुरुआती कोड अभी क्या देता है। कुछ जवाब गलत हैं।
- B, C और D के लिए
elifवाली लाइनें जोड़ें। सबसे ऊंचे ग्रेड से शुरू करें और नीचे की तरफ बढ़ें। - किनारों की जांच करें: 90, 89, 75, 74, 60, 59, 35 और 34। किनारे वही जगह हैं जहाँ बग्स छिपे होते हैं।
जब हर लाइन ठीक दिखे, तो Check दबाएं।
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1elif जांचों का क्रम क्यों मायने रखता है? दिखाएं कि अगर <code>marks >= 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%)।