بی آکادمی
آموزش HTML
آموزش CSS
فلکس باکس
جاوااسکریپت
آموزش SQL
آموزش MySQL
آموزش PHP
آموزش لاراول
دانلود و نصب لینوکس
داکر دسکتاپ
VS Code
گیت و گیت هاب
آموزش پایتون
هوش مصنوعی
TypeScript
فروشگاه اینترنتی
اپلیکیشن موبایل
آموزش اکسل

آموزش جامع عملگرهای منطقی در پایتون


🎯 اهداف یادگیری

  • درک مفهوم عملگرهای منطقی و کاربرد آنها
  • شناخت انواع عملگرهای منطقی در پایتون
  • یادگیری ترکیب عملگرهای منطقی با عملگرهای مقایسه‌ای
  • آشنایی با جدول ارزش منطقی (Truth Table)
  • یادگیری ارزیابی کوتاه‌مدت (Short-Circuit Evaluation)

📌 مقدمه‌ای بر عملگرهای منطقی

عملگرهای منطقی برای ترکیب عبارات شرطی و ایجاد شرایط پیچیده‌تر استفاده می‌شوند. این عملگرها مقادیر بولین (True یا False) را پردازش کرده و نتیجه نهایی را برمی‌گردانند.


📌 انواع عملگرهای منطقی

پایتون سه عملگر منطقی اصلی ارائه می‌دهد:

python
# عملگر and (و منطقی)
print(True and True) # خروجی: True
print(True and False) # خروجی: False
# عملگر or (یا منطقی)
print(True or False) # خروجی: True
print(False or False) # خروجی: False
# عملگر not (نقیض منطقی)
print(not True) # خروجی: False
print(not False) # خروجی: True

جدول عملگرهای منطقی:

عملگر توضیح مثال نتیجه
and اگر هر دو عملوند True باشند، True برمی‌گرداند True and False False
or اگر حداقل یکی از عملوندها True باشد، True برمی‌گرداند True or False True
not نقیض عملوند را برمی‌گرداند not True False

📌 ترکیب عملگرهای منطقی و مقایسه‌ای

عملگرهای منطقی معمولاً همراه با عملگرهای مقایسه‌ای استفاده می‌شوند تا شرایط پیچیده‌تری ایجاد کنند:

python
age = 25
income = 50000
# ترکیب چند شرط با and
if age >= 18 and income > 30000:
print("شما واجد شرایط وام هستید")
grade = 85
attendance = 90
# ترکیب چند شرط با or
if grade > 80 or attendance > 85:
print("شما در کلاس موفق بودید")
# استفاده از not برای معکوس کردن شرط
is_weekend = False
if not is_weekend:
print("امروز روز کاری است")

اولویت عملگرها:

  • not بالاترین اولویت را دارد
  • and اولویت متوسط دارد
  • or کمترین اولویت را دارد
  • برای تغییر اولویت از پرانتز استفاده کنید

📌 جدول ارزش منطقی (Truth Table)

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

جدول ارزش عملگر AND:

A B A and B
True True True
True False False
False True False
False False False

جدول ارزش عملگر OR:

A B A or B
True True True
True False True
False True True
False False False

جدول ارزش عملگر NOT:

A not A
True False
False True

📌 ارزیابی کوتاه‌مدت (Short-Circuit Evaluation)

پایتون از ارزیابی کوتاه‌مدت در عملگرهای منطقی استفاده می‌کند. این به معنی آن است که اگر نتیجه نهایی از روی اولین عملوند مشخص شود، عملوندهای بعدی ارزیابی نمی‌شوند:

python
# ارزیابی کوتاه‌مدت در عملگر and
# اگر اولین عملوند False باشد، نتیجه قطعاً False خواهد بود
print(False and print("این چاپ نخواهد شد")) # خروجی: False
# ارزیابی کوتاه‌مدت در عملگر or
# اگر اولین عملوند True باشد، نتیجه قطعاً True خواهد بود
print(True or print("این چاپ نخواهد شد")) # خروجی: True
# مثال کاربردی
x = 0
# از ارزیابی کوتاه‌مدت برای جلوگیری از خطای تقسیم بر صفر استفاده می‌کنیم
if x != 0 and 10 / x > 2:
print("شرط برقرار است")
else:
print("از خطای تقسیم بر صفر جلوگیری شد")

مزایای ارزیابی کوتاه‌مدت:

  • افزایش کارایی: جلوگیری از محاسبات اضافی
  • جلوگیری از خطا: جلوگیری از اجرای کدهایی که ممکن است باعث خطا شوند
  • بهینه‌سازی: بهبود عملکرد برنامه در شرایط خاص

📌 ترکیب عملگرهای منطقی

می‌توانید عملگرهای منطقی مختلف را با هم ترکیب کنید تا شرایط پیچیده‌تری ایجاد کنید:

python
age = 25
has_license = True
has_car = False
# ترکیب and و or
if (age >= 18 and has_license) or has_car:
print("شما می‌توانید رانندگی کنید")
score = 75
is_absent = False
# ترکیب not با سایر عملگرها
if not is_absent and score >= 60:
print("شما قبول شدید")
# استفاده از پرانتز برای تعیین اولویت
a, b, c = True, False, True
print(a or b and c) # خروجی: True (and اولویت دارد)
print((a or b) and c) # خروجی: True (پرانتز اولویت را تغییر داد)

نکات مهم در ترکیب عملگرها:

  • همیشه از پرانتز برای مشخص کردن اولویت عملیات استفاده کنید
  • کدهای پیچیده را به چند خط ساده‌تر تقسیم کنید
  • از کامنت برای توضیح منطق شرط‌های پیچیده استفاده کنید

📌 مقادیر غیربولین در عملگرهای منطقی

عملگرهای منطقی در پایتون می‌توانند با انواع داده غیربولین نیز کار کنند. در این حالت، پایتون مقدار "truthy" یا "falsy" را بررسی می‌کند:

python
# مقادیر Falsy (معادل False در نظر گرفته می‌شوند)
# False, None, 0, 0.0, '', [], {}, ()
# مقادیر Truthy (معادل True در نظر گرفته می‌شوند)
# True, اعداد غیرصفر, رشته‌های غیرخالی, لیست‌های غیرخالی و ...
# مثال‌هایی با مقادیر غیربولین
print(10 and 20) # خروجی: 20 (اولین مقدار truthy را برمی‌گرداند)
print(0 and 10) # خروجی: 0 (اولین مقدار falsy را برمی‌گرداند)
print(10 or 20) # خروجی: 10 (اولین مقدار truthy را برمی‌گرداند)
print(0 or 10) # خروجی: 10 (اولین مقدار truthy را برمی‌گرداند)
print(not 0) # خروجی: True (نقیض falsy برابر True است)
print(not 10) # خروجی: False (نقیض truthy برابر False است)
# مثال کاربردی با رشته‌ها
name = ""
default_name = "مهمان"
display_name = name or default_name
print(display_name) # خروجی: "مهمان"

کاربردهای مقادیر غیربولین:

  • مقادیر پیش‌فرض: استفاده از or برای تعیین مقدار پیش‌فرض
  • اعتبارسنجی: استفاده از and برای بررسی شرایط چندگانه
  • کد خلاصه‌تر: نوشتن کدهای کوتاه‌تر و خواناتر

📌 تمرین‌های عملی

حالا نوبت شماست! کدهای زیر را بررسی کنید و نتیجه را پیش‌بینی کنید:

python
# تمرین ۱
a = True
b = False
print(not a and b)
# تمرین ۲
x = 10
y = 20
print(x > 5 and y < 30)
# تمرین ۳
name = ""
result = name or "ناشناس"
print(result)
# تمرین ۴
age = 17
has_permission = True
print(age >= 18 or has_permission)