درک Booleanها در پایتون

امیرحسین بیگدلو 12 ماه قبل

نوع داده بولی می تواند یکی از دو مقدار True یا False باشد. ما از Booleans در برنامه نویسی برای مقایسه و تعیین جریان کنترل در یک برنامه مشخص استفاده می کنیم.

 

Booleans مقادیر حقیقتی را نشان می دهد که با شاخه منطقی ریاضیات مرتبط است، که الگوریتم های علوم کامپیوتر را به اطلاع می رساند. کلمه Boolean که برای ریاضی دان جورج بول نامگذاری شده است ، همیشه با حرف B بزرگ شروع می شود. مقادیر True و False نیز به ترتیب با T و F بزرگ خواهند بود ، زیرا در پایتون مقادیر خاصی هستند.

 

در این آموزش ، ما به آنچه شما برای درک نحوه کار Booleans در پایتون نیاز دارید و اپراتورهای مقایسه ، عملگرهای منطقی و جداول حقیقت را بررسی خواهیم کرد.

 

مطلب پیشنهادی: دوره آموزش الگوریتم نویسی در پایتون


 

# اپراتورهای مقایسه

در برنامه نویسی ، از عملگرهای مقایسه برای مقایسه مقادیر و ارزیابی تا مقدار بولی واحد درست یا نادرست استفاده می شود.

 

جدول زیر عملگرهای مقایسه بولی است.

 

Operator What it means
== Equal to
!= Not equal to
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to

 

برای درک نحوه عملکرد این عملگرها ، بیایید دو عدد صحیح را به دو متغیر در یک برنامه Python اختصاص دهیم:

x = 5
y = 8

 

در این مثال ، از آنجا که x دارای مقدار 5 است ، کمتر از y است که دارای مقدار 8 است.

 

با استفاده از این دو متغیر و مقادیر مرتبط با آنها ، اجازه دهید از جدول بالا عملگرها را مرور کنیم. در برنامه ما ، از پایتون خواهیم خواست که چاپ کند آیا هر اپراتور مقایسه ای را True یا False ارزیابی می کند. برای کمک به ما و سایر انسانها در درک بهتر این نتیجه ، از Python خواهیم داشت که یک رشته نیز چاپ کند تا به ما نشان دهد چه چیزی را ارزیابی می کند.

 

x = 5
y = 8

print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)

 

وقتی این برنامه را اجرا می کنیم ، خروجی زیر را دریافت خواهیم کرد:

x == y: False
x != y: True
x < y: True
x > y: False
x <= y: True
x >= y: False

 

پیرو منطق ریاضی ، در هر یک از عبارات بالا ، پایتون ارزیابی کرده است:

  • آیا 5 (x) برابر با 8 (y) است؟ نادرست
  • آیا 5 برابر 8 نیست؟ درست
  • آیا 5 کمتر از 8 است؟ درست
  • آیا 5 بیشتر از 8 است؟ نادرست
  • آیا 5 از 8 کمتر یا مساوی است؟ درست
  • آیا 5 کمتر از 8 نیست یا برابر آن است؟ نادرست

 

اگرچه ما از اعداد integer در اینجا استفاده کردیم ، اما می توانیم آنها را با مقادیر float جایگزین کنیم.

 

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

ویدیو پیشنهادی: ویدیو تفاوت بین is و == در پایتون

در اینجا نحوه مقایسه رشته ها با عملگرهای بولی در عمل آورده شده است:

Sammy = "Sammy"
sammy = "sammy"

print("Sammy == sammy: ", Sammy == sammy)

 

خروجی برای برنامه فوق موارد زیر را برمی گرداند:

Sammy == sammy:  False

 

رشته "Sammy" در بالا با رشته "sammy" برابر نیست ، زیرا آنها موضوعی نیستند. یکی با حروف بزرگ S شروع می شود و دیگری با حروف کوچک. اما ، اگر متغیر دیگری را که مقدار "Sammy" به آن اختصاص داده شده اضافه کنیم ، آنگاه برابر خواهند بود:

Sammy = "Sammy"
sammy = "sammy"
also_Sammy = "Sammy"

print("Sammy == sammy: ", Sammy == sammy)
print("Sammy == also_Sammy", Sammy == also_Sammy)

 

پس از اجرای برنامه فوق ، خروجی زیر را خواهیم گرفت. این نشان می دهد تا زمانی که رشته کاملاً یکسان باشد (از جمله حروف بزرگ و کوچک) ، از نظر منطق بولی برابر خواهند بود.

Sammy == sammy:  False
Sammy == also_Sammy:  True

 

برای مقایسه دو رشته می توانید از سایر عملگرهای مقایسه از جمله > و < نیز استفاده کنید. پایتون با استفاده از مقادیر ASCII نویسه ها ، این رشته ها را از لحاظ لغت نامه مقایسه می کند.

 

ما همچنین می توانیم مقادیر بولی را با عملگرهای مقایسه ارزیابی کنیم:

t = True
f = False

print("t != f: ", t != f)

 

برنامه فوق موارد زیر را برمی گرداند.

t != f:  True

 

همانطور که در خروجی بالا نشان داده شد ، کدی که نوشتیم ارزیابی کرد که True برابر False نیست.

 

به تفاوت بین دو عملگر = و == توجه کنید.

x = y   # Sets x equal to y
x == y  # Evaluates whether x is equal to y

 

اولین ، = عملگر انتساب است که یک مقدار را برابر با مقدار دیگر قرار می دهد. دوم ، == یک عملگر مقایسه است که ارزیابی می کند آیا دو مقدار برابر هستند.

 

مقاله پیشنهادی: استفاده از عملگر and در پایتون


 

# اپراتورهای منطقی

سه عملگر منطقی وجود دارد که برای مقایسه مقادیر استفاده می شود. آنها عبارات را تا مقادیر بولی ارزیابی می کنند ، یا True یا False را برمی گردانند. این عملگرها  and ، or ، و not هستند و در جدول زیر تعریف شده اند.

Operator What it means Example
and True if both are true x and y
or True if at least one is true x or y
not True only if false not x

 

از عملگرهای منطقی معمولاً برای ارزیابی درست یا نادرست بودن دو عبارت استفاده می شود. به عنوان مثال ، می توان از آنها برای تعیین نمره قبولی و ثبت نام دانشجو در دوره استفاده کرد. در صورت صحت هر دو مورد ، در این صورت به دانش آموز نمره ای در سیستم تعلق می گیرد. مثال دیگر این است که تعیین کنید آیا کاربر مشتری فعال معتبری از یک فروشگاه آنلاین است ، بر اساس اعتبار فروشگاه خود یا خرید در 6 ماه گذشته. 

 

برای درک عملکرد اپراتورهای منطقی ، بیایید سه عبارت را ارزیابی کنیم:

print((9 > 7) and (2 < 4))  # Both original expressions are True
print((8 == 8) or (6 != 6)) # One original expression is True
print(not(3 <= 1))          # The original expression is False


# OUTPUT
True
True
True

 

بیایید float ها را به جای اعداد صحیح جایگزین کنیم و ارزیابی غلط را هدف قرار دهیم:

print((-0.2 > 1.4) and (0.8 < 3.1)) # One original expression is False
print((7.5 == 8.9) or (9.2 != 9.2)) # Both original expressions are False
print(not(-5.7 <= 0.3))             # The original expression is True

 

در مثال بالا:

  • and باید حداقل یک عبارت False را به False ارزیابی کند
  • or باید هر دو عبارت را به False ارزیابی کند
  • not باید بیان درونی آن درست باشد تا عبارت جدید به False ارزیابی شود

 

ویدیو پیشنهادی: ویدیو آموزش متدهای isinstance و issubclass در پایتون


 

# جداول حقیقت

چیزهای زیادی برای یادگیری در مورد شاخه منطق ریاضیات وجود دارد ، اما ما می توانیم برخی از آنها را به طور انتخابی یاد بگیریم تا تفکر الگوریتمی خود را هنگام برنامه نویسی بهبود بخشیم.

 

در زیر جداول حقیقت برای عملگر مقایسه == ، و هر یک از عملگرهای منطقی and, or, not وجود دارد. اگرچه ممکن است بتوانید آنها را استدلال کنید ، اما به خاطر سپردن آنها می تواند مفید باشد زیرا این امر می تواند روند تصمیم گیری برنامه نویسی شما را سریعتر انجام دهد.

 

== Truth Table

x == y Returns
True == True True
True == False False
False == True False
False == False True

 

 

AND Truth Table

x and y Returns
True and True True
True and False False
False and True False
False and False False

 

 

OR Truth Table

x or y Returns
True or True True
True or False True
False or True True
False or False False

 

 

NOT Truth Table

not x Returns
not True False
not False True

 

جداول حقیقت جداول ریاضی رایجی هستند که در منطق استفاده می شوند و برای به خاطر سپردن یا به خاطر سپردن آنها هنگام ساخت الگوریتم ها (دستورالعمل ها) در برنامه نویسی رایانه مفید هستند.

 

مقاله پیشنهادی: مهم ترین تابع‌ های پایتون که باید بدانید


 

# استفاده از عملگرهای بولی برای کنترل جریان

برای کنترل جریان و نتایج یک برنامه به صورت دستورات کنترل جریان ، می توانیم از یک شرط و به دنبال یک بند استفاده کنیم.

 

یک شرط تا مقدار بولی True یا False ارزیابی می شود ، و نقطه ای را برای تصمیم گیری در برنامه ارائه می دهد. یعنی اگر شرایطی درست یا نادرست ارزیابی شود ، یک شرایط به ما می گوید.

 

بند مجموعه ای از کد است که از شرط پیروی می کند و نتیجه برنامه را تعیین می کند. یعنی اگر این x درست است ، این کار را انجام دهید. "

 

بلوک کد زیر نمونه ای از اپراتورهای مقایسه را نشان می دهد که همزمان با عبارات شرطی برای کنترل جریان یک برنامه پایتون کار می کنند:

if grade >= 65:                 # Condition
    print("Passing grade")      # Clause

else:
    print("Failing grade")

 

این برنامه ارزیابی می کند که آیا نمره هر دانش آموز عبور می کند یا شکست می خورد. در مورد دانش آموز با نمره 83 ، اولین عبارت به True ارزیابی می شود و بیانیه چاپی نمره قبولی ایجاد می شود. در مورد دانش آموز با نمره 59 ، اولین عبارت به False ارزیابی می شود ، بنابراین برنامه به اجرای عبارت چاپی گره خورده با عبارت other می پردازد: نمره ناموفق.

 

عملگرهای بولی شرایطی را ارائه می دهند که می تواند برای تصمیم گیری در مورد نتیجه نهایی یک برنامه از طریق دستورات کنترل جریان استفاده شود.

 

اگر مقاله بالا را دوست داشتید، پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

ریز نکات پایتونی که همه باید بدانید

چطور با حالت تعاملی پایتون کار کنیم؟

درخت جستجوی باینری دیگه چه کوفتیه؟

روش‌هایی برای بهتر کد زدن در پایتون

مطالب مشابه



مونگارد