Python کے منطقی آپریٹرز اور، یا، اور نہیں (منطقی کنکشن، منقطع، نفی)

کاروبار

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آپریٹر کی ترجیح

ان منطقی آپریٹرز کی ترجیح کی ترتیب حسب ذیل ہے: نہیں سب سے زیادہ ہے۔

  1. not
  2. and
  3. or

مندرجہ ذیل نمونہ کوڈ میں، مندرجہ بالا اظہار کی تشریح اس طرح کی گئی ہے جیسے یہ نیچے والا ہو۔ چونکہ اضافی قوسین میں کوئی مسئلہ نہیں ہے، اس لیے اس مثال جیسے معاملات میں ان کو واضح طور پر بیان کرنا آسان ہو سکتا ہے۔

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)

اور اور یا کی واپسی کی قدروں کا خلاصہ نیچے دیے گئے جدول میں دیا گیا ہے۔

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

شارٹ سرکٹ (شارٹ سرکٹ کی تشخیص)

جیسا کہ آپ اوپر دیے گئے جدول سے دیکھ سکتے ہیں، اگر 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
Copied title and URL