عملگرهای مقایسه‌ای (Comparison Operators)

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

  • True (درست)
  • False (نادرست)

فهرست مطالب

عملگرهای مقایسه‌ای

عملگر معنی مثال نتیجه
== مساوی است با 5 == 5 True
!= مساوی نیست 5 != 3 True
> بزرگ‌تر از 8 > 4 True
< کوچک‌تر از 2 < 1 False
>= بزرگ‌تر یا مساوی 7 >= 7 True
<= کوچک‌تر یا مساوی 5 <= 8 True

مثال اول

print(8 > 3)

خروجی:

True

مثال دوم

print(10 == 8)

خروجی:

False

مثال سوم

age = 18
print(age >= 18)

خروجی:

True

چون مقدار متغیر age برابر ۱۸ است و شرط «بزرگ‌تر یا مساوی ۱۸» برقرار است.

مقایسه رشته‌ها

رشته‌ها نیز قابل مقایسه هستند.

print("Ali" == "Ali")

خروجی

True

اما

print("Ali" == "ali")

خروجی

False

زیرا حروف بزرگ و کوچک با هم تفاوت دارند.

مقایسه نتیجه‌ی محاسبات

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

a = 5
b = 3
print(a + b == 8)

خروجی

True
نکته مهم

علامت = برای مقداردهی به متغیر و علامت == برای بررسی شرط تساوی بین دو طرف استفاده میشود. آنها را با هم اشتباه نگیرید.

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

اکنون که می‌توانیم شرط‌ها را بررسی کنیم، نوبت آن است که به برنامه یاد بدهیم بر اساس نتیجه‌ی این مقایسه‌ها تصمیم بگیرد. 

دستور شرطی if در پایتون

تا اینجا یاد گرفتیم که عملگرهای مقایسه‌ای نتیجه‌ای از نوع True یا False تولید می‌کنند. اما این نتیجه چه کاربردی دارد؟ در برنامه‌نویسی معمولاً می‌خواهیم اگر یک شرط برقرار بود، کاری انجام شود. برای این کار از دستور if استفاده می‌کنیم.

ساختار دستور if

ساختار کلی دستور if به صورت زیر است:

if شرط:
    دستور

اگر شرط True باشد، دستورهای داخل if اجرا می‌شوند. اگر شرط False باشد، آن‌ها نادیده گرفته می‌شوند.

به فاصله‌ی ابتدای خط (Indentation) دقت کنید؛ این فاصله نشان می‌دهد که کدام دستورات متعلق به if هستند.

مثال اول

age = 20
if age >= 18:
    print("You can vote.")

خروجی:

You can vote.

چون شرط age >= 18 درست است، دستور print اجرا می‌شود.

مثال دوم

age = 15
if age >= 18:
    print("You can vote.")

خروجی:

(هیچ خروجی)

در این مثال شرط برقرار نیست؛ بنابراین دستور داخل if اجرا نمی‌شود.

اجرای چند دستور

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

score = 95
if score >= 90:
    print("Excellent")
    print("Congratulations")

خروجی:

Excellent
Congratulations

استفاده از متغیر بولین

گاهی خود شرط یک متغیر بولین است.

is_student = True
if is_student:
    print("Student discount applied.")

خروجی:

Student discount applied.

در اینجا دیگر نیازی به نوشتن == True نیست.

استفاده از ورودی کاربر

مقدار ورودی که کاربر وارد کرده، در شرط if بررسی می‌شود.

age = int(input("Enter your age: "))
if age >= 18:
    print("Adult")

اگر کاربر عدد ۲۰ را وارد کند، خروجی خواهد بود:

Adult
نکته مهم: فراموش کردن دونقطه

بعد از شرط باید حتماً علامت : نوشته شود.

if age >= 18:
نکته مهم: تورفتگی

دستورهای داخل if باید با یک تورفتگی (معمولاً ۴ فاصله یا یک Tab) نوشته شوند.

if age >= 18:
    print("Adult")

دستور if....else در پایتون

تا اینجا یاد گرفتیم که دستور if فقط زمانی اجرا می‌شود که شرط True باشد. اما اگر شرط برقرار نباشد و بخواهیم کار دیگری انجام دهیم چه؟ برای این کار از دستور else استفاده می‌کنیم.

ساختار دستور if...else

ساختار کلی به صورت زیر است:

if شرط:
    دستورهای حالت اول
else:
    دستورهای حالت دوم

اگر شرط True باشد، دستورات داخل if اجرا می‌شوند. در غیر این صورت، دستورات داخل else اجرا خواهند شد.

مثال اول

age = 20
if age >= 18:
    print("Adult")
else:
    print("Child")

خروجی:

Adult

مثال دوم

age = 12
if age >= 18:
    print("Adult")
else:
    print("Child")

خروجی:

Child

چون شرط برقرار نیست، برنامه وارد بخش else می‌شود.

مثال با نمره

score = 85
if score >= 50:
    print("Passed")
else:
    print("Failed")

خروجی:

Passed

اگر مقدار score برابر ۳۰ باشد، خروجی به شکل زیر خواهد بود:

Failed

مثال با ورودی کاربر

age = int(input("Enter your age: "))
if age >= 18:
    print("Welcome")
else:
    print("Access denied")

نمونه اجرا:

Enter your age: 16
Access denied
فقط یکی اجرا می‌شود

نکته مهم این است که از بین if و else فقط یکی اجرا می‌شود.

number = 10
if number > 5:
    print("Greater than 5")
else:
    print("5 or less")

خروجی:

Greater than 5
در این مثال، چون شرط درست است، بخش else اصلاً اجرا نمی‌شود.

دستور elif در پایتون

گاهی بیش از دو حالت داریم. مثلاً اگر نمره بالای ۹۰ باشد «عالی»، بین ۷۰ تا ۹۰ باشد «خوب» و کمتر از ۷۰ باشد «نیاز به تلاش بیشتر». برای چنین شرایطی از دستور elif استفاده می‌کنیم که در ادامه با آن آشنا خواهیم شد.

ساختار دستور if...elif...else

ساختار کلی به صورت زیر است:

if شرط اول:
    دستورها
elif شرط دوم:
    دستورها
else:
    دستورها

ابتدا شرط اول بررسی می‌شود. اگر درست نباشد، شرط دوم بررسی می‌شود. اگر هیچ‌کدام برقرار نباشند، بخش else اجرا می‌شود.

مثال اول

score = 95
if score >= 90:
    print("Excellent")
elif score >= 70:
    print("Good")
else:
    print("Need more practice")

خروجی:

Excellent

مثال دوم

score = 80
if score >= 90:
    print("Excellent")
elif score >= 70:
    print("Good")
else:
    print("Need more practice")

خروجی:

Good
مثال سوم
 
score = 45
if score >= 90:
    print("Excellent")
elif score >= 70:
    print("Good")
else:
    print("Need more practice")

خروجی:

Need more practice
مثال چهارم
 
age = 16
if age < 13:
    print("Child")
elif age < 18:
    print("Teenager")
else:
    print("Adult")

خروجی:

Teenager

می‌توان چند elif داشت

هیچ محدودیتی برای تعداد elif وجود ندارد.

score = 65

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("F")

خروجی:

D
ترتیب شرط‌ها مهم است

پایتون شرط‌ها را از بالا به پایین بررسی می‌کند و به محض اینکه یکی از شرط‌ها درست باشد، دیگر شرط‌های بعدی را بررسی نمی‌کند. به همین دلیل ترتیب نوشتن شرط‌ها اهمیت زیادی دارد.

نکات مهم

ابتدا فقط یک if نوشته می‌شود.
بعد از آن می‌توان هر تعداد elif نوشت.
در انتها، در صورت نیاز، فقط یک else قرار می‌گیرد.
بخش else اختیاری است.

عملگرهای منطقی در پایتون (Logical Operators)

گاهی لازم است بیش از یک شرط را هم‌زمان بررسی کنیم. برای مثال:

  • سن کاربر بیشتر از ۱۸ سال باشد و دانشجو باشد.
  • نمره بیشتر از ۹۰ باشد یا پروژه را کامل تحویل داده باشد.
  • کاربر مدیر نباشد.

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

  • and
  • or
  • not

عملگر and

عملگر and زمانی نتیجه True می‌دهد که هر دو شرط درست باشند.

ساختار

شرط اول and شرط دوم

مثال اول

age = 20
has_card = True
if age >= 18 and has_card:
    print("Access granted")

خروجی:

Access granted

در این مثال هر دو شرط برقرار هستند؛ بنابراین دستور اجرا می‌شود.

مثال دوم

age = 20
has_card = False
if age >= 18 and has_card:
    print("Access granted")

خروجی:

(هیچ خروجی)

چون شرط دوم برقرار نیست، کل شرط نادرست می‌شود.

عملگر or

عملگر or زمانی نتیجه True می‌دهد که حداقل یکی از شرط‌ها درست باشد.

ساختار

شرط اول or شرط دوم

مثال

score = 95
has_project = False
if score >= 90 or has_project:
    print("Passed")

خروجی:

Passed

اگر حتی یکی از دو شرط برقرار باشد، برنامه وارد if می‌شود.

مثال دیگر

score = 60
has_project = True
if score >= 90 or has_project:
    print("Passed")

خروجی:

Passed

عملگر not

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

مثال

is_logged_in = False
if not is_logged_in:
    print("Please log in.")

خروجی:

Please log in.

چون مقدار is_logged_in برابر False است، عبارت not is_logged_in برابر True می‌شود.

شرط‌های تو در تو (Nested if)

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

ساختار کلی

if شرط اول:
    if شرط دوم:
        دستورها

ابتدا شرط اول بررسی می‌شود. اگر شرط اول برقرار باشد، شرط دوم بررسی خواهد شد. اما اگر شرط اول برقرار نباشد، شرط دوم اصلاً بررسی نمی‌شود.

مثال

فرض کنید فقط افراد بالای ۱۸ سال که کارت عضویت دارند، اجازه ورود دارند.

age = 22
has_card = True
if age >= 18:
    if has_card:
        print("Welcome")

خروجی:

Welcome

چه زمانی از شرط تو در تو استفاده کنیم؟

شرط‌های تو در تو زمانی مناسب هستند که شرط دوم فقط در صورت برقرار بودن شرط اول معنا داشته باشد. برای مثال:

  • بررسی نام کاربری و سپس رمز عبور
  • بررسی ورود کاربر و سپس سطح دسترسی
  • بررسی موجود بودن کالا و سپس بررسی موجودی انبار

در چنین شرایطی استفاده از Nested if می‌تواند خوانایی برنامه را افزایش دهد.

عملگر شرطی (Ternary Operator)

در پایتون برای شرط‌های ساده می‌توان به جای نوشتن چند خط کد با if و else، از عملگر شرطی (Ternary Operator) استفاده کرد. این روش همان نتیجه را با یک خط کد تولید می‌کند و باعث کوتاه‌تر و خواناتر شدن برنامه می‌شود. البته بهتر است از آن فقط برای شرط‌های ساده استفاده کنید.

مقایسه زنجیره‌ای (Chained Comparison)

در پایتون می‌توان چند مقایسه را به‌صورت زنجیره‌ای و خواناتر نوشت. برای مثال، به جای نوشتن age > 18 and age < 50 می‌توان به سادگی از 18 < age < 50 استفاده کرد. هر دو عبارت نتیجه یکسانی دارند، اما روش دوم کوتاه‌تر، خواناتر و از ویژگی‌های کاربردی زبان پایتون است.

تمرین ۱: بزرگ‌ترین عدد

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

نکته: از تابع max() استفاده نکنید.

تمرین ۲: تعیین بازه سنی

سن یک شخص را دریافت کنید و با استفاده از if، elif و else مشخص کنید در کدام گروه قرار می‌گیرد.

  • کمتر از 13 سال → Child
  • 13 تا 17 سال → Teenager
  • 18 تا 59 سال → Adult
  • 60 سال و بیشتر → Senior

تمرین ۳: ورود به باشگاه

سن و وضعیت داشتن کارت عضویت را از کاربر دریافت کنید.

اگر سن کاربر حداقل 18 سال باشد و کارت عضویت داشته باشد، پیام Welcome را چاپ کنید؛ در غیر این صورت پیام Access Denied نمایش داده شود.

تمرین ۴: نمره دانش‌آموز

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

  • 90 تا 100 → A
  • 80 تا 89 → B
  • 70 تا 79 → C
  • 60 تا 69 → D
  • کمتر از 60 → F

تمرین ۵: عدد داخل بازه

عددی از کاربر دریافت کنید.

اگر عدد بین 1 تا 100 (شامل دو مقدار) باشد، عبارت Inside Range و در غیر این صورت عبارت Outside Range را نمایش دهید.

نکته: این تمرین را با استفاده از مقایسه زنجیره‌ای حل کنید.

حلقه‌های تکرار در پایتون

در بسیاری از برنامه‌ها لازم است یک یا چند دستور چندین بار تکرار شوند. برای انجام این کار، به جای نوشتن کدهای تکراری از حلقه‌ها (Loops) استفاده می‌کنیم که اجرای برنامه را ساده‌تر و خواناتر می‌کنند.

گام بعدی : حلقه‌های تکرار

برای شرکت در آزمون آماده‌اید؟

با ورود به پنل کاربری می‌توانید جهت ثبت نام در آزمون‌ها و دسترسی به منابع آموزشی اقدام نمایید. کارشناسان ما در اسرع وقت با شما تماس می‌گیرند.

آموزش نصب پایتون

آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفته‌اید برنامه‌نویسی را یاد بگیرید، احتمالاً نام زبان

ادامه مطلب »