পাইথন সম্পর্কে আরও গভীরে যাওয়ার আগে আমাদের Boolean logics সম্পর্কে জানতে হবে। Boolen logics হচ্ছে computer science এর ভিত্তি।
আমি এখানে Learn Python the hard way বইয়ের Boolean logics সম্পর্কে থাকা চাপ্টারগুলো বাংলায় অনুবাদ করে দিচ্ছি।
প্রোগ্রামিংয়ের সব ক্ষেত্রেই Boolean Logics ব্যবহৃত হয়। এরা হচ্ছে computation এর ভিত্তি এবং এদের সম্পর্কে ভালো জানা এবং মিউজিকের ক্ষেত্রে নিজের সুরের স্কেল সম্পর্কে অবগত থাকা একই কথা।
The Truth Terms
কম্পিউটারের লজিক হচ্ছে প্রোগ্রামে লেখা ক্যারেক্টার বা শব্দগুলো কোন নির্দিষ্ট ক্ষেত্রে সত্য কিনা তা চেক করা। কোন বাক্য সত্য নাকি মিথ্যা তা নির্ণয়ের জন্য পাইথনে নিচের টার্মগুলো ব্যবহার হয়-
- and
- or
- not
- != (not equal)
- == (equal)
- >= (greater than equal)
- <= (less than equal)
- True
- False
এখানে and (এবং), or(অথবা) এবং not(না) অনেকটা আমরা কথা বলার সময় এদেরকে যেভাবে ব্যবহার করি ঠিক সেভাবেই কাজ করে। যেমন-
or- দুটো বাক্যের যেকোন একটা সত্য হলেই ‘সত্য’। অনেকটা বাংলায় আমরা যেভাবে বলি – আমার কলম অথবা পেন্সিল লাগবে। অর্থাৎ কলম অথবা পেন্সিলের যেকোন একটা পেলেই আমার চলবে।
and- সত্য হতে হলে দুটো বাক্যই সত্য হতে হবে। যেমন আমরা অনেকসময় বলি- আমার কলম এবং পেন্সিল দুটোই লাগবে। অর্থাৎ কলম এবং পেন্সিলের কোন একটা যদি আমি না পাই তবে আমার সমস্যা হবে।
not- এটা হচ্ছে কোন শব্দের “বিপরীত” শব্দ বের করার মত। অর্থাৎ “হ্যা” থাকলে not সেটাকে “না” করবে।
নিচের টেবিলগুলো দেখলে ব্যাপারটা আরও পরিষ্কার হবে।
The Truth Tables
NOT | True? |
---|---|
not False | True |
not True | False |
OR | True? |
---|---|
True or False | True |
True or True | True |
False or True | True |
False or False | False |
AND | True? |
---|---|
True and False | False |
True and True | True |
False and True | False |
False and False | False |
NOT OR | True? |
---|---|
not (True or False) | False |
not (True or True) | False |
not (False or True) | False |
not (False or False) | True |
NOT AND | True? |
---|---|
not (True and False) | True |
not (True and True) | False |
not (False and True) | True |
not (False and False) | True |
!= | True? |
---|---|
1 != 0 | True |
1 != 1 | False |
0 != 1 | True |
0 != 0 | False |
== | True? |
---|---|
1 == 0 | False |
1 == 1 | True |
0 == 1 | False |
0 == 0 | True |
নিচের statementগুলোর ফলাফল নিজে নিজে বের করতে পারলেই লজিকের ব্যাপারতা আয়ত্বে চলে আসবে।
১) True and True
২) False and True
৩) 1 == 1 and 2 == 1
৪) "test" == "test"
৫) 1 == 1 or 2 != 1
৬) True and 1 == 1
৭) False and 0 != 0
৮) True or 1 == 1
৯) "test" == "testing"
১০) 1 != 0 and 2 == 1
১১) "test" != "testing"
১২) "test" == 1
১৩) not (True and False)
১৪) not (1 == 1 and 0 != 1)
১৫) not (10 == 1 or 1000 == 1000)
১৬) not (1 != 10 or 3 == 4)
১৭) not ("testing" == "testing" and "Zed" == "Cool Guy")
১৮) 1 == 1 and not ("testing" == 1 or 1 == 0)
১৯) "chunky" == "bacon" and not (3 == 4 or 3 == 3)
২০) 3 == 3 and not ("testing" == "testing" or "Python" == "Fun")
উপরের প্রশ্নগুলোর উত্তর বের করার জন্য কিছু টিপসঃ
১) একটা equality test (== or !=) খুঁজে বের করুন এবং এটাকে তার Truth দিয়ে replace করুন।
২) বন্ধনীর ভিতরে থাকা and/or খুঁজে বের করুন এবং সবার আগে তা সমাধান করুন।
৩) প্রতিটা not খুঁজে বের করুন এবং সে অনুসারে বিপরীত শব্দটা বের করুন।
৪) তারপর বাকি and/or বের করুন এবং তা সমাধান করুন।
৫) এতক্ষণে True এবং False বের হয়ে আসার কথা।
উদাহরণস্বরূপ ২০ নং টার মত একটা বাক্যের সমাধান বের করে দেখা যাক-
3 != 4 and not (“testing” != “test” or “Python” == “Python”)
১) প্রতিটা equality test (== or !=) খুঁজে বের করে সমাধান করা:-
i) 3 != 4 হচ্ছে True:
তাহলে যা দাড়াচ্ছে True and not ("testing" != "test" or "Python" == "Python") ।
ii) "testing" != "test" হচ্ছে True:
তাহলে True and not (True or "Python" == "Python") ।
iii) "Python" == "Python" হচ্ছে True:
তাহলে True and not (True or True) ।
২) বন্ধনীর ভিতরে থাকা and/or খুঁজে বের করে সমাধান করা:-
i) (True or True) হচ্ছে True:
তাহলে True and not (True) ।
৩) প্রতিটা not খুঁজে বের করা এবং সে অনুসারে বিপরীত শব্দ ব্যবহার করা:-
i) not (True) হচ্ছে False:
তাহলে True and False ।
৪) বাকি and/or বের করে সমাধান করা:-
i) True and False হচ্ছে False ।
৫) এতক্ষণে আমাদের সমাধান False বের হয়ে এসেছে ।
আজকে এই পর্যন্তই !
বিঃদ্রঃ ‘ !=’ এবং ‘==’ এর বাইরেও কিছু equality operator পাইথনে আছে। (ex: <, <==) গুগলের সাহায্য নিয়ে এগুলো সম্পর্কে জানার চেষ্টা করুন।
সাম্প্রতিক মন্তব্য