عملگرهای منطقی در پایتون — and, or, not

python-logical-operators

خب، تا اینجا کلی راه اومدیم. یاد گرفتیم چطور با if و else تصمیم‌گیری کنیم، و با عملگرهای مقایسه‌ای (==<> و …) مقدارها رو با هم مقایسه کنیم.

الان یه سوال پیش میاد:
اگه بخوایم چندتا شرط رو با هم ترکیب کنیم چی؟

مثلاً بگیم:

«اگر هوا آفتابی و تعطیل باشه، بریم پارک»
یا «اگر بارون بیاد یا برف بیاد، چتر برداریم»
اینجاست که پای عملگرهای منطقی وسط میاد.


نگران نباش، خیلی آسونه. بذار مثل همیشه با یه عالمه مثال واقعی ببینیم ماجرا چیه.

عملگر منطقی یعنی چی؟

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

  1. and (و)

  2. or (یا)

  3. not (نقیض)

بیا تک‌تکشون رو با یه مثال از زندگی خودمون بررسی کنیم

۱. and (و) – همه شرط‌ها باید درست باشن

فرض کن می‌خوای بری سینما. شرط رفتن تو اینه:

  • پول بلیت داشته باشی و وقت آزاد داشته باشی.
    اگر هر دوش درست باشه → می‌ری سینما.
    اگر حتی یکی نادرست باشه → نمی‌ری.

در عمل ماجرا اینه که:

				
					money = True
time = False

print(money and time) 

# نتیجه: False
				
			

چون time نادرسته، نتیجه کلی False میشه. انگار and خیلی سخت‌گیره و می‌گه «همه باید اوکی باشن».

جدول درستی and (اگه گیج شدی نگاه کن):

شرط اول شرط دوم نتیجه
True True True
True False False
False True False
False False False

مثال واقعی‌تر:

				
					age = 20
has_license = True

if age >= 18 and has_license:
    print("می‌تونی رانندگی کنی!")
else:
    print("اجازه رانندگی نداری.")
				
			

اینجا اگه سن زیر ۱۸ باشه یا گواهینامه نداشته باشی، نمی‌تونی رانندگی کنی. منطقیه، نه؟

۲. or (یا) – فقط یکی هم درست باشه کافیه

or از اون رفیق راحت‌گیره. می‌گه:
«اگه حداقل یکی از شرط‌ها درست باشه، کل ماجرا درسته.»
باز بریم سراغ مثال روزمره:
می‌خوای با دوستات تماس بگیری. می‌تونی از طریق تلفن یا پیام‌رسان ارتباط بگیری. اگه یکی هم در دسترس باشه، کار انجام میشه

				
					phone_ok = False
messenger_ok = True

print(phone_ok or messenger_ok) 

# نتیجه: True
				
			

با اینکه تلفن درست نبود، چون پیام‌رسان اوکی بود، نتیجه True شد.

جدول درستی or

شرط اول شرط دوم نتیجه
True True True
True False True
False True True
False False False

مثال عملی:

				
					day = "جمعه"
is_holiday = False

if day == "جمعه" or is_holiday:
    print("امروز می‌تونیم استراحت کنیم!")
else:
    print("باید بریم سرکار.")
				
			

چون day جمعه هست، حتی اگه is_holiday دروغ باشه، شرط برقراره.

۳. not (نقیض) – برعکس‌کننده

 not یه عملگر تک‌نفره‌ست؛ فقط یه شرط رو ورودی می‌گیره و درست رو نادرست، و نادرست رو درست می‌کنه.
مثلاً: «اگه بارون نمیاد بریم پیاده‌روی». یعنی not شرط بارش رو برعکس می‌کنه.

				
					is_raining = False
print(not is_raining) 


# نتیجه: True
				
			

بارون نمیاد (False)، not برعکسش کرد → True، پس می‌تونیم بریم.

کاربردش تو کد:

				
					logged_in = False

if not logged_in:
    print("لطفاً اول وارد حساب کاربریت شو.")
				
			

وقتی کاربر وارد نشده (False)، not باعث میشه شرط اجرا بشه.

ترکیب همشون با هم 

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

مثال:
«اگه کاربر ادمین باشه و (روز شنبه باشه یا یکشنبه) → پیام خوش‌آمد خاص نشون بده.»

				
					is_admin = True
day = "شنبه"

if is_admin and (day == "شنبه" or day == "یکشنبه"):
    print("خوش آمدی ادمین عزیز! امروز گزارش ویژه داری.")
else:
    print("سلام کاربر عادی.")
				
			

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

جمع‌بندی

بهت تبریک می‌گم، الان دستت اومده چطور با and، or و not شرط‌های باحال و ترکیبی بسازی!
یادت باشه:

  • and مثل پدر سخت‌گیره؛ همه شرط‌ها باید درست باشه.

  • or مثل مادر مهربونه؛ یکی درست باشه کافیه.

  • not هم که همه چیز رو برعکس می‌کنه.

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


 تمرین

بهتر از هزار خط توضیح، خودت دست به کد شو:

  1. تمرین ساده: یه متغیر x = 10 تعریف کن. یه شرط بنویس که اگه x بین ۵ و ۲۰ باشه (شامل خود ۵ و ۲۰) چاپ کنه “مجازه”.

  2. تمرین ترکیبی: متغیرهای username و password رو با مقادیر دلخواه بساز. شرطی بنویس که اگه کاربر برابر "admin" و رمز برابر "1234" بود، بگه “ورود موفق”، وگرنه “نام کاربری یا رمز اشتباهه”.

  3. بازی با not: متغیری به اسم is_banned برابر True بذار. شرطی بنویس که اگر کاربر مسدود نبود، چاپ کنه “می‌تونی نظر بدی”.

  4. چالش کوچک: برنامه‌ای بنویس که سن کاربر رو بگیره (با input). اگر سن بالای ۱۸ و کمتر از ۶۰ بود، بگه “مناسب برای اهدای خون”، وگرنه اگه سن زیر ۱۸ یا بالای ۶۰ بود بگه “شرایط اهدا رو نداری”. (یادت باشه input مقدار رشته‌ای میده، از int() استفاده کن.)

جواب‌ها رو خودت بنویس و اجرا کن، هر سوالی داشتی تو بخش نظرات بپرس.

تصویر آرمان کریمی

آرمان کریمی

مدرس پایتون و تحلیل داده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوازده − 5 =