পাইথন লজিক্যাল (বুলিয়ান) অপারেশন করার জন্য লজিক্যাল অপারেটর প্রদান করে।(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অপারেটর অগ্রাধিকার
এই লজিক্যাল অপারেটরগুলির অগ্রাধিকারের ক্রম নিম্নরূপ: সর্বোচ্চ নয়।
not
and
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)
এবং এবং বা এর রিটার্ন মানগুলি নীচের সারণীতে সংক্ষিপ্ত করা হয়েছে।
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
শর্ট সার্কিট (শর্ট সার্কিট মূল্যায়ন)
আপনি উপরের টেবিল থেকে দেখতে পাচ্ছেন, যদি 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