পাইথন টেরনারি অপারেটর আপনাকে একটি কন্ডিশন সত্য অথবা মিথ্যা কিনা তা ইভ্যালুয়েট করতে দেয়। টেরনারি অপারেটর কোডের এক লাইন নেয়, যার মানে এটি একটি পূর্ণ if…else স্টেটমেন্টের চেয়ে ছোট এবং আরও সংক্ষিপ্ত।
কন্ডিশনাল স্টেটমেন্ট, যেমন if স্টেটমেন্ট, আপনাকে আপনার প্রোগ্রামের ফ্লো কন্ট্রোল করতে দেয়। কন্ডিশনাল স্টেটমেন্টের ভিতরের কোড শুধু তখন চলে যখন একটি নির্দিষ্ট কন্ডিশন মেট হয় (অথবা কন্ডিশনগুলির সেট)।
পাইথনে, একটি কন্ডিশনাল স্টেটমেন্ট লিখতে সবচেয়ে সাধারণ উপায় হলো if ব্যবহার করা। যাইহোক, ভাষাটি একটি কন্ডিশন এক লাইনে টেস্ট করার একটি উপায়ও অফার করে: পাইথনে টেরনারি অপারেটর।
এই টিউটোরিয়ালে, উদাহরণের রেফারেন্সে, কন্ডিশনাল স্টেটমেন্টের বেসিকস এবং পাইথন টেরনারি অপারেটর কীভাবে ব্যবহার করবেন তা আলোচনা করব।
পাইথন কন্ডিশনালস
যখন আপনি একটি প্রোগ্রাম লিখছেন, আপনি কেবল একটি লাইন বা ব্লক কোড এক্সিকিউট হতে চাইতে পারেন যখন একটি কন্ডিশন মেট হয়। সেটাই কারণ কন্ডিশনাল স্টেটমেন্ট উপযোগী।
পাইথন if স্টেটমেন্ট ব্যবহার করা হয় চেক করতে একটি কন্ডিশন মেট হয়েছে কিনা।
মান লেন আমরা একটি অ্যাপ তৈরি করছি যা চেক করবে একটি কাস্টমার একটি মুভি থিয়েটারে ১০% ডিসকাউন্টের জন্য যোগ্য কিনা। যদি কাস্টমারের বয়স ৬৫ বা তার বেশি হয়, তবে তাদের ডিসকাউন্ট দেওয়া উচিত, অন্যথায়, কোনো ডিসকাউন্ট দেওয়া উচিত নয়। আমরা একটি if…else স্টেটমেন্ট ব্যবহার করে এই প্রোগ্রামটি বিল্ড করতে পারি।
কিন্তু, if স্টেটমেন্ট কমপক্ষে দুটি লাইন কোড নেয়। একটি if স্টেটমেন্ট লিখতে আরও সংক্ষিপ্ত উপায় রয়েছে যদি আপনি কেবল কিছু কন্ডিশন ইভ্যালুয়েট করেন: পাইথনে টেরনারি অপারেটর।
পাইথন টেরনারি অপারেটর
টেরনারি অপারেটর পাইথনে একটি কন্ডিশনাল এক্সপ্রেশন টাইপ যা একটি স্টেটমেন্ট ইভ্যালুয়েট করে। টেরনারি অপারেটর একটি অ্যাকশন পারফর্ম করে ভিত্তি করে সেই স্টেটমেন্টটি সত্য কিনা মিথ্যা। এগুলো একটি ট্র্যাডিশনাল if…else স্টেটমেন্টের চেয়ে বেশি সংক্ষিপ্ত।
পাইথন টেরনারি স্টেটমেন্টের সিনট্যাক্স নিম্নরূপ:
[if_true] if [expression] else [if_false]
পাইথনে টেরনারি কন্ডিশনাল অপারেটর তার নাম পায় এই fakt থেকে যে এটি তিনটি প্যারামিটার নেয়: if_true, expression, এবং if_false।
টেরনারি অপারেটরগুলো সাধারণত একটি ভেরিয়েবলের মান নির্ধারণ করতে ব্যবহৃত হয়। ভেরিয়েবলটি "if_true"-এর মান নেয় যদি স্টেটমেন্টটি True হিসেবে ইভ্যালুয়েট হয় অথবা "if_false"-এর মান যদি স্টেটমেন্টটি false হিসেবে ইভ্যালুয়েট হয়।
টেরনারি অপারেটরকে ভাবার একটি উপায় হলো যেটি পাইথন লিস্ট কম্প্রিহেনশন একটি তালিকা ফিল্টার আউট করার জন্য। অথবা, আপনি ভাবতে পারেন একটি ল্যাম্বডা ফাংশন একটি ফাংশন ডিফাইন করার জন্য।
লিস্ট কম্প্রিহেনশন এবং ল্যাম্বডা ফাংশন দুটোই একটি অ্যাকশন পারফর্ম করার (তালিকা ফিল্টার করা এবং ফাংশন ডিফাইন করা, ক্রমশ) আরও দক্ষ উপায়। এটা ঠিক টেরনারি অপারেটরের মতো যেটি একটি if স্টেটমেন্ট লিখতে আরও দক্ষ উপায়।
কিন্তু, টেরনারি অপারেটরের মতো, এগুলো শুধু আপনার কোডের রিডেবিলিটি উন্নত করার জন্য ব্যবহার করা উচিত। আপনি টেরনারি অপারেটর অতি ব্যবহার করবেন না, অন্যথায় আপনার কোড পড়তে কঠিন হয়ে যেতে পারে।
টেরনারি অপারেটর পাইথন উদাহরণ
মান লেন আমরা আমাদের মুভি থিয়েটারের একটি কাস্টমারকে ডিসকাউন্ট দিতে চাই যদি তিনি ৬৫ বা তার বেশি বয়সের হন। যদি একটি কাস্টমার ৬৫ বা তার বেশি বয়সের না হন, তবে তিনি ডিসকাউন্টের অধিকারী নন। আমরা নিচের কোড ব্যবহার করে কাস্টমার ডিসকাউন্টের জন্য যোগ্য কিনা চেক করতে পারি:
age = 48 discount = True if age >= 65 else False print(discount)
আমাদের কোড ফেরত দেয়: False।
প্রথম লাইনে, আমরা age নামে একটি পাইথন ভেরিয়েবল ঘোষণা করি। এই ভেরিয়েবলকে ৪৮ মান অ্যাসাইন করা হয়েছে। পরবর্তি, আমরা একটি টেরনারি অপারেটর ব্যবহার করি কাস্টমার ডিসকাউন্টের জন্য যোগ্য কিনা ক্যালকুলেট করতে।
আমাদের টেরনারি অপারেটর এক্সপ্রেশন age >= 65 ইভ্যালুয়েট করে। কারণ age ৪৮-এর সমান, এটি False হিসেবে ইভ্যালুয়েট হয়। তাই, else স্টেটমেন্টের পরে আসা কোড এক্সিকিউট হয়।
তারপর, আমরা আমাদের টেরনারি অপারেটরের ফলাফল কনসোলে প্রিন্ট করি। এটি False মান ফেরত দেয়।
আমরা এই উদাহরণকে আমাদের আগের উদাহরণের সাথে তুলনা করলে, আপনি দেখতে পাবেন এটি কম লাইন কোড ব্যবহার করে। আমাদের প্রথম প্রোগ্রাম পাঁচ লাইন কোড ব্যবহার করত, এবং এই টি তিন লাইন ব্যবহার করল।
এই উদাহরণে, আমাদের টেরনারি অপারেটর একটি পাইথন বুলিয়ান মান (True বা False) ফেরত দেয়। যাইহোক, আমরা আমাদের টেরনারি অপারেটরকে যেকোনো মান ফেরত দিতে দিতে পারি।
নামেরিক্যাল মান সহ টেরনারি পাইথন
মান লেন আমরা একটি নির্দিষ্ট ডিসকাউন্ট রেট সেট করতে চাই নির্ভর করে ব্যবহারকারী ডিসকাউন্টের জন্য যোগ্য কিনা। ডিফল্টভাবে, আমাদের মুভি থিয়েটার সকল কাস্টমারকে ৫% ডিসকাউন্ট দেয়, কিন্তু সিনিয়ররা (৬৫ বা তার বেশি বয়সের লোকজন) ১০% ডিসকাউন্টের জন্য যোগ্য।
নিচের প্রোগ্রাম আমাদের চেক করতে দেয় একটি কাস্টমার সিনিয়র ডিসকাউন্টের জন্য যোগ্য কিনা। যদি একটি কাস্টমার সিনিয়র ডিসকাউন্টের জন্য যোগ্য না হন, তবে তাদের ৫% ডিসকাউন্ট দেওয়া হয়:
age = 22 discount = 5 if age < 65 else 10 print(discount)
আমাদের কোড ফেরত দেয়: 5। আমাদের কোডে, আমরা age ভেরিয়েবলকে ২২ মান অ্যাসাইন করি।
আমরা একটি টেরনারি অপারেটর ব্যবহার করি age ভেরিয়েবলটির মান ৬৫-এর চেয়ে কম কিনা চেক করতে। কারণ আমাদের কাস্টমার ২২, স্টেটমেন্ট age < 65 True হিসেবে ইভ্যালুয়েট হয়। এর মানে কাস্টমারকে ৫% ডিসকাউন্ট রেট দেওয়া হয়। যদি আমাদের কাস্টমার ৬৫ বা তার বেশি বয়সের হতেন, তবে তারা ১০% ডিসকাউন্ট রেট পাতেন।
তারপর, আমরা discount ভেরিয়েবলটির মান কনসোলে প্রিন্ট করি।
উপসংহার
পাইথন টেরনারি অপারেটর সিম্পল if স্টেটমেন্ট পারফর্ম করার একটি আরও দক্ষ উপায়। টেরনারি অপারেটর একটি কন্ডিশন ইভ্যালুয়েট করে, তারপর সেই কন্ডিশন True বা False কিনা সেটার উপর ভিত্তি করে একটি নির্দিষ্ট মান ফেরত দেয়।
আমাদের উপরের উদাহরণগুলিতে, আমরা একটি if স্টেটমেন্ট এক লাইনে রান করতে পারলাম। এটি সাধারণত একটি if স্টেটমেন্ট তৈরি করতে লাগে একাধিক লাইনের চেয়ে বেশি সংক্ষিপ্ত।
যাইহোক, টেরনারি অপারেটর সবসময় ব্যবহার করা যায় না। আপনি যদি একাধিক এক্সপ্রেশন টেস্ট করতে চান, তবে আপনাকে একটি পূর্ণ if স্টেটমেন্ট লিখতে হবে। এটা নিশ্চিত করবে যে আপনার কোড পড়তে সহজ এবং বুঝতে সহজ।
এই টিউটোরিয়ালে, উদাহরণের রেফারেন্সে, পাইথন টেরনারি অপারেটরের বেসিকস এবং কীভাবে এটি কাজ করে তা আলোচনা করা হয়েছে। এখন আপনার কাছে এই অপারেটরটি একজন পাইথন প্রোর মতো ব্যবহার করার জ্ঞান আছে!
পাইথনে কোডিং সম্পর্কে আরও জানতে, আমাদের How to Learn Python-এ সম্পূর্ণ গাইড পড়ুন।