Boolean چیست؟ – نوع داده بولی به زبان ساده – فرادرس

Boolean چیست؟ – نوع داده بولی به زبان ساده – فرادرس

[ad_1]

در زبان‌های برنامه‌نویسی، انواع مختلفی از نوع داده‌ها را در اختیار داریم. از این نوع داده‌ها برای ذخیره‌سازی داده‌های گوناگون استفاده می‌کنیم. به عنوان مثال از نوع داده‌های 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
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

برابر با 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 از مجموعه عملیات ریاضی است. این عملیات ریاضی را می‌توانید در هر زبان برنامه‌نویسی انجام دهید. اگر علاقه‌ دارید به عنوان یک برنامه‌نویس تحلیل‌گر داده، متخصص هوش مصنوعی و غیره مهارت خود در زمینه برنامه‌نویسی را افزایش دهید، فیلم‌های آموزشی فرادرس می‌توانند در این زمینه به صورت قابل توجهی کمک کنند.

در همین راستا، برخی از فیلم‌های آموزشی فرادرس در زیر آورده شده‌اند.

لازم به یادآوری است برای افرادی که علاقه‌مند به شروع یادگیری سایر زبان‌های برنامه‌نویسی هستند نیز در سایت فرادرس دوره‌های کاملی متناسب با هر زبان‌ برنامه‌نویسی قرار داده شده است که در ادامه فقط چند مورد از این دوره‌ها را فهرست کرده‌ایم.

جمع بندی

نوع داده بولی یکی از نوع داده‌های رایج با کاربرد‌های بسیار زیاد در برنامه‌نویسی است. می‌توانید از بولین‌ها در کنار عملگرهایی مانند not

و and

و or

و in

و is

و ==

و !=

برای مقایسه مقادیر با یکدیگر استفاده کنید. با استفاده از این عملگرها می‌توان برابری، عضویت و همانی داده‌ها را بررسی کرد. همچنین با استفاده از عبارت شرطی if

و داده‌های بولین می‌توانیم حالات ممکن در برنامه را آزمایش و بررسی کنیم. همچنین می‌توان بررسی کرد که آیا عبارت برنامه‌نویسی خاصی صحیح است یا غلط.

در این مطلب از مجله فرادرس در ابتدا آموختیم Boolean چیست و اینکه چگونه با استفاده از عملگرهای بولی با مقادیر Boolean کار کنیم. در نهایت یادگرفتیم که با استفاده از مقادیر Boolean کدهای خواناتر و کارآمدتر بنویسیم. این دانش کمک می‌کند که از این به بعد کدهایی که می‌بینیم را راحت‌تر درک کنیم و از مسائل و مشکلات احتمالی پرهیز کنیم که در آینده می‌تواند باعث بروز خطا در کدهای خودمان شود.

[ad_2]