কম্পিউটার টিউটোরিয়াল

পাইথন লজিক্যাল অপারেটর

কন্ডিশনাল স্টেটমেন্টের সাথে কাজ করার সময়, আপনি স্টেটমেন্টে একাধিক কমপেরিজন করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি চেক করতে চাইতে পারেন দুটি স্টেটমেন্ট True আয়ত্ত করে কিনা, অথবা দুটি স্টেটমেন্টের যেকোনো একটি False আয়ত্ত করে কিনা।

ইহান পাইথন লজিক্যাল অপারেটর কাজে আসে। লজিক্যাল অপারেটর একটি স্পেশাল টাইপের অপারেটর যা আপনাকে একটি কন্ডিশনাল স্টেটমেন্টে একাধিক লজিক্যাল কমপেরিজন করতে দেয়।

এই টিউটোরিয়ালে, উদাহরণসহ অপারেটরের বেসিকস এবং পাইথনে অফার করা তিনটি লজিক্যাল অপারেটর কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হবে।

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

একটি অপারেটর হলো একটি সিম্বল যা পাইথনে একটি স্পেশাল অপারেশন ইন্ডিকেট করে। উদাহরণস্বরূপ, মাইনাস সাইন (-) অপারেটর সাবট্র্যাকশন অপারেশন ইন্ডিকেট করে।

পাইথনে তিন ধরনের অপারেটর রয়েছে। এগুলো হলো:

  • অ্যারিথমেটিক অপারেটর: এগুলো আপনাকে প্রোগ্রামে ম্যাথম্যাটিক্যাল অপারেশন পারফর্ম করতে দেয়।
  • কমপেরিজন অপারেটর: এগুলো আপনাকে ভ্যালু কমপেয়ার করতে দেয়, এবং True বা False রিটার্ন করে।
  • লজিক্যাল অপারেটর: এগুলো আপনাকে কন্ডিশনাল স্টেটমেন্ট কম্বাইন করতে দেয়।

দ্বিতীয় এবং তৃতীয় অপারেটর—কমপেরিজন এবং লজিক্যাল—প্রোগ্রামারদের প্রোগ্রামের ফ্লো ভালো কন্ট্রোল করতে সাহায্য করে। উদাহরণস্বরূপ, আপনি একটি কমপেরিজন অপারেটর ব্যবহার করে চেক করতে পারেন একটি কন্ডিশন True কিনা, এবং যদি True হয়, তবে আপনার প্রোগ্রামে একটি নির্দিষ্ট ব্লক অফ কোড রান করতে পারেন।

কমপেরিজন এবং লজিক্যাল অপারেটর প্রায়শই if স্টেটমেন্টের সাথে ব্যবহার করা হয়। উদাহরণস্বরূপ, ধরুন আমরা চেক করতে চাই একটি অনলাইন শপিং সাইটের ইউজার ১৬ বছর বা তার বেশি কিনা। নিচের কোড দিয়ে এটি করা যাবে:

age = 17
if age >= 16:
    print("User is 16 or over!")
else:
    print("User is under 16!")

আমাদের কোড রিটার্ন করে: User is 16 or over!

এই প্রোগ্রামে, আমরা একটি কমপেরিজন অপারেটর ব্যবহার করেছি কমপেয়ার করতে যে ইউজারের বয়স, যা এই কেসে ১৭, ১৬-এর চেয়ে বড় বা সমান কিনা। কারণ ১৭, ১৬-এর চেয়ে বড়, এই স্টেটমেন্ট True আয়ত্ত করল, এবং User is 16 or over! মেসেজ কনসোলে প্রিন্ট হয়েছে।

কিন্তু যদি আমরা একাধিক কমপেরিজন একটি if স্টেটমেন্টে চালাতে চাই? সেটিই লজিক্যাল অপারেটর কাজে আসে।

পাইথন লজিক্যাল অপারেটর

পাইথন তিনটি লজিক্যাল অপারেটর অফার করে যা আপনাকে ভ্যালু কমপেয়ার করতে দেয়।

এই লজিক্যাল অপারেটর এক্সপ্রেশনকে বুলিয়ান ভ্যালুতে ইভ্যালুয়েট করে, এবং অপারেটরের আউটকামের উপর নির্ভর করে True বা False রিটার্ন করে। পাইথন által অফার করা তিনটি লজিক্যাল অপারেটর নিচের মতো:

নাম বিবরণ উদাহরণ
and দুই এক্সপ্রেশন true হলে True a and b
or কমপক্ষে একটি এক্সপ্রেশন true হলে True a or b
not এক্সপ্রেশন false হলে মাত্র True not a

লজিক্যাল অপারেটর সাধারণত ব্যবহার করা হয় ইভ্যালুয়েট করতে যে দুটি বা ততোধিক এক্সপ্রেশন নির্দিষ্টভাবে আয়ত্ত করছে কিনা।

চলুন কিছু উদাহরণ দিয়ে দেখি কীভাবে এই লজিক্যাল অপারেটরগুলো কাজ করে। আমরা আগের অনলাইন শপিং উদাহরণে ফিরব।

পাইথন and অপারেটর

and অপারেটর True আয়ত্ত করে যদি স্পেসিফাই করা সব এক্সপ্রেশন True আয়ত্ত করে।

ধরুন, আমরা একটি অনলাইন শপিং সাইট বানাচ্ছি। আমাদের সাইট চেক করবে যে ইউজার ১৬ বছরের ওপর আছে কিনা, এবং এর পাশাপাশি চেক করবে ইউজারের একাউন্ট ভালো স্ট্যান্ডিং-এ আছে কিনা। নিচের কোড দিয়ে এটি করা যাবে:

age = 17
good_standing = True
if (age >= 16) and (good_standing == True):
    print("This user's account can make a purchase.")
else:
    print("This user's account cannot make a purchase.")

আমাদের কোড রিটার্ন করে: This user's account can make a purchase.

আমাদের কোডে, আমরা একটি and স্টেটমেন্ট ব্যবহার করেছি ইভ্যালুয়েট করতে যে ইউজার ১৬ বছরের বা তার বেশি, এবং ইভ্যালুয়েট করতে ইউজারের একাউন্ট ভালো স্ট্যান্ডিং-এ আছে কিনা। এই কেসে, age >= 16 ইভ্যালুয়েট হয়েছে, তারপর good_standing == True ইভ্যালুয়েট হয়েছে। যেহেতু এই দুটি স্টেটমেন্ট True আয়ত্ত করল, আমাদের if স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হয়েছে।

যদি এই কন্ডিশনগুলোর যেকোনো একটি False আয়ত্ত করত—যদি ইউজার ১৬ বছরের নিচে হত, বা একাউন্ট ভালো স্ট্যান্ডিং-এ না হত—তবে আমাদের else স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হত।

পাইথন or অপারেটর

or অপারেটর True আয়ত্ত করে যদি কমপক্ষে একটি এক্সপ্রেশন True আয়ত্ত করে।

ধরুন, আমরা আমাদের লয়ালটি প্ল্যানে সাবস্ক্রাইব করা সব শপারকে ৫% ডিসকাউন্ট দিতে চাই, এবং ৬৫ বছর বা তার বেশি বয়সের সব কেনাকাটা করার মানুষকে ডিসকাউন্ট দিতে চাই। নিচের প্রোগ্রাম দিয়ে এটি করা যাবে:

loyalty_plan = False
age = 67
if (loyalty_plan == True) or (age >= 65):
    discount = 5
else:
    discount = 0
print("Shopper discount: ", discount)

আমাদের কোড রিটার্ন করে: Shopper discount: 5.

এই কেসে, আমাদের কোড ইভ্যালুয়েট করে যে loyalty_plan True এর সমান কিনা, এবং ইভ্যালুয়েট করে age ৬৫ বা তার বেশি কিনা। এই কেসে, loyalty_plan True এর সমান নয়, তাই সেটি False আয়ত্ত করল। কিন্তু, age ৬৫-এর চেয়ে বড়, তাই সেটি True আয়ত্ত করল।

কারণ আমরা আমাদের কোডে or স্টেটমেন্ট স্পেসিফাই করেছি এবং আমাদের কন্ডিশনগুলোতে একটি True আয়ত্ত করল, আমাদের if স্টেটমেন্টের কন্টেন্ট রান করল। তবে, যদি আমাদের ইউজার লয়ালটি প্ল্যানে না থাকত এবং ৬৫ বছরের নিচে হত, তবে else স্টেটমেন্টের কন্টেন্ট রান করত।

এই কেসে, আমাদের ইউজারকে ৫% ডিসকাউন্ট দেওয়া হয়েছে। তারপর, Shopper discount: মেসেজ, ইউজারের ডিসকাউন্টের সাইজ সহ, কনসোলে প্রিন্ট হয়েছে।

পাইথন not অপারেটর

not অপারেটর True আয়ত্ত করে শুধু তখন যখন এক্সপ্রেশন False আয়ত্ত করে।

ধরুন, আমাদের ডিসকাউন্ট শুধু একবার ব্যবহার করা যাবে, এবং আমরা ডিসকাউন্ট শুধু তাদেরকে অফার করতে চাই যারা ইতিমধ্যে তাদের ডিসকাউন্ট ব্যবহার করে পারচেস করেননি। নিচের কোড দিয়ে এটি করা যাবে:

used_discount = True
if not(used_discount == True):
    print("This user has not used their discount.")
else:
    print("This user has used their discount.")

আমাদের কোড রিটার্ন করে: This user has not used their discount.

আমাদের কোডে, আমরা একটি not স্টেটমেন্ট ব্যবহার করেছি ইভ্যালুয়েট করতে যে স্টেটমেন্ট used_discount == True False আয়ত্ত করে কিনা। এই কেসে, কারণ স্টেটমেন্টটি True আয়ত্ত করল, not স্টেটমেন্টটি False আয়ত্ত করল। এর ফলশ্রুতি হলো আমাদের else ব্লকের কোড এক্সিকিউট হলো।

যদি আমাদের ইউজার তার ডিসকাউন্ট ব্যবহার করতেন না, used_discount == True False আয়ত্ত করত, তাই আমাদের not স্টেটমেন্ট True আয়ত্ত করত, এবং আমাদের if স্টেটমেন্টের কন্টেন্ট এক্সিকিউট হত।

উপসংহার

লজিক্যাল অপারেটর আপনাকে আপনার প্রোগ্রামের ফ্লো কন্ট্রোল করতে দেয়।

and লজিক্যাল অপারেটর আপনাকে চেক করতে দেয় দুটি এক্সপ্রেশন True কিনা, or লজিক্যাল অপারেটর আপনাকে চেক করতে দেয় একাধিক এক্সপ্রেশন থেকে যেকোনো একটি True কিনা, এবং not অপারেটর আপনাকে চেক করতে দেয় এক্সপ্রেশন False কিনা।

এই আর্টিকেলে প্রদত্ত উদাহরণগুলো দিয়ে, আপনি আপনার পাইথন কোডে লজিক্যাল অপারেটর এক্সপার্টের মত ব্যবহার করার জন্য সজ্জিত!

  1. পাইথনে OR এবং AND অপারেটরে পার্থক্য কী?

  2. পাইথনে | এবং OR অপারেটরে পার্থক্য কী?

  3. পাইথনে বুলিয়ান অপারেটরগুলো কী কী?

  4. পাইথনে বিভিন্ন বেসিক অপারেটর কী কী?