Python ۾ شرطي جيڪڏھن بيان. نحو، ٻيو / ايلف بلاڪ، مثال

پروگرام کي سکڻ جي عمل ۾، اهو اڪثر ڪري پروگرام ٺاهڻ ضروري آهي جيڪي حقيقي زندگي ۾ لاڳو ڪرڻ بلڪل آسان نه آهن. سڀ کان پوء، وقت وقت تي توهان کي صرف ڪجهه حالتن هيٺ ڏنل هدايتن تي عمل ڪرڻو پوندو. پروگرام ۾ ان کي لاڳو ڪرڻ جي قابل ٿي، سڀني ٻولين ۾ ڪنٽرول بيان آهن. انهن جي مدد سان، توهان ڪوڊ جي عمل جي وهڪري کي ڪنٽرول ڪري سگهو ٿا، لوپ ٺاهڻ يا ڪجهه عملن کي انجام ڏيڻ صرف جڏهن هڪ خاص شرط صحيح آهي.

اڄ اسان if بيان جي باري ۾ ڳالهائينداسين، جيڪو موجوده صورتحال کي ڪنهن خاص حالت جي جانچ ڪري ٿو، ۽ ان معلومات جي بنياد تي، وڌيڪ عملن بابت فيصلا ڪري ٿو.

ڪنٽرول بيانن جا قسم

عام طور تي، جيڪڏهن اهو واحد بيان ناهي جيڪو پروگرام جي وهڪري کي سنڀاليندو آهي. انهي سان گڏ هو پاڻ آپريٽرز جي هڪ وڏي زنجير جو حصو ٿي سگهي ٿو.

اهڙا لوپ ۽ بيان پڻ آهن جيڪي ان جي عمل جي عمل کي ڪنٽرول ڪن ٿا. اڄ اسان صرف شرطي آپريٽر ۽ زنجيرن بابت ڳالهائينداسين جنهن ۾ اهو حصو وٺي سگهي ٿو.

پروگرامنگ ۾، برانچنگ وانگر هڪ شيء آهي. اهو خاص طور تي هن جو مطلب آهي حڪمن جو هڪ سلسلو جيڪو صرف ان صورت ۾ عمل ڪيو ويندو آهي جڏهن هڪ خاص شرط صحيح آهي. معيار پاڻ مختلف ٿي سگهن ٿا:

  1. متغير جي هڪ خاص قدر جي برابري.
  2. هڪ خاص عمل کي انجام ڏيڻ.
  3. ايپليڪيشن جي حالت (گري يا نه).

اسپيڪٽرم تمام وڏو ٿي سگهي ٿو. مشروط بيان ڪيترن ئي قسمن ۾ اچن ٿا:

  1. ھڪڙي شاخ سان. اهو آهي، هڪ واحد چيڪ ڪيو ويو آهي، جنهن جي نتيجي ۾ ڪجهه عمل ڪيا ويا آهن.
  2. ٻن يا وڌيڪ شاخن سان. جيڪڏهن معيار 1 صحيح آهي، پوء معيار 2 کي چيڪ ڪريو. جيڪڏهن اهو صحيح آهي، ته پوء 3 چيڪ ڪريو. ۽ ائين، گهربل طور تي ڪيتريون ئي چڪاس ڪريو.
  3. ڪيترن ئي شرطن سان. هتي سڀ ڪجھ سادو آهي. مترجم ڪيترن ئي حالتن يا انهن مان هڪ لاء چيڪ ڪري ٿو.

جيڪڏهن بيان

if بيان جي جوڙجڪ سڀني ٻولين ۾ هڪجهڙائي آهي. بهرحال، پٿون ۾، ان جي نحو ٻين سڀني کان ڪجهه مختلف آهي:

جيڪڏهن شرط:

    < входящее выражение 1>

    < входящее выражение 2>

nе входящее выражение>

پهرين، آپريٽر پاڻ کي اعلان ڪيو ويو آهي، جنهن کان پوء اهو شرط آهي جنهن جي تحت اهو ڪم ڪرڻ شروع ڪري ٿو. حالت يا ته صحيح يا غلط ٿي سگهي ٿي.

هي حڪمن سان هڪ بلاڪ جي پٺيان آهي. جيڪڏهن اهو فوري طور تي هڪ معيار کي پورو ڪيو وڃي، پوء حڪمن جي لاڳاپيل ترتيب کي سڏيو ويندو آهي جيڪڏهن بلاڪ. توھان استعمال ڪري سگھوٿا ان ۾ ڪي به حڪم.

ڌيان! سڀني جي اندر اندر داخل ٿيڻ جي صورت ۾ بلاڪ حڪمن کي ساڳيو سائيز هجڻ گهرجي. بلاڪ جون حدون مقرر ٿيل آھن اشارن سان. 

ٻوليءَ جي دستاويزن موجب، انڊينٽيشن 4 اسپيس آهي. 

هي آپريٽر ڪيئن ڪم ڪندو آهي؟ جڏهن مترجم جيڪڏهن لفظ ڏسي ٿو، اهو فوري طور تي استعمال ڪندڙ جي مخصوص معيار جي خلاف اظهار جي جانچ ڪري ٿو. جيڪڏهن اهو معاملو آهي، پوء هو هدايتون ڳولڻ ۽ انهن تي عمل ڪرڻ شروع ڪري ٿو. ٻي صورت ۾، هن بلاڪ مان سڀئي حڪم ڇڏيا ويا آهن.

جيڪڏهن شرط کان پوءِ بيان نه ڪيو ويو آهي، اهو علاج نه ڪيو ويندو آهي جيڪڏهن بلاڪ. اسان جي صورتحال ۾، هي لائن آهي . تنهن ڪري، چڪاس جي نتيجي کان سواء، هن لڪير تي عمل ڪيو ويندو.

هتي هڪ ڪوڊ اسپيٽ آهي هڪ مثال لاءِ ته هي آپريٽر ڪيئن ڪم ڪري ٿو.

نمبر = int (انپٽ ("هڪ نمبر داخل ڪريو:"))

جيڪڏهن نمبر > 10:

    پرنٽ ("انگريزي 10 کان وڌيڪ آهي")

هي پروگرام صارف کي هڪ نمبر لاءِ اشارو ڪري ٿو ۽ چيڪ ڪري ٿو ته اهو 10 کان وڏو آهي. جيڪڏهن ائين آهي، اهو مناسب معلومات واپس ڪري ٿو. مثال طور، جيڪڏهن صارف نمبر 5 داخل ڪري، پوء پروگرام صرف ختم ٿي ويندو، ۽ اهو ئي آهي.

پر جيڪڏھن توھان 100 جو تعداد بيان ڪريو ته پوءِ مترجم سمجھندو ته اھو ڏھن کان وڌيڪ آھي ۽ ان کي رپورٽ ڪري.

ڌيان! اسان جي حالت ۾، جيڪڏهن شرط غلط آهي، پروگرام بند ٿي ويندو آهي، ڇاڪاڻ ته هدايتن کان پوء ڪو به حڪم نه ڏنو ويو آهي.

مٿي ڏنل ڪوڊ ۾ صرف هڪ حڪم آهي. پر انھن مان گھڻا آھن. ضرورت صرف انجڻ آهي.

ھاڻي اچو ته ھن حڪم جي تسلسل جو تجزيو ڪريون.

number = int(input("هڪ نمبر لکو:"))

جيڪڏهن نمبر > 10:

    پرنٽ ("پهريون لائن")

    پرنٽ ("سيڪنڊ لائين")

    پرنٽ ("ٽيون لائن")

پرنٽ ("ليڪ جيڪو عمل ڪيو ويو آهي، داخل ٿيل نمبر کان سواء")

پرنٽ ("آخري ايپليڪيشن")

اندازو لڳائڻ جي ڪوشش ڪريو ته ڇا آئوٽ ٿيندو جيڪڏھن توھان 2، 5، 10، 15، 50 جا قدر داخل ڪريو.

جيئن توهان ڏسي سگهو ٿا، جيڪڏهن صارف جو درج ڪيل نمبر ڏهن کان وڌيڪ آهي، ته پوءِ ٽي لائينون آئوٽ پُٽ آهن + هڪ متن سان “رن هر وقت…” ۽ هڪ “آخر”، ۽ جيڪڏهن ڏهن کان گهٽ آهي ته پوءِ صرف هڪ، سان. هڪ مختلف متن. صرف لائنون 3,4,5 تي عمل ڪيو ويندو جيڪڏھن سچ آھي. بهرحال، آخري ٻه سٽون لکيون وينديون، ڪابه ڳالهه نه آهي ته صارف ڪهڙو نمبر بيان ڪري ٿو.

جيڪڏهن توهان بيانن کي استعمال ڪريو سڌو ڪنسول ۾، نتيجو مختلف ٿيندو. مترجم فوري طور تي ملٽي لائن موڊ کي آن ڪري ٿو، جيڪڏھن، تصديق جي معيار کي بيان ڪرڻ کان پوء، پريس ڪريو Enter.

فرض ڪريو اسان هيٺ ڏنل حڪمن جو تسلسل لکيو آهي.

>>>

>>> ن = 100

>>> جيڪڏهن n > 10:

...

ان کان پوء، اسان ڏسندا سين ته >>> ايلپسس طرفان تبديل ڪيو ويو آهي. هن جو مطلب آهي ته ملٽي لائن ان پٽ موڊ فعال آهي. سادي لفظن ۾، جيڪڏهن توهان Enter کي دٻايو، توهان کي هدايت جي ٻئي مرحلي جي ان پٽ ڏانهن منتقل ڪيو ويندو. 

۽ ھن بلاڪ مان نڪرڻ لاءِ، توھان کي بلاڪ ۾ ھڪڙو وڌيڪ تعمير شامل ڪرڻو پوندو if.

>>>

>>> ن = 100

>>> جيڪڏهن n > 10:

… پرنٽ(«nv 10»)

...

جيڪڏهن شرط صحيح نه آهي، پروگرام ختم ٿي ويندو. اهو هڪ مسئلو آهي، ڇاڪاڻ ته صارف شايد اهڙي پروگرام کي سمجهي سگھي ٿو جيئن ناڪامي جي ڪري بند ٿي ويو آهي. تنهن ڪري، اهو ضروري آهي ته صارف کي راء ڏيو. هن لاء، هڪ لنڪ استعمال ڪيو ويندو آهي جيڪڏهن-ٻيو.

اظهار آپريٽر جيڪڏهن-ٻيو

هي آپريٽر توهان کي هڪ لنڪ لاڳو ڪرڻ جي اجازت ڏئي ٿو: جيڪڏهن اظهار ڪنهن خاص قاعدي سان ملندو آهي، انهن عملن کي انجام ڏيو، ۽ جيڪڏهن نه، پوء ٻيا. اهو آهي، اهو توهان کي پروگرام جي وهڪري کي ٻن رستن ۾ ورهائڻ جي اجازت ڏئي ٿو. نحو وجداني آهي:

جيڪڏهن شرط:

    # جيڪڏهن بلاڪ

    بيان 1

    بيان 2

    ۽ ايئن

ٻيو:

    # ٻيو بلاڪ

    بيان 3

    بيان 4

    ۽ ايئن:

اچو ته وضاحت ڪريون ته هي آپريٽر ڪيئن ڪم ڪري ٿو. پهريون، معياري بيان سلسلي ۾ جاري آهي يو، چيڪ ڪريو ته ڇا اهو ملندو آهي حالت "سچ يا ڪوڙ". وڌيڪ عملن جي چڪاس جي نتيجن تي منحصر آهي. جيڪڏھن صحيح آھي، ھدايت جيڪا ھيٺ ڏنل ھدايتن جي تسلسل ۾ آھي سڌو سنئون عمل ڪيو ويندو. يو، جيڪڏهن اهو غلط آهي، پوء هم عصر

هن طريقي سان توهان غلطيون سنڀالي سگهو ٿا. مثال طور، استعمال ڪندڙ کي ريڊيس داخل ڪرڻ جي ضرورت آهي. ظاهر آهي، اهو صرف هڪ نمبر ٿي سگهي ٿو هڪ پلس نشاني سان، يا اهو هڪ null قدر آهي. جيڪڏهن اهو 0 کان گهٽ آهي، ته پوءِ توهان کي هڪ پيغام جاري ڪرڻ جي ضرورت آهي ته توهان کي مثبت نمبر داخل ڪرڻ لاءِ چيو وڃي. 

هتي اهو ڪوڊ آهي جيڪو هن ڪم کي لاڳو ڪري ٿو. پر هتي هڪ غلطي آهي. اندازو لڳائڻ جي ڪوشش ڪريو ته ڪهڙو. 

ريڊيس = int (انپٽ ("انٽر ريڊيس: "))

جيڪڏهن ريڊيس >= 0:

    پرنٽ ("دائرو = "، 2 * 3.14 * ريڊيس)

    پرنٽ ("ايريا = "، 3.14 * ريڊيس ** 2)

    ٻيو:

        پرنٽ ("مهرباني ڪري هڪ مثبت نمبر داخل ڪريو")

انڊنٽيشن بي ميلنگ غلطي. جيڪڏهن ۽ ٻيو انهن کان سواءِ يا انهن جي هڪ ئي تعداد سان (ان تي منحصر آهي ته اهي nested آهن يا نه).

اچو ته هڪ ٻيو استعمال ڪيس ڏيو (جتي سڀ ڪجھ درست ٿيندو آپريٽر جي ترتيب سان) - هڪ ايپليڪيشن عنصر جيڪو پاسورڊ چيڪ ڪري ٿو.

پاسورڊ = ان پٽ ("پاسورڊ داخل ڪريو:")

جيڪڏهن پاسورڊ == «sshh»:

    پرنٽ ("خوش آمدید")

ٻيو:

    پرنٽ ("رسائي رد ڪئي وئي")

ھي ھدايت ان شخص کي وڌيڪ ڇڏي ٿي جيڪڏھن پاسورڊ آھي sshh. جيڪڏهن اکر ۽ انگن جو ڪو ٻيو ميلاپ، پوء اهو پيغام ڏيکاري ٿو "پهچ کان انڪار ڪيو".

بيان-اظهار if-elif-else

صرف جيڪڏهن ڪيترائي شرط صحيح نه آهن، بيان جيڪو بلاڪ ۾ آهي عمل ڪيو ويندو آهي. هم عصر. هي اظهار هن طرح ڪم ڪري ٿو.

جيڪڏهن شرط_1:

    # جيڪڏهن بلاڪ

    بيان

    بيان

    وڌيڪ بيان

ايلف شرط_2:

    # پهريون ايلف بلاڪ

    بيان

    بيان

    وڌيڪ بيان

ايلف شرط_3:

    # سيڪنڊ ايلف بلاڪ

    بيان

    بيان

    وڌيڪ بيان

...

هم عصر

    بيان

    بيان

    وڌيڪ بيان

توھان وضاحت ڪري سگھو ٿا ڪنھن به تعداد ۾ اضافي شرطون.

بيان ڪيل بيان

گھڻن شرطن تي عمل ڪرڻ جو ٻيو طريقو جيڪڏھن بلاڪ ۾ اضافي شرط چيڪ داخل ڪرڻ آھي.

آپريٽر if ٻئي حالت واري بلاڪ جي اندر

gre_score = int(ان پٽ ("پنهنجي موجوده ڪريڊٽ جي حد داخل ڪريو"))

per_grad = int(input("پنهنجي ڪريڊٽ جي درجه بندي داخل ڪريو:"))

جيڪڏهن per_grad > 70:

    # ٻاهران جيڪڏهن بلاڪ

        جيڪڏهن gre_score > 150:

            # اندروني جيڪڏھن بلاڪ

    پرنٽ ("مبارڪون، توهان کي قرض ملي ويو آهي")

ٻيو:

    پرنٽ ("معاف ڪجو، توهان قرض جي اهل نه آهيو")

هي پروگرام ڪريڊٽ ريٽنگ چيڪ ڪري ٿو. جيڪڏهن اهو 70 کان گهٽ آهي، پروگرام رپورٽ ڪري ٿو ته صارف ڪريڊٽ لاءِ اهل ناهي. جيڪڏهن اهو وڌيڪ آهي، هڪ سيڪنڊ چيڪ ڪيو ويندو آهي ڏسڻ لاءِ ته موجوده ڪريڊٽ جي حد 150 کان وڌيڪ آهي. جيڪڏهن ها، ته پوءِ هڪ پيغام ظاهر ٿيندو ته قرض جاري ڪيو ويو آهي.

جيڪڏهن ٻئي قدر غلط آهن، پوء هڪ پيغام ڏيکاري ٿو ته صارف کي قرض حاصل ڪرڻ جو امڪان ناهي. 

هاڻي اچو ته ان پروگرام کي ٿورو ٻيهر ڪم ڪريون.

gre_score = int(انپٽ("موجوده حد داخل ڪريو:"))

per_grad = int(انپٽ("ڪريڊٽ سکور داخل ڪريو:"))

جيڪڏهن per_grad > 70:

    جيڪڏهن gre_score > 150:

        پرنٽ ("مبارڪون، توهان کي قرض ملي ويو آهي")

    ٻيو:

        پرنٽ ("توهان جي ڪريڊٽ جي حد گهٽ آهي")

ٻيو:

    پرنٽ ("معاف ڪجو، توهان ڪريڊٽ لاءِ اهل نه آهيو")

ڪوڊ پاڻ تمام ملندڙ جلندڙ آهي، پر nested if پڻ هڪ الگورٿم مهيا ڪري ٿو صورت ۾ ان جي حالت غلط ثابت ٿئي ٿي. اهو آهي، ڪارڊ تي حد ڪافي نه آهي، پر ڪريڊٽ جي تاريخ سٺي آهي، پيغام "توهان وٽ گهٽ ڪريڊٽ ريٽنگ آهي" ڏيکاريل آهي.

if-else بيان هڪ حالت ۾ هم عصر

اچو ته هڪ ٻيو پروگرام ٺاهيون جيڪو شاگرد جي گريڊ کي ٽيسٽ اسڪور جي بنياد تي طئي ڪري.

سکور = انٽ (انپٽ ("پنهنجو سکور داخل ڪريو:"))

جيڪڏهن سکور>= 90:

    پرنٽ ("عظيم! توهان جو گريڊ A آهي")

ٻيو:

    جيڪڏهن سکور>= 80:

پرنٽ ("عظيم! توهان جو گريڊ بي آهي")

    ٻيو:

جيڪڏهن سکور>= 70:

    پرنٽ ("چڱو! توهان جو گريڊ سي آهي")

ٻيو:

    جيڪڏهن سکور>= 60:

پرنٽ ("توهان جو گريڊ ڊي آهي. اهو مواد کي ورجائڻ جي لائق آهي.")

    ٻيو:

پرنٽ ("توهان امتحان ۾ ناڪام ٿيو")

ايپليڪيشن پهرين چيڪ ڪري ٿي ته ڇا سکور 90 کان وڏو يا برابر آهي. جيڪڏهن ها، ته پوءِ اهو A گريڊ ڏئي ٿو. جيڪڏهن اها حالت غلط آهي، پوء بعد ۾ چڪاس ڪيا ويا آهن. اسان ڏسون ٿا ته الورورٿم پهرين نظر ۾ تقريبن ساڳيو آهي. پوءِ اندر چيڪ ڪرڻ بدران هم عصر هڪ ميلاپ استعمال ڪرڻ بهتر آهي if-elif-ٻيو.

تنهنڪري آپريٽر if هڪ تمام اهم فنڪشن انجام ڏئي ٿو - اهو يقيني بڻائي ٿو ته ڪوڊ جا ڪجهه ٽڪرا صرف ان صورت ۾ عمل ڪيا ويا آهن جڏهن ان جي ضرورت هجي. ان کان سواءِ پروگرامنگ جو تصور ڪرڻ ناممڪن آهي، ڇاڪاڻ ته آسان ترين الگورٿمز لاءِ به ڪانٽن جي ضرورت هوندي آهي جيئن ته ”جيڪڏهن توهان کاٻي پاسي وڃو ته توهان کي اهو ملندو، ۽ جيڪڏهن توهان ساڄي طرف وڃو ته پوءِ توهان کي اهو ڪرڻو پوندو ۽ اهو.

جواب ڇڏي وڃو