পাইথনের যৌক্তিক অপারেটর এবং, বা, এবং না (লজিক্যাল সংযোগ, বিচ্ছিন্নতা, অস্বীকার)

ব্যবসায়

পাইথন লজিক্যাল (বুলিয়ান) অপারেশন করার জন্য লজিক্যাল অপারেটর প্রদান করে।(and,or,not)
এটি একটি if স্টেটমেন্টে একাধিক অবস্থার মধ্যে সম্পর্ক বর্ণনা করতে ব্যবহৃত হয়।

এই বিভাগে নিম্নলিখিত বর্ণনা.

  • ছেদ:and
  • যৌক্তিক যোগ করুন:or
  • অস্বীকার:not
  • and,or,notঅপারেটর অগ্রাধিকার

উপরন্তু, নিম্নলিখিত পয়েন্ট সতর্কতা হিসাবে ব্যাখ্যা করা হয়.

  • বুল ছাড়া অন্য ধরনের বস্তুর জন্য লজিক্যাল অপারেটর
  • and,orএই রিটার্ন মান অগত্যা টাইপ bool হয় না.
  • শর্ট সার্কিট (শর্ট সার্কিট মূল্যায়ন)

ছেদ:and

এবং দুটি মানের যৌক্তিক গুণফল প্রদান করে।

print(True and True)
# True

print(True and False)
# False

print(False and True)
# False

print(False and False)
# False

প্রকৃতপক্ষে, এটি প্রায়শই সত্য বা মিথ্যার জন্য নয়, তবে তুলনা অপারেটর ব্যবহার করে শর্তসাপেক্ষ অভিব্যক্তির জন্য ব্যবহৃত হয়। আপনার তথ্যের জন্য, তুলনা অপারেটরগুলি নিম্নরূপ।

  • <
  • >
a = 10
print(0 < a)
# True

print(a < 100)
# True

print(0 < a and a < 100)
# True

এবং নিম্নলিখিত হিসাবে সংযুক্ত করা যেতে পারে.

print(0 < a < 100)
# True

যৌক্তিক যোগ করুন:or

অথবা দুটি মানের যৌক্তিক OR প্রদান করে।

print(True or True)
# True

print(True or False)
# True

print(False or True)
# True

print(False or False)
# False

অস্বীকার:not

না” মানের নেতিবাচকতা ফিরিয়ে দেয়; সত্য এবং মিথ্যা বিপরীত হয়।

print(not True)
# False

print(not False)
# True

and,or,notঅপারেটর অগ্রাধিকার

এই লজিক্যাল অপারেটরগুলির অগ্রাধিকারের ক্রম নিম্নরূপ: সর্বোচ্চ নয়।

  1. not
  2. and
  3. or

নিম্নলিখিত নমুনা কোডে, উপরের অভিব্যক্তিটিকে এমনভাবে ব্যাখ্যা করা হয়েছে যেন এটি নীচের একটি ছিল। যেহেতু অতিরিক্ত বন্ধনীর সাথে কোন সমস্যা নেই, তাই এই উদাহরণের মতো ক্ষেত্রে তাদের স্পষ্টভাবে বর্ণনা করা সহজ হতে পারে।

print(True or True and False)
# True

print(True or (True and False))
# True

আপনি যদি পরিচালনা করতে চান বা আগে এবং বন্ধনী ব্যবহার করতে চান ()।

print((True or True) and False)
# False

<,>এই তুলনা অপারেটর না তুলনায় এমনকি উচ্চ অগ্রাধিকার আছে. অতএব, প্রতিটি তুলনা অপারেশনের জন্য বন্ধনীর প্রয়োজন নেই, যেমনটি উপরের উদাহরণে ছিল।

print(0 < a and a < 100)
# True

পাইথনে অপারেটর অগ্রাধিকারের সারাংশের জন্য নীচের অফিসিয়াল ডকুমেন্টেশন দেখুন।

বুল ছাড়া অন্য ধরনের বস্তুর জন্য লজিক্যাল অপারেটর

With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.

পাইথনের যৌক্তিক ক্রিয়াকলাপে নিম্নলিখিত বস্তুগুলিকে মিথ্যা বলে মনে করা হয়।

  • ধ্রুবক মিথ্যা হতে সংজ্ঞায়িত:None,false
  • সাংখ্যিক প্রকারে শূন্য:0,0,0j,Decimal(0),Fraction(0, 1)
  • খালি ক্রম বা সংগ্রহ:',(),[],{},set(),range(0)

অন্যান্য সমস্ত মান সত্য বলে বিবেচিত হয়।

একটি বস্তুর বুলিয়ান মান পেতে ফাংশন bool() ব্যবহার করা যেতে পারে। মনে রাখবেন স্ট্রিং ‘0’ বা ‘False’ সত্য বলে বিবেচিত হয়।

print(bool(10))
# True

print(bool(0))
# False

print(bool(''))
# False

print(bool('0'))
# True

print(bool('False'))
# True

print(bool([]))
# False

print(bool([False]))
# True

0′ বা ‘false’ একটি স্ট্রিংকে মিথ্যা হিসাবে পরিচালনা করতে, distutils.util.strtobool() ব্যবহার করুন।

and,orএই রিটার্ন মান অগত্যা টাইপ bool হয় না.

এখানে একটি bool টাইপ ব্যতীত অন্য একটি বস্তুর একটি উদাহরণ, প্রতিটি অপারেটরের ফলাফল একটি সংখ্যাসূচক মানের উপর দেখায়।

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

আপনি উপরের উদাহরণ থেকে দেখতে পাচ্ছেন, এবং এবং বা পাইথনে বুল টাইপের সত্য বা মিথ্যা ফেরত দেয় না, তবে এটি সত্য বা মিথ্যা কিনা তার উপর নির্ভর করে বাম বা ডানে মানটি ফেরত দেয়। উদাহরণটি সাংখ্যিক, কিন্তু একই স্ট্রিং এবং তালিকার মতো অন্যান্য ধরনের ক্ষেত্রে প্রযোজ্য। ঘটনাক্রমে, সত্য বা মিথ্যা টাইপ bool ফেরত না.

এবং এবং বা এর রিটার্ন মানগুলির সংজ্ঞা নিম্নরূপ।

The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.

The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.

6.11. Boolean operations — Expressions — Python 3.10.1 Documentation

যখন বাম এবং ডান অভিব্যক্তির মান পৃথকভাবে সত্য এবং মিথ্যা হয়, তখন রিটার্ন মানগুলি বোঝা সহজ হয়। অন্যদিকে, যদি উভয়ই সত্য হয় বা উভয়ই মিথ্যা হয়, তাহলে অর্ডারের উপর নির্ভর করে রিটার্ন মান ভিন্ন হবে।

আপনি যদি একটি if স্টেটমেন্ট ইত্যাদিতে শর্তসাপেক্ষ অভিব্যক্তি হিসাবে এটি ব্যবহার করেন, ফলাফলটিকে একটি বুলিয়ান মান হিসাবে বিচার করা হয় এবং প্রক্রিয়াজাত করা হয়, তাই আপনাকে এটি নিয়ে চিন্তা করার দরকার নেই, তবে আপনি যদি আরও প্রক্রিয়াকরণের জন্য ফেরত মান ব্যবহার করেন তবে আপনি সতর্কতা অবলম্বন করা প্রয়োজন।

x = 10  # True
y = 100  # True

print(x and y)
# 100

print(y and x)
# 10

print(x or y)
# 10

print(y or x)
# 100
x = 0  # False
y = 0.0  # False

print(x and y)
# 0

print(y and x)
# 0.0

print(x or y)
# 0.0

print(y or x)
# 0

print(bool(x and y))
# False

আপনি যদি এটিকে সত্য বা মিথ্যা হিসাবে বিবেচনা করতে চান তবে আপনি শেষ উদাহরণের মতো করতে পারেন।
bool(x and y)

এবং এবং বা এর রিটার্ন মানগুলি নীচের সারণীতে সংক্ষিপ্ত করা হয়েছে।

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

শর্ট সার্কিট (শর্ট সার্কিট মূল্যায়ন)

আপনি উপরের টেবিল থেকে দেখতে পাচ্ছেন, যদি x এবং y-এ x মিথ্যা হয়, অথবা x বা y-তে x সত্য হলে, y-এর মান নির্বিশেষে রিটার্ন মান x হবে।

এই ধরনের ক্ষেত্রে, y মূল্যায়ন করা হয় না।

and,orমনে রাখবেন যে আপনি যদি কিছু প্রক্রিয়াকরণ করার জন্য এই প্রক্রিয়াগুলির ডানদিকে একটি ফাংশন বা পদ্ধতি কল করেন, তবে বাম দিকের ফলাফলের উপর নির্ভর করে প্রক্রিয়াটি কার্যকর নাও হতে পারে।

def test():
    print('function is called')
    return True

print(True and test())
# function is called
# True

print(False and test())
# False

print(True or test())
# True

print(False or test())
# function is called
# True