True और False — प्रश्न पूछना सीखना
तुलना ऑपरेटर, and / or / not, शृंखलाबद्ध तुलना, और कौन से मान पायथन की नज़र में असत्य हैं — शर्तें लिखने से पहले आवश्यक आधार।
- 1समस्या
- 2समझें
- 3उदाहरण
- 4अनुमान
- 5स्वयं करें
- 6चुनौती
वह समस्या जिसे हम हल कर रहे हैं
एक प्रोग्राम को कोई निर्णय लेना होता है: क्या इस ऑर्डर पर छूट मिलनी चाहिए? क्या पासवर्ड पर्याप्त लंबा है? क्या वस्तु स्टॉक में उपलब्ध है?
निर्णय लेने वाला कोड अगले मिशन (if) में आएगा। लेकिन उससे पहले आपको वह चीज़ चाहिए जिस पर निर्णय आधारित होता है — एक प्रश्न जिसका उत्तर हाँ या ना हो। पायथन में इन उत्तरों को True और False कहा जाता है, और इस प्रकार को bool कहा जाता है।
आज हम केवल प्रश्न पूछना सीखते हैं, निर्णय लेना नहीं। इसे इस तरह अलग करना जानबूझकर किया गया है: if लिखते समय लोग जो गलतियाँ करते हैं, उनमें से लगभग हर गलती वास्तव में प्रश्न में होती है, न कि if में।
इस मिशन के अंत तक आप सीखेंगे
- छह तुलना ऑपरेटरों का उपयोग करना
=और==के बीच का अंतर पहचाननाand,orऔरnotके साथ छोटे प्रश्नों को बड़े प्रश्नों में जोड़ना18 <= age <= 60जैसी शृंखलाबद्ध तुलनाएँ लिखना- यह बताना कि पायथन किन मानों को
Falseन होने पर भी असत्य मानता है
पूर्वापेक्षाएँ: उपयोगकर्ता से इनपुट लेना.
छह तुलना ऑपरेटर
age = 22
print(age == 22)
print(age != 22)
print(age > 18)
print(age < 18)
print(age >= 22)
print(age <= 21)True
False
True
False
True
Falseप्रत्येक तुलना एक मान उत्पन्न करती है — True या False। इसका मतलब है कि एक तुलना को वेरिएबल में संग्रहीत किया जा सकता है:
age = 22
is_adult = age >= 18
print(is_adult)
print(type(is_adult))True
<class 'bool'>इस तरह नामकरण करने से कोड पढ़ना कहीं अधिक आसान हो जाता है — is_adult स्पष्ट बताता है कि क्या जाँचा जा रहा है, जबकि age >= 18 पाठक को सोचने पर मजबूर करता है।
= और == — एक अक्षर, अलग अर्थ
total = 100 # एक निर्देश: 100 को total में रखो
print(total == 100) # एक प्रश्न: क्या total 100 है?True=संग्रहीत करता है (असाइनमेंट)==पूछता है (तुलना)
यदि आप शर्त के स्थान पर = लिखते हैं, तो पायथन 3 एक स्पष्ट त्रुटि देता है:
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?टेक्स्ट की तुलना
print("rafi" == "rafi")
print("Rafi" == "rafi")
print("apple" < "banana")
print(len("password123") >= 8)True
False
True
Trueदो बातों पर ध्यान दें:
केस (अक्षर का आकार) मायने रखता है। "Rafi" और "rafi" समान नहीं हैं। उपयोगकर्ता द्वारा टाइप किए गए टेक्स्ट से तुलना करते समय, पहले .lower() चलाएँ:
typed = " RAFI "
print(typed == "rafi")
print(typed.strip().lower() == "rafi")False
True< टेक्स्ट पर भी काम करता है, शब्दकोश क्रम के अनुसार — इसलिए "apple" < "banana"। यह नामों की सूची को क्रमबद्ध करने का आधार है।
and, or, not
तीन शब्द छोटे प्रश्नों को बड़े प्रश्नों में जोड़ते हैं:
age = 22
has_id = True
print(age >= 18 and has_id)
print(age >= 60 or has_id)
print(not has_id)True
True
Falseand— तब सत्य जब दोनों सत्य होंor— तब सत्य जब कम से कम एक सत्य होnot— मान को उलट देता है
print(True and True)
print(True and False)
print(False and False)
print(True or False)
print(False or False)True
False
False
True
Falseorका अर्थ "एक या अधिक" है, "केवल एक" नहीं। बोलचाल में "चाय या कॉफी?" का अर्थ किसी एक से होता है। पायथन काorतब भीTrueहोता है जब दोनों पक्ष सत्य हों।
not हमेशा अपने तुरंत बाद आने वाले पर लागू होता है, और यह सबसे पहले चलता है। क्रम है: पहले not, फिर and, और अंत में or।
print(True or False and False)
print((True or False) and False)True
Falseसंदेह होने पर कोष्ठक () का उपयोग करें।
शृंखलाबद्ध तुलना (Chained comparisons)
यह जाँचने के लिए कि क्या कोई मान दो सीमाओं के बीच है, पायथन आपको इसे गणित की तरह लिखने की अनुमति देता है:
marks = 72
print(0 <= marks <= 100)
print(marks > 60 and marks < 80)
print(60 < marks < 80)True
True
Trueकौन से मान पायथन में असत्य माने जाते हैं
केवल False ही नहीं — कुछ सामान्य मान भी असत्य माने जाते हैं:
print(bool(0))
print(bool(1))
print(bool(-5))
print(bool(""))
print(bool("hello"))
print(bool("0"))
print(bool("False"))False
True
True
False
True
True
Trueनियम एक पंक्ति में: शून्य और खाली चीज़ें असत्य हैं, बाकी सब सत्य हैं। इसलिए 0 असत्य है और खाली स्ट्रिंग "" असत्य है; लेकिन -5 सत्य है (यह शून्य नहीं है), और "0" और "False" सत्य हैं — क्योंकि वे खाली नहीं हैं।
input() से आने वाली हर चीज़ टेक्स्ट होती है, इसलिए जब कोई 0 टाइप करता है, तो आपके पास "0" होता है — जिसे पायथन सत्य मानता है। संख्याओं की तुलना करने के लिए आपको पहले int() से बदलना होगा।
एक संपूर्ण उदाहरण
eligibility.py:
# Check a discount rule without deciding anything yet
age = int(input("Age : "))
years_member = int(input("Years a member : "))
order_total = float(input("Order total : "))
is_adult = age >= 18
is_senior = age >= 60
is_loyal = years_member >= 2
is_large_order = order_total >= 1000
# The rule: adults who are either long-standing members or spending a lot
gets_discount = is_adult and (is_loyal or is_large_order)
print()
print(f"Adult : {is_adult}")
print(f"Senior : {is_senior}")
print(f"Loyal member : {is_loyal}")
print(f"Large order : {is_large_order}")
print(f"Gets discount : {gets_discount}")Age : 34
Years a member : 1
Order total : 1500
Adult : True
Senior : False
Loyal member : False
Large order : True
Gets discount : Trueजब यह टूटता है
SyntaxError: invalid syntax. Maybe you meant '==' ... जहाँ तुलना होनी चाहिए वहाँ = लिखा गया है। == का उपयोग करें।
ये बराबर होने चाहिए, लेकिन मुझे False मिलता है तीन चीज़ें जाँचें: अतिरिक्त स्पेस (.strip()), अक्षरों का आकार (.lower()), और प्रकार — "22" == 22 हमेशा False होता है।
TypeError: '<' not supported between instances of 'str' and 'int' आपने टेक्स्ट की तुलना संख्या से की, संभवतः input() को बदलना भूल गए। इसे int() में लपेटें।
चरण 4 / 6 — अनुमान
अपनी समझ की जाँच करें
What is the output of these three lines?
print(5 > 3 and 2 > 4)
print(5 > 3 or 2 > 4)
print(not 5 > 3)- AFalse True False
- BTrue True False
- CFalse False True
- DFalse True True
How does each of these three values count as true or false?
print(bool("False"))
print(bool(""))
print(bool(0))- ATrue False False
- BFalse False False
- CFalse True False
- DTrue True False
The person typed Yes (capital Y, one trailing space) and the program says Continuing: False. Why, and what is the best fix?
answer = input("Type yes to continue: ")
print("Continuing:", answer == "yes")- ABoth the trailing space and the capital letter count in a comparison — it needs `answer.strip().lower() == "yes"`
- BThe `==` should be a `=`
- CAn `input()` can never equal `"yes"`, so `in` has to be used instead
- D`answer` has to be converted with `bool()` first
उत्तर देने के लिए अकाउंट आवश्यक है
अपने उत्तर जाँचने के लिए साइन इन करें
प्रश्न ऊपर दिए गए हैं, और मन में उत्तर सोचना ही मुख्य कार्य है। सही उत्तर, व्याख्या और तीन-स्तरीय संकेत देखने के लिए साइन इन करें।
आपकी बारी
password_check.py नामक एक फ़ाइल लिखें जो एक पासवर्ड लेती है और चार प्रश्नों के लिए True/False प्रिंट करती है:
- लंबाई कम से कम 8 है
- लंबाई 8 और 20 के बीच है (इसे शृंखलाबद्ध तुलना के रूप में लिखें)
- शब्द
"password"इसमें नहीं आता है (आपकोnotऔरinदोनों की आवश्यकता होगी, और तुलना करने से पहले लोअरकेस करें) - क्या उपरोक्त तीनों एक साथ सत्य हैं
फिर इसे कम से कम चार अलग-अलग पासवर्डों के साथ चलाएँ और जाँचें कि सभी चार सही उत्तर देते हैं।
There is more in this mission
What you read above is the complete mission — nothing was cut out of it. Pro adds:
- भीतर वास्तव में क्या होता है — पायथन इसे कैसे निष्पादित करता है
- अभ्यास का संपूर्ण समाधान, चरण-दर-चरण स्पष्टीकरण के साथ
- कठिन अतिरिक्त अभ्यास
- इस विषय पर साक्षात्कार में क्या पूछा जाता है और उसका आदर्श उत्तर
Step 6 of 6
चुनौती — the chapter quiz
सरल से कठिन — दस प्रश्न, अंतिम वाले जानबूझकर चुनौतीपूर्ण बनाए गए हैं।
Sign in to take the quiz