কম্পিউটার

পাইথনে টারনারি অপারেটর?


অনেক প্রোগ্রামিং ভাষা টারনারি অপারেটরকে সমর্থন করে, যা মূলত একটি শর্তসাপেক্ষ অভিব্যক্তিকে সংজ্ঞায়িত করে।

একইভাবে পাইথনের টারনারি অপারেটরটি বাইনারি অবস্থার ফলাফলের উপর ভিত্তি করে একটি মান ফেরত দিতে ব্যবহৃত হয়। এটি একটি ইনপুট হিসাবে বাইনারি মান (শর্ত) নেয়, তাই এটি একটি "if-else" কন্ডিশন ব্লকের মতো দেখায়। যাইহোক, এটি একটি মানও প্রদান করে তাই একটি ফাংশনের মতো আচরণ করে।

সিনট্যাক্স

[on_true] if [expression] else [on_false]

আসুন একটি সাধারণ প্রোগ্রাম লিখি, যা দুটি পূর্ণসংখ্যার তুলনা করে -

ক পাইথন if-else স্টেটমেন্ট ব্যবহার করা -

>>> x, y = 5, 6
>>> if x>y:
   print("x")
else:
   print("y")
y

খ. টারনারি অপারেটর ব্যবহার করে

>>> x, y = 5, 6
>>> print("x" if x> y else "y")
y

টারনারি অপারেটরের সাথে, আমরা এক লাইনে কোড লিখতে সক্ষম। তাই পাইথন মূলত প্রথমে শর্তটি মূল্যায়ন করে, যদি সত্য হয় - প্রথম অভিব্যক্তিটি মূল্যায়ন করুন অন্যথায় দ্বিতীয় শর্তটি মূল্যায়ন করে।

>>> def find_max(a,b):
return a if (a>b) else b
>>> find_max(5, 6)
6

টার্নারি অপারেটর বাস্তবায়নের উপায়

নীচে টারনারি অপারেটর বাস্তবায়নের বিভিন্ন উপায় রয়েছে৷

ক Python Tuples ব্যবহার করে

>>> a, b = random(), random()
>>> (b, a) [a>b]
0.5497848117028667

উপরে -

এর সমতুল্য
>>> (b, a) [True]
0.5065247098746795

কিন্তু আপনি যদি মান নিয়ে বিভ্রান্ত হন তবে ফেরত দেওয়া হয় 'a' বা 'b'। আসুন উপরের কোডটি আবার লিখি।

>>> (f"b:{b}", f"a:{a}") [a>b]
'b:0.5497848117028667'

খ. পাইথন অভিধান ব্যবহার করে

>>> a, b = random(), random()
>>> {False: f"b:{b}", True: f"a:{a}"}[a>b]
'a:0.8089581560973976'

আমরা কী-মানের জুড়ি বিনিময় করতে পারি -

>>> {True: f"a:{a}", False: f"b:{b}"}[a>b]
'a:0.8089581560973976'

গ. ল্যাম্বডাস ব্যবহার করে

আমরা পাইথন ল্যাম্বডা ফাংশন ব্যবহার করতে পারি টারনারি অপারেটর হিসাবে কাজ করতে -

>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]()
'b:0.6780078581465793'

নেস্টেড পাইথন টারনারি অপারেটর

আসুন এই অপারেটরদের চেইন করার চেষ্টা করি -

>>> from random import random
>>> x = random()
>>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"

আউটপুট

'between 0 and 5'

আসুন x -

এর প্রকৃত মান পরীক্ষা করি
>>> x
0.08009251123993566

  1. C# এ টারনারি অপারেটর

  2. পাইথনে স্ট্রিং ফরম্যাটিং অপারেটর

  3. পাইথনে অপারেটরের প্রকারভেদ

  4. পাইথন অবজেক্ট তুলনা "হ্যাঁ" বনাম "=="