Python میں if بیانات کے ساتھ مشروط برانچنگ کی وضاحت کریں۔
- if بیانات کی بنیادی باتیں (if, elif, else)
- موازنہ آپریٹرز وغیرہ کے ساتھ شرائط کی وضاحت کریں۔
- نمبر، فہرست، وغیرہ کے لحاظ سے شرائط کی وضاحت کریں۔
- منطقی آپریٹرز کے ساتھ متعدد شرائط یا نفی کی وضاحت کریں (اور، یا، نہیں)
- نئی لائنوں اور متعدد لائنوں پر مشروط اظہار
ایک ٹرنری آپریٹر بھی ہے جو ایک لائن میں مشروط شاخ کو بیان کرتا ہے۔ اگلا مضمون دیکھیں۔
if بیانات کی بنیادی باتیں (if, elif, else)
if بیان کی بنیادی شکل مندرجہ ذیل ہے۔
if Conditional expression 1:
`Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
`Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
`Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
`Processing when all conditionals are false.`
"ایلیف” سی اور دیگر زبانوں میں "اور اگر” کے مساوی ہے، اور "ایلیف” کی کوئی بھی تعداد ہو سکتی ہے۔
اگر صرف ایک مشروط اظہار یا پروسیسنگ ہے جب غلط ضروری نہیں ہے تو، "ایلیف” اور "دوسرے” بلاکس کو چھوڑا جا سکتا ہے۔
موازنہ آپریٹرز وغیرہ کے ساتھ شرائط کی وضاحت کریں۔
ایک آپریشن کے ساتھ شرط کی وضاحت کریں جو بول کی قسم (سچ، غلط) واپس کرے، جیسے موازنہ آپریٹر۔
Python موازنہ آپریٹرز مندرجہ ذیل ہیں۔
| آپریٹر | نتیجہ |
|---|---|
x < y | درست اگر x y سے کم ہے۔ |
x <= y | درست اگر x y سے کم یا اس کے برابر ہے۔ |
x > y | صحیح اگر x y سے بڑا ہے۔ |
x >= y | درست اگر x y سے بڑا یا اس کے برابر ہے۔ |
x == y | درست ہے اگر x اور y کی قدریں برابر ہوں۔ |
x != yx is yx is not yx in yx not in yمثال. سہولت کے لیے، اسے ڈیف اسٹیٹمنٹ کے ساتھ ایک فنکشن کے طور پر بیان کیا گیا ہے۔
def if_test(num):
if num > 100:
print('100 < num')
elif num > 50:
print('50 < num <= 100')
elif num > 0:
print('0 < num <= 50')
elif num == 0:
print('num == 0')
else:
print('num < 0')
if_test(1000)
# 100 < num
if_test(70)
# 50 < num <= 100
if_test(0)
# num == 0
if_test(-100)
# num < 0
درج ذیل کو اس طرح لکھا جا سکتا ہے جو Python کے لیے منفرد ہو۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔a < x < b
def if_test2(num):
if 50 < num < 100:
print('50 < num < 100')
else:
print('num <= 50 or num >= 100')
if_test2(70)
# 50 < num < 100
if_test2(0)
# num <= 50 or num >= 100
#ERROR!!=
مندرجہ بالا اقدار کا موازنہ ہے۔ آبجیکٹ کی شناخت کا موازنہ کرنے کے لیے، درج ذیل کا استعمال کریں۔
isis not
مثال کے طور پر، انٹیجر اور فلوٹنگ پوائنٹ نمبر کا موازنہ کرتے وقت، "==” درست لوٹاتا ہے اگر اقدار مساوی ہوں، لیکن "is” غلط لوٹاتا ہے کیونکہ وہ مختلف اشیاء ہیں۔
i = 10
print(type(i))
# <class 'int'>
f = 10.0
print(type(f))
# <class 'float'>
print(i == f)
# True
print(i is f)
# False
یہ حالت بنانا بھی ممکن ہے کہ آیا فہرست یا سٹرنگ ایک مخصوص عنصر (کردار) پر مشتمل ہو۔
in:شاملnot in:شامل نہیں
def if_test_in(s):
if 'a' in s:
print('a is in string')
else:
print('a is NOT in string')
if_test_in('apple')
# a is in string
if_test_in('melon')
# a is NOT in string
نمبر، فہرست، وغیرہ کے لحاظ سے شرائط کی وضاحت کریں۔
if اسٹیٹمنٹ کا مشروط اظہار ایک عدد، فہرست، یا دوسری چیز ہو سکتا ہے جو bool (سچ، غلط) کی قسم کا نہیں ہے۔
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
Python if بیان کے مشروط اظہار میں، درج ذیل اشیاء کو غلط سمجھا جاتا ہے۔
- غلط ہونے کی تعریف کی گئی مستقل:
None,false- عددی قسم میں صفر:
0,0,0j,Decimal(0),Fraction(0, 1)- خالی ترتیب یا مجموعہ:
',(),[],{},set(),range(0)Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
صفر کی نمائندگی کرنے والے نمبر، خالی تار، فہرستیں وغیرہ غلط سمجھے جاتے ہیں۔ باقی سب کو سچ سمجھا جاتا ہے۔
اعتراض کو کس طرح پرکھا جاتا ہے اس کی جانچ bool() سے کی جا سکتی ہے۔
print(bool(10))
# True
print(bool(0.0))
# False
print(bool([]))
# False
print(bool('False'))
# True
مثال کے طور پر جب فہرست خالی ہو تو اس کا استعمال صرف عمل کو لکھنے کے لیے کیا جا سکتا ہے۔
def if_test_list(l):
if l:
print('list is NOT empty')
else:
print('list is empty')
if_test_list([0, 1, 2])
# list is NOT empty
if_test_list([])
# list is empty
نوٹ کریں کہ سٹرنگ ‘فالس’ بھی درست ہو گی، کیونکہ جیسا کہ اوپر کی مثال میں دکھایا گیا ہے، کوئی بھی سٹرنگ جو سٹرنگ میں خالی نہیں ہے وہ سچ ہو گی۔’ مخصوص سٹرنگ جیسے ‘True’ یا ‘False’ کو 1,0 میں تبدیل کرنے کے لیے distutils.util ماڈیول میں strtobool() استعمال کریں۔
منطقی آپریٹرز کے ساتھ متعدد شرائط یا نفی کی وضاحت کریں (اور، یا، نہیں)
منطقی آپریٹرز (اور، یا، نہیں) کو منطقی کنکشن، منطقی اختلاف، اور متعدد شرائط کی نفی کو سنبھالنے کے لیے استعمال کیا جا سکتا ہے۔
| آپریٹر | (نتیجہ (if بیان کے مشروط اظہار میں) |
|---|---|
x and y | درست اگر x اور y دونوں سچے ہیں۔ |
x or y | سچ ہے اگر x یا y سچ ہے۔ |
not x | غلط اگر x سچ ہے، سچ ہے اگر x غلط ہے۔ |
def if_test_and_not(num):
if num >= 0 and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_not(5)
# num is positive odd
if_test_and_not(10)
# num is NOT positive odd
if_test_and_not(-10)
# num is NOT positive odd
درحقیقت، "x اور y” اور "x یا y” درست یا غلط نہیں لوٹتے، بلکہ یا تو x یا y۔ جب تک وہ if بیانات میں مشروط اظہار میں استعمال ہوتے ہیں، ان کے بارے میں فکر کرنے کی ضرورت نہیں ہے، کیونکہ وہ صحیح یا غلط میں سے کسی ایک کا اندازہ لگاتے ہیں۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔
اس کا استعمال اور اور یا ایک سے زیادہ بار ممکن ہے۔
def if_test_and_not_or(num):
if num >= 0 and not num % 2 == 0 or num == -10:
print('num is positive odd or -10')
else:
print('num is NOT positive odd or -10')
if_test_and_not_or(5)
# num is positive odd or -10
if_test_and_not_or(10)
# num is NOT positive odd or -10
if_test_and_not_or(-10)
# num is positive odd or -10
نئی لائنوں اور متعدد لائنوں پر مشروط اظہار
جب متعدد مشروط اظہار کو "اور” یا "یا” کے ساتھ جوڑ کر استعمال کیا جاتا ہے اور ہر سطر لمبی ہوجاتی ہے، تو بعض اوقات مشروط اظہار کو توڑ کر اسے متعدد سطروں پر لکھنا ضروری ہوتا ہے۔
بیک سلیش کا استعمال کرکے یا پوری لائن کو قوسین میں بند کرکے لائن بریک کیا جاسکتا ہے۔
def if_test_and_backslash(num):
if num >= 0 \
and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_backslash(5)
# num is positive odd
def if_test_and_brackets(num):
if (num >= 0
and not num % 2 == 0):
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_brackets(5)
# num is positive odd
آپ جتنی بار چاہیں لائن کو توڑنے کے لیے بیک سلیش استعمال کر سکتے ہیں۔ اسی طرح، آپ قوسین کے اندر کسی بھی لائن کو کئی بار توڑ سکتے ہیں۔ انڈینٹیشن کی کوئی حد نہیں ہے۔
نوٹ کریں کہ یہ ایک ایسی تکنیک ہے جو Python کوڈ میں کہیں بھی استعمال کی جا سکتی ہے، نہ کہ صرف if بیانات میں۔