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

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

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

مثال

age > 16 and marks > 80
percentage < 50 or attendance < 75

پایتون علاوه بر کلمه کلیدی False، مقادیر None، صفر عددی از تمام انواع، دنباله‌های خالی (رشته‌ها، تاپل‌ها، لیست‌ها)، دیکشنری‌های خالی و مجموعه‌های خالی را False در نظر می‌گیرد. تمام مقادیر دیگر True محسوب می‌شوند.

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

عملگر منطقی "and"

برای اینکه عبارت بولی مرکب مقدار True داشته باشد، هر دو عملوند باید True باشند. اگر یکی از عملوندها یا هر دوی آن‌ها به False ارزیابی شوند، عبارت مقدار False را برمی‌گرداند.

جدول درستی عملگر منطقی "and"

جدول زیر حالت‌های مختلف را نشان می‌دهد.

a b a and b
F F F
F T F
T F F
T T T

عملگر منطقی "or"

در مقابل، عملگر or اگر هر یک از عملوندها True باشد، مقدار True را برمی‌گرداند. برای اینکه عبارت بولی مرکب مقدار False داشته باشد، هر دو عملوند باید False باشند.

جدول درستی عملگر منطقی "or"

جدول زیر نتیجه عملگر "or" را در شرایط مختلف نشان می‌دهد:

a b a or b
F F F
F T T
T F T
T T T

عملگر منطقی "not"

این یک عملگر یکانی است. وضعیت عملوند بولی که پس از آن می‌آید، معکوس می‌شود. در نتیجه، not True به False و not False به True تبدیل می‌شود.

جدول درستی عملگر منطقی "not"

a not (a)
F T
T F

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

عبارت "x and y" ابتدا "x" را ارزیابی می‌کند. اگر "x" نادرست باشد، مقدار آن برگردانده می‌شود؛ در غیر این صورت، "y" ارزیابی می‌شود و مقدار حاصل برگردانده می‌شود.

logical_operator

عبارت "x or y" ابتدا "x" را ارزیابی می‌کند؛ اگر "x" درست باشد، مقدار آن برگردانده می‌شود؛ در غیر این صورت، "y" ارزیابی می‌شود و مقدار حاصل برگردانده می‌شود.

x_or_y

مثال‌هایی از عملگرهای منطقی پایتون

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

مثال ۱: عملگرهای منطقی با شرط‌های بولی

x = 10
y = 20
print("x > 0 and x < 10:",x > 0 and x < 10)
print("x > 0 and y > 10:",x > 0 and y > 10)
print("x > 10 or y > 10:",x > 10 or y > 10)
print("x%2 == 0 and y%2 == 0:",x%2 == 0 and y%2 == 0)
print ("not (x+y>15):", not (x+y)>15)

خروجی زیر تولید خواهد شد −

x > 0 and x < 10: False
x > 0 and y > 10: True
x > 10 or y > 10: True
x%2 == 0 and y%2 == 0: True
not (x+y>15): False

مثال ۲: عملگرهای منطقی با مقادیر غیربولی

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

در مثال زیر، از عملوندهای عددی برای عملگرهای منطقی استفاده شده است. متغیرهای "x" و "y" به True ارزیابی می‌شوند، درحالی‌که "z" برابر با False است.

x = 10
y = 20
z = 0
print("x and y:",x and y)
print("x or y:",x or y)
print("z or x:",z or x)
print("y or z:", y or z)

خروجی زیر تولید خواهد شد −

x and y: 20
x or y: 10
z or x: 10
y or z: 20

مثال ۳: عملگرهای منطقی با رشته‌ها و تاپل‌ها

در مثال زیر، متغیر رشته‌ای True و یک تاپل خالی False در نظر گرفته می‌شود −

a="Hello"
b=tuple()
print("a and b:",a and b)
print("b or a:",b or a)

خروجی زیر تولید خواهد شد −

a and b: ()
b or a: Hello

مثال ۴: استفاده از عملگرهای منطقی برای مقایسه دنباله‌ها (لیست‌ها)

در نهایت، دو شیء لیست زیر غیرخالی هستند. بنابراین، عبارت x and y مقدار دوم را برمی‌گرداند و عبارت x or y مقدار اول را برمی‌گرداند.

x=[1,2,3]
y=[10,20,30]
print("x and y:",x and y)
print("x or y:",x or y)

خروجی زیر تولید خواهد شد −

x and y: [10, 20, 30]
x or y: [1, 2, 3]

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.