Python منطقی آپریٹرز کو منطقی (بولین) آپریشنز کرنے کے لیے فراہم کرتا ہے۔(and,or,not)
یہ ایک if بیان میں متعدد شرائط کے درمیان تعلق کو بیان کرنے کے لیے استعمال ہوتا ہے۔
یہ سیکشن درج ذیل کی وضاحت کرتا ہے۔
- چوراہا:
and - منطقی اضافہ:
or - انکار:
not and,or,notآپریٹر کی ترجیح
اس کے علاوہ احتیاط کے طور پر درج ذیل نکات کی وضاحت کی گئی ہے۔
- bool کے علاوہ دیگر قسم کی اشیاء کے لیے منطقی آپریٹرز
and,orیہ واپسی کی قدریں ضروری نہیں کہ bool قسم کی ہوں۔- شارٹ سرکٹ (شارٹ سرکٹ کی تشخیص)
چوراہا:and
اور دو قدروں کی منطقی پیداوار لوٹاتا ہے۔
print(True and True)
# True
print(True and False)
# False
print(False and True)
# False
print(False and False)
# False
درحقیقت، یہ اکثر صحیح یا غلط کے لیے نہیں، بلکہ موازنہ آپریٹرز کا استعمال کرتے ہوئے مشروط اظہار کے لیے استعمال ہوتا ہے۔ آپ کی معلومات کے لیے، موازنہ آپریٹرز درج ذیل ہیں۔
<>
a = 10
print(0 < a)
# True
print(a < 100)
# True
print(0 < a and a < 100)
# True
اور مندرجہ ذیل طور پر منسلک کیا جا سکتا ہے.
print(0 < a < 100)
# True
منطقی اضافہ:or
یا دو اقدار کا منطقی OR لوٹاتا ہے۔
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
انکار:not
نہیں” قدر کی نفی لوٹاتا ہے؛ صحیح اور غلط کو الٹ دیا جاتا ہے۔
print(not True)
# False
print(not False)
# True
and,or,notآپریٹر کی ترجیح
ان منطقی آپریٹرز کی ترجیح کی ترتیب حسب ذیل ہے: نہیں سب سے زیادہ ہے۔
notandor
مندرجہ ذیل نمونہ کوڈ میں، مندرجہ بالا اظہار کی تشریح اس طرح کی گئی ہے جیسے یہ نیچے والا ہو۔ چونکہ اضافی قوسین میں کوئی مسئلہ نہیں ہے، اس لیے اس مثال جیسے معاملات میں ان کو واضح طور پر بیان کرنا آسان ہو سکتا ہے۔
print(True or True and False)
# True
print(True or (True and False))
# True
اگر آپ کام کرنا چاہتے ہیں یا اس سے پہلے اور، قوسین () کا استعمال کریں۔
print((True or True) and False)
# False
<,>ان موازنہ آپریٹرز کو اس سے بھی زیادہ فوقیت حاصل ہے۔ لہٰذا، ہر ایک موازنہ آپریشن کے لیے قوسین ضروری نہیں ہیں، جیسا کہ اوپر کی مثال میں تھا۔
print(0 < a and a < 100)
# True
Python میں آپریٹر کی ترجیح کے خلاصے کے لیے ذیل میں سرکاری دستاویزات دیکھیں۔
bool کے علاوہ دیگر قسم کی اشیاء کے لیے منطقی آپریٹرز
With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.
Python کی منطقی کارروائیوں میں درج ذیل اشیاء کو غلط سمجھا جاتا ہے۔
- غلط ہونے کی تعریف کی گئی مستقل:
None,false - عددی اقسام میں صفر:
0,0,0j,Decimal(0),Fraction(0, 1) - خالی ترتیب یا مجموعہ:
',(),[],{},set(),range(0)
دیگر تمام اقدار کو درست سمجھا جاتا ہے۔
فنکشن bool() کسی چیز کی بولین ویلیو حاصل کرنے کے لیے استعمال کیا جا سکتا ہے۔ نوٹ کریں کہ سٹرنگ ‘0’ یا ‘False’ کو سچ سمجھا جاتا ہے۔
print(bool(10))
# True
print(bool(0))
# False
print(bool(''))
# False
print(bool('0'))
# True
print(bool('False'))
# True
print(bool([]))
# False
print(bool([False]))
# True
سٹرنگ میں ‘0’ یا ‘false’ کو غلط کے طور پر ہینڈل کرنے کے لیے distutils.util.strtobool() کا استعمال کریں۔
and,orیہ واپسی کی قدریں ضروری نہیں کہ bool قسم کی ہوں۔
یہاں bool قسم کے علاوہ کسی اور چیز کی مثال ہے، جو ہر آپریٹر کا نتیجہ عددی قدر پر دکھاتا ہے۔
x = 10 # True
y = 0 # False
print(x and y)
# 0
print(x or y)
# 10
print(not x)
# False
جیسا کہ آپ اوپر دی گئی مثال سے دیکھ سکتے ہیں، اور اور یا Python میں bool قسم کی صحیح یا غلط واپسی نہیں ہوتی ہے، بلکہ بائیں یا دائیں طرف والی ویلیو کو واپس کرتے ہیں اس پر منحصر ہے کہ آیا یہ سچ ہے یا غلط۔ مثال عددی ہے، لیکن اسی کا اطلاق دوسری اقسام جیسے تاروں اور فہرستوں پر ہوتا ہے۔ اتفاق سے، قسم bool کا صحیح یا غلط نہیں لوٹاتا ہے۔
اور اور یا کی واپسی کی قدروں کی تعریفیں درج ذیل ہیں۔
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.
The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.
6.11. Boolean operations — Expressions — Python 3.10.1 Documentation
جب بائیں اور دائیں اظہار کی قدریں درست اور غلط الگ الگ ہوں، تو واپسی کی قدروں کو سمجھنا آسان ہوتا ہے۔ دوسری طرف، اگر دونوں صحیح ہیں یا دونوں غلط ہیں، تو واپسی کی قیمت آرڈر کے لحاظ سے مختلف ہوگی۔
اگر آپ اسے کسی if اسٹیٹمنٹ وغیرہ میں مشروط اظہار کے طور پر استعمال کرتے ہیں، تو نتیجہ کو بولین ویلیو کے طور پر سمجھا جاتا ہے اور اس پر کارروائی کی جاتی ہے، لہذا آپ کو اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے، لیکن اگر آپ مزید پروسیسنگ کے لیے واپسی کی قدر استعمال کرتے ہیں، تو آپ محتاط رہنے کی ضرورت ہے.
x = 10 # True
y = 100 # True
print(x and y)
# 100
print(y and x)
# 10
print(x or y)
# 10
print(y or x)
# 100
x = 0 # False
y = 0.0 # False
print(x and y)
# 0
print(y and x)
# 0.0
print(x or y)
# 0.0
print(y or x)
# 0
print(bool(x and y))
# False
اگر آپ اسے درست یا غلط سمجھنا چاہتے ہیں تو آپ آخری مثال کی طرح کر سکتے ہیں۔bool(x and y)
اور اور یا کی واپسی کی قدروں کا خلاصہ نیچے دیے گئے جدول میں دیا گیا ہے۔
| x | y | x and y | x or y |
|---|---|---|---|
| true | false | y | x |
| false | true | x | y |
| true | true | y | x |
| false | false | x | y |
شارٹ سرکٹ (شارٹ سرکٹ کی تشخیص)
جیسا کہ آپ اوپر دیے گئے جدول سے دیکھ سکتے ہیں، اگر x اور y میں x غلط ہے، یا اگر x x یا y میں درست ہے، تو واپسی کی قیمت y کی قدر سے قطع نظر x ہوگی۔
ایسی صورت میں، y کی تشخیص نہیں کی جاتی ہے۔
and,orنوٹ کریں کہ اگر آپ کچھ پروسیسنگ کرنے کے لیے ان پراسیسز کے دائیں جانب کسی فنکشن یا طریقہ کو کال کرتے ہیں، تو ممکن ہے کہ بائیں جانب کے نتائج کے لحاظ سے یہ عمل عمل میں نہ آئے۔
def test():
print('function is called')
return True
print(True and test())
# function is called
# True
print(False and test())
# False
print(True or test())
# True
print(False or test())
# function is called
# True


