Boolean چیست؟ – نوع داده بولی به زبان ساده
در زبانهای برنامهنویسی، انواع مختلفی از نوع دادهها را در اختیار داریم. از این نوع دادهها برای ذخیرهسازی دادههای گوناگون استفاده میکنیم. به عنوان مثال از نوع دادههای Integer, رشته، Float و Boolean میتوان به عنوان رایجترین نوع دادههای مورد استفاده در برنامهنویسی نام برد. در این مطلب از مجله فرادرس نوع داده Boolean را بررسی کردهایم. اینکه Boolean چیست، چه کاربردی دارد، چه عملگرهایی برای کار با نوع داده Boolean وجود دارند و غیره. نوع داده Boolean دارای ساختار خاصی است که فقط میتواند دو مقدار متفاوت True یا False را در خود ذخیره کند. مطلب را با صحبت درباره نوع داده Boolean و مبدا آن شروع کردهایم. همچنین برای این مطلب کدهای مربوط به نوع داده بولین را در زبان برنامهنویسی پایتون پیادهسازی کردیم. البته منطق کلی نوع داده Boolean ثابت است و در تمام زبانهای برنامهنویسی بههمین صورت استفاده میشود اما برای تمرین و پیادهسازی کدهای مثالها از زبان پایتون استفاده کردیم که یکی از پر استفادهترین زبانهای برنامهنویسی جهان است.
نوع بولین، یکی از نوع دادههای درونی ارائه شده توسط تقریبا همه زبانهای برنامهنویسی است. همانطور که اشاره شد مانند همه زبانهای برنامهنویسی در پایتون نیز نوع داده بولین یکی از دو مقدار True یا False را نمایش میدهد. عموما این نوع داده برای نمایش مقادیر صحیح در عبارتها استفاده میشود. طبق تعریف، Boolean نوع دادهای است که فقط یکی از دو حالت ممکن True یا False را میپذیرد. Boolean-ها در نوشتن منطق کامپیوتر، به معنای واقعی دارای اهمیت فوقالعادهای هستند. همچنین بولینها برای بیان مفهوم درست یا غلط بودن هرچیزی مانند عبارت، متغیر، شرط یا غیره استفاده میشود.
Boolean چیست؟
بولینها نام خود را از دانشمند انگلیسی به نام جورج بولی گرفتهاند. جورج بولی، جبر بولی را در کتاب خودش به نام تحلیلهای ریاضی درباره منطق در سال ۱۸۴۷ معرفی کرد. «جبر بولی» (Boolean Algebra) شاخهای از ریاضیات است که با اعداد کار نمیکند بلکه فقط با دو مقدار صحیح و غلط یا همان True و False کار میکند.
در جبر بولی اغلب صحیح و غلط را به ترتیب با اعداد 1 و 0 نمایش میدهند. با اینکه به ظاهر ساده است اما جبر بولی میتواند بسیار قدرتمند عمل کند. اگرچه که در این مطلب، عمیقتر از این به تئوری پشت جبر بولی نخواهیم پرداخت. در برنامهنویسی کامپیوتری نیز به کاربردهای Boolean بیشتر اهمیت قائل میشوند تا تئوری جبر بولی.
نوع داده بولین
مقدار بولین فقط میتواند دو نوع True یا False باشد. خروجی <class ‘bool’> نشان میدهد که نوع متغیر از نوع داده بولین است. به مثال زیر توجه کنید.
1a = True
2type(a)
3
4b = False
5type(b)
خروجی تکه کد بالا بهصورت زیر است.
<class 'bool'> <class 'bool'>
نوع داده بولین در پایتون چیست؟
همانطور که احتمالا حدس زدهاید Boolean-ها به کامپیوتر کمک میکنند که منطق را درک کند. Boolean-ها برنامهنویسها را قادر میسازند که به اشیا، عبارتها، شرایط یا آیتمهای دیگر مقادیر True یا False را اختصاص دهند. در نهایت برنامهها میتوانند قسمتی از کد را با توجه به مقدار True یا False در شی اجرا کنند یا از اجرای آن صرفهنظر کنند.
زبان برنامهنویسی پایتون نیز به عنوان زبانی سطح بالا، نوع داده Boolean را بهطور Built-In در خودش تعریف کرده است. از این نوع داده در ارزیابی عبارات شرطی، پُر کردن بعضی از خانههای جداول دادهای در بخش پردازش داده و غیره میتوان استفاده کرد. در بخشهای بعدی مطلب بهصورت دقیقتری به کاربرد این نوع داده درونی و روش استفاده آن با کمک کدهای پایتون پرداختهایم. توجه کنید که منطق و حتی عملگرهای Boolean در همه زبانهای برنامهنویسی یکسان هستند و تنها چیزی که ممکن است کمی تفاوت کند سینتکس نوشتن کدها در میان زبانهای گوناگون برنامهنویسی است.
ارزیابی کردن متغیرها و عبارات
تابع bool() یکی از توابع اختصاصی پایتون است اما در سایر زبانهای برنامهنویسی نیز توابعی شبیه به تابع bool() وجود دارد. میتوانیم مقادیر و متغیرها را با استفاده از تابع bool() در پایتون ارزیابی کنیم. این متد برای برگرداندن یا تبدیل مقداری به مقدار Boolean استفاده میشود. در واقع استفاده از این متد روش استاندارد آزمایش صحت رَویهها است.
سینتکس استفاده از این متد بهصورت زیر است.
bool([x])
تابع bool در پایتون
بدون استفاده از تابع bool() نیز میتوانیم عبارات برنامهنویسی را اعتبار سنجی کنیم. برای اجرای اینکار باید از عبارتهای شرطی استفاده کنیم که در تمام زبانهای برنامهنویسی با سینتکسهای متفاوت وجود دارند. مقادیر Boolean به عنوان نتیجه از بعضی از انواع مقایسهها برگشت داده میشوند. در مثال پایین مقادیر بولین حاصل از ارزیابی متغیرها در شرایط مختلف با استفاده از تابع bool() نمایش داده شده است.
1x = 5
2y = 10
3print(bool(x==y))
4
5# Returns False as x is None
6x = None
7print(bool(x))
8
9# Returns False as x is an empty sequence
10x = ()
11print(bool(x))
12
13# Returns False as x is an empty mapping
14x = {}
15print(bool(x))
16
17# Returns False as x is 0
18x = 0.0
19print(bool(x))
20
21# Returns True as x is a non empty string
22x = 'GeeksforGeeks'
23<print(bool(x))
خروجی کد بالا بهصورت زیر است.
False False False False False True
برای اینکه بدانیم روش کلی مقایسه متغیرها با استفاده از نوع داده Boolean چیست به ادامه مطلب توجه کنید.
مقادیر Boolean در عبارات
از آنجا که در این کد متغیر a به مقدار 10 و متغیر b به مقدار 20 اختصاص داده شده است. نتیجه ارزیابی عملیات مقایسهای a == b برابر با False میشود. بنابراین، کد زیر خروجی False خواهد داشت.
1a = 10
2b = 20
3
4# Comparing variables
5print(a == b)
خروجی کد بالا بهصورت زیر در کنسول نمایش داده میشود.
False
اعداد Integer و Float به عنوان بولین
اعداد را هم با استفاده از تابع bool() میتوان به عنوان مقادیر Boolean در نظر گرفت. هر عدد صحیح، اعشار یا عدد مرکبی که مقدار عدد 0 را داشته باشند-مقدار عدد برابر با 0 باشد- به عنوان False در نظر گرفته میشوند. در حالی که اگر این اعداد مقادیری به غیر از صفر داشته باشند، هر مقداری، چه مثبت و چه منفی، به عنوان Trueدر نظر گرفته میشوند.
برای درک بهتر مطلب بالا به مثالهای زده شده در کد پایین توجه کنید.
1var1 = 0
2print(bool(var1))
3
4var2 = 1
5print(bool(var2))
6
7var3 = -9.7
8print(bool(var3))
خروجی کد بالا بهصورت زیر است.
False True True
افزایش مهارت برنامه نویسی با فرادرس
برای بهترین بهرهبرداری از اطلاعات در زمینه دادههای بولی و عملگرهای مرتبط با آن در زبان برنامهنویسی، باید در کار با خود زبان برنامهنویسی نیز مهارت کافی داشته باشیم. به عنوان یکی از روشهای خوب برای آموختن برنامهنویسی میتوان از شرکت در کلاسهای حضوری نام برد. اما باید توجه کرد در کلاسهای آکادمیک، علاوه بر قدیمی بودن روش تدریس، هزینه بالایی نیز بر دانشجویان تحمیل میشود. ریسک پایین بودن کیفیت آموزش وجود دارد و مهمتر اینکه چنین کلاسهایی دارای چهارچوب زمانی خاصی نیز هستند. بنابراین پیدا کردن کلاسی که با زمان آزاد علاقهمندان به یادگیری، هماهنگ و از لحاظ هزینه مقرون به صرفه باشد، در عین حال کیفیت آموزشی خوب را هم تضمین کند کمی دشوار است.
- فیلم آموزش رایگان اصول و مبانی برنامه نویسی فرادرس
- فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه فرادرس
- فیلم آموزش برنامه نویسی پایتون دوره مقدماتی فرادرس
عملگرهای Boolean چیست؟
عملگرهای بولین، عملگرهای محاسباتی ریاضی سادهای درباره مقادیر Trueیا False هستند. به این عملگرها عملگر بیتی نیز گفته میشود. با استفاده از عملگرهای AND و OR و NOT میتوان با این مقادیر کار کرد. در ادامه تعدادی از عملگرهای رایج مختص محاسبات Boolean را فهرست کردهایم.
- or «یا»
- and «و»
- not «نیست | نه | بهجز»
- == «برابری»
- =! «نابرابری»
عملگر بولین OR
اگر هر کدام از ورودیها عملگر بولین OR -مقادیر دو طرف عملگر- برابر با مقدار True باشند، خروجی این عملگر هم برابر با True میشود، در غیر این صورت خروجی برابر با False میشود. به جدول زیر توجه کنید.
A or B | B | A |
True | True | True |
True | False | True |
True | True | False |
False | False | False |
عملگر بولین OR در پایتون
در مثال نمایش داده شده پایین، از عملگر بولین OR استفاده کردهایم. این عملگر هم جزو عملگرهای بیتی در پایتون است. با استفاده از عبارت شرطی if و عملگر or بررسی میکنیم که آیا a بزرگتر از b است یا b بزرگتر از c است. در این عبارت اگر هر کدام از شرایط صحیح باشند مقدار Trueدر خروجی چاپ میشود. «در این مثال عبارت b<c برقرار است.»
1a = 1
2b = 2
3c = 4
4
5if a > b or b < c:
6 print(True)
7else:
8 print(False)
9
10if a or b or c:
11 print("Atleast one number has boolean value as True")
خروجی کد بالا بهصورت زیر در کنسول برنامه چاپ میشود.
True Atleast one number has boolean value as True
عملگر AND بولین
برای اینکه بدانیم کاربرد این عملگر بر روی دادههای Boolean چیست باید توجه کنید درصورتی که هر کدام از عملوندهای این عملگر Boolean -مقادیر دو طرف عملگر- برابر با مقدار False باشند، خروجی نهایی این عملگر نیز برابر با Falseاست. در غیر این صورت مقدار Trueبر میگرداند.
برای درک بهتر مطلب به جدول زیر توجه کنید.
A and B | B | A |
True | True | True |
False | False | True |
False | True | False |
False | False | False |
عملگر AND بولین در پایتون
به مثال زیر توجه کنید. در قسمت اول کد زیر، عبارت کلی a > b و b < c بهصورت False ازریابی میشوند. بنابراین، کد بلاک مربوط به else را اجرا خواهد کرد و مقدار False را در خروجی چاپ میکند. از آنجا که در قسمت دوم مقدار متغیر a برابر با 0 است، شرایط a و b و c برابر با False ارزیابی میشوند. زیرا همانطور که اشاره کردیم فقط کافی است یکی از متغیرها -در اینجا متغیر a- برابر با False باشد تا جواب کل عملیات AND برابر با False شود. بنابراین، کد بلاک else را اجرا خواهد کرد و جمله «At least one number has a Boolean value as False» را در خروجی چاپ میکند.
در صورتی که تمایل داشته باشید بهصورت کلی درباره انواع عملگرها در برنامهنویسی مطالعه بیشتری داشته باشید میتوانید از مطلب عملگر در برنامه نویسی مجله فرادرس استفاده کنید. کد زیر را برای بررسی عملگر and در نظر بگیرید.
1a = 0
2b = 2
3c = 4
4
5if a > b and b<c:
6 print(True)
7else:
8 print(False)
9
10if a and b and c:
11 print("All the numbers has boolean value as True")
12else:
13 print("Atleast one number has boolean value as False")
خروجی کد بالا بهصورت زیر برای کاربر نمایش داده میشود.
False Atleast one number has boolean value as False
عملگر Not بولین
عملگر Not بولین فقط به یک آرگومان نیاز دارد و حالت نقض آن آرگومان را نمایش میدهد. این عملگر برای مقدار False ، مقدار Trueرا برمیگرداند و برای مقدار Trueمقدار False را برمیگرداند.
به جدول زیر توجه کنید.
Not A | A |
False | True |
True | False |
عملگر Not بولین در پایتون
این کد نشان میدهد وقتی که مقدار متغیر aبرابر با 0 باشد برابر با مقدار False در نظر گرفته میشود. پس شرط عبارت if برقرار میباشد و در نتیجه در نتیجه پیغام متناسب با شرط اجرا میشود.
1a = 0
2
3if not a:
4 print("Boolean value of a is False")
خروجی کد بالا بهصورت زیر است.
Boolean value of a is False
عملگرهای برابری == و نابرابری =!
قبل از اینکه بدانیم کاربرد این عملگرها در Boolean چیست باید بدانیم که این نوع از عمگرها جزو عملگرهای مقایسهای هستند. یعنی هر دو این عملگرها برای مقایسه دو مقدار استفاده میشوند.
عملگر == یا برابری فقط وقتی مقدار Trueبرمیگرداند که هر دو عملوند دو طرف عملگر برابر هم باشند. در غیر این صورت مقدار False برمیگرداند و عملگر =! یا نابرابری فقط وقتی مقدار Trueبرمیگرداند که عملوندهای دو طرف عملگر با یکدیگر برابر نباشند. در غیر این صورت مقدار False برمیگرداند.
در صورتی که به تازگی به برنامهنویسی علاقه مند شدهاید و تمایل دارید تا با مسیر یادگیری و توسعه و بازار کار این حرفه آشنا شوید میتوانید از فیلم رایگان آشنایی با شغل برنامه نویس، وظایف، مهارتها، فرصتهای شغلی و بازار کار فرادرس استفاده کنید.
عملگرهای برابری == و نابرابری =! در پایتون
در مثال پایین، کد، مقادیری را به متغیرهای a و b تخصیص میدهد. سپس از عبارتهای شرطی برای بررسی برابری مقدار متغیر a با 0 استفاده میکند. بعد از آن شرایط دیگر را بررسی میکند. اگر a برابر با b باشد و اگر aبرابر با b نباشد این کد مقدار True را در خروجی چاپ میکند. بنابراین در جواب عبارت اول و سوم مقدار Trueچاپ خواهد شد.
به کد زیر توجه کنید.
1a = 0
2b = 1
3
4if a == 0:
5 print(True)
6
7if a == b:
8 print(True)
9
10if a != b:
11 print(True)
خروجی کد بالا بهصورت زیر در کنسول پایتون چاپ میشود.
True True
عملگر is
یکی دیگر از عملگرهایی که حتما باید بدانیم کاربردش در Boolean چیست عملگر is است. از کلمه کلیدی is برای بررسی تعلق دو متغیر به یک شی استفاده میشود. در این آزمایش اگر هر دو شی یکسان باشند مقدار Trueبرگردانده میشود و در غیر اینصورت مقدار False برمیگرداند حتی اگر هر دو شی ۱۰۰٪ باهم برابر باشند.
عملگر is در پایتون
در مثال پایین، در ابتدا کد مقدار 10 را به متغیرهای x و y اختصاص میدهد. سپس کد متغیرهای x و y را با استفاده از عملگر isبا یکدیگر مقایسه میکند. نتیجه این مقایسه مقدار Trueاست، زیرا این دو متغیر به شی یکسانی اشاره میکنند. در مرحله بعد، کد دو لیست مجزا را به متغیرهایx و y تخصیص میدهد و این دو متغیر را با استفاده از عملگر isبا یکدیگر مقایسه میکند. جواب ناشی از این مقایسه برابر با مقدار False است، زیرا لیستها در حافظه کامپیوتر اشیا مجزایی از هم هستند.
به کد آمده پایین توجه کنید.
1x = 10
2y = 10
3
4if x is y:
5 print(True)
6else:
7 print(False)
8
9x = ["a", "b", "c", "d"]
10y = ["a", "b", "c", "d"]
11
12print(x is y)
خروجی کد بالا بهصورت زیر است.
True False
عملگر in
آخرین عملگری که در این مطلب میآموزیم که کاربردش در Boolean چیست، عملگر in است. عملگر in عضویت را در دادههای Boolean بررسی میکند. عملگر بررسی میکند که آیا مقدار سمت چپ عملگر در نوع داده پیمایشپذیر سمت راست وجود دارد یا نه. نوع داده سمت راست میتواند لیست، تاپل، Range، رشته و غیره باشد.
عملگر in در پایتون
در مثال آمده پایین، کد نمایشداده شده لیستی از حیوانات ایجاد کرده است و بررسی میکند که آیای رشته “lion” در لیست موجود است یا نه. اگر در این لیست، رشته “lion” موجود بود، کد برنامه، در خروجی کلمه Trueرا نمایش میدهد. در غیر این صورت نتیجه برابر با False است اما خروجی نمایش داده نمیشود. به کد زیر توجه کنید.
1animals = ["dog", "lion", "cat"]
2
3# Check if lion in list or not
4if "lion" in animals:
5 print(True)
چطور به برنامه نویسی بیشتر و بهتر مسلط شویم؟
در مطلب بالا به صورت مفصل در مورد اینکه نوع داده Boolean چیست صحبت کردیم، کاربرد نوع داده Boolean از مجموعه عملیات ریاضی است. این عملیات ریاضی را میتوانید در هر زبان برنامهنویسی انجام دهید. اگر علاقه دارید به عنوان یک برنامهنویس تحلیلگر داده، متخصص هوش مصنوعی و غیره مهارت خود در زمینه برنامهنویسی را افزایش دهید، فیلمهای آموزشی فرادرس میتوانند در این زمینه به صورت قابل توجهی کمک کنند.
در همین راستا، برخی از فیلمهای آموزشی فرادرس در زیر آورده شدهاند.
- فیلم آموزش رایگان اصول و مبانی برنامه نویسی فرادرس
- فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه فرادرس
- فیلم آموزش برنامه نویسی پایتون دوره مقدماتی فرادرس
لازم به یادآوری است برای افرادی که علاقهمند به شروع یادگیری سایر زبانهای برنامهنویسی هستند نیز در سایت فرادرس دورههای کاملی متناسب با هر زبان برنامهنویسی قرار داده شده است که در ادامه فقط چند مورد از این دورهها را فهرست کردهایم.
- فیلم آموزش برنامه نویسی جاوا در فرادرس
- فیلم آموزش برنامه نویسی اندروید مقدماتی فرادرس
- فیلم آموزش برنامه نویسی C++ در فرادرس
- فیلم آموزش برنامه نویسی PHP در فرادرس
جمع بندی
نوع داده بولی یکی از نوع دادههای رایج با کاربردهای بسیار زیاد در برنامهنویسی است. میتوانید از بولینها در کنار عملگرهایی مانند not و and و or و in و isو == و != برای مقایسه مقادیر با یکدیگر استفاده کنید. با استفاده از این عملگرها میتوان برابری، عضویت و همانی دادهها را بررسی کرد. همچنین با استفاده از عبارت شرطی ifو دادههای بولین میتوانیم حالات ممکن در برنامه را آزمایش و بررسی کنیم. همچنین میتوان بررسی کرد که آیا عبارت برنامهنویسی خاصی صحیح است یا غلط.
در این مطلب از مجله فرادرس در ابتدا آموختیم Boolean چیست و اینکه چگونه با استفاده از عملگرهای بولی با مقادیر Boolean کار کنیم. در نهایت یادگرفتیم که با استفاده از مقادیر Boolean کدهای خواناتر و کارآمدتر بنویسیم. این دانش کمک میکند که از این به بعد کدهایی که میبینیم را راحتتر درک کنیم و از مسائل و مشکلات احتمالی پرهیز کنیم که در آینده میتواند باعث بروز خطا در کدهای خودمان شود.