آموزش جامع تصمیمگیری در برنامه: عملگرهای مقایسهای، if، if/else، if/elif/else، عملگرهای منطقی (and, or, not)، if تودرتو، عبارت شرطی (Ternary) — به همراه مثالهای متعدد، تمرینات عملی و پروژههای کاربردی | آکادمی غیاثی
در پایتون، ساختارهای شرطی به ما اجازه میدهند که برنامه را بر اساس شرایط مختلف، به مسیرهای متفاوت هدایت کنیم. این یکی از مهمترین مفاهیم برنامهنویسی است که به کد ما هوشمندی میبخشد! به زبان ساده، برنامه میتواند مانند انسانها تصمیم بگیرد: «اگر باران میبارد، چتر بردار، در غیر این صورت، عینک آفتابی بزن».
if (اگر)، elif (وگرنه اگر)، else (وگرنه). همچنین فاصلهگذاری (indentation) در پایتون بسیار مهم است — بلاکهای کد با ۴ فاصله یا یک Tab از هم جدا میشوند.قبل از یادگیری ساختارهای شرطی، باید با عملگرهای مقایسهای آشنا شویم. این عملگرها دو مقدار را با هم مقایسه کرده و نتیجهای از نوع True (درست) یا False (نادرست) برمیگردانند.
| عملگر | معنی | مثال | نتیجه |
|---|---|---|---|
== | برابر با | 5 == 5 | True |
!= | نابرابر با | 5 != 3 | True |
> | بزرگتر از | 5 > 3 | True |
< | کوچکتر از | 5 < 3 | False |
>= | بزرگتر یا مساوی | 5 >= 5 | True |
<= | کوچکتر یا مساوی | 3 <= 5 | True |
# آزمایش عملگرهای مقایسهای
print("5 == 5:", 5 == 5)
print("5 != 3:", 5 != 3)
print("5 > 3:", 5 > 3)
print("5 < 3:", 5 < 3)
print("5 >= 5:", 5 >= 5)
print("3 <= 5:", 3 <= 5)
# مقایسه رشتهها (حساس به حروف بزرگ و کوچک)
print('"سلام" == "سلام":', "سلام" == "سلام")
print('"سلام" != "خداحافظ":', "سلام" != "خداحافظ")سادهترین ساختار شرطی، if است. اگر شرط داخل if درست (True) باشد، بلاک کد داخل آن اجرا میشود.
age = 18
if age >= 18:
print("شما بزرگسال هستید و میتوانید رأی دهید!")
print("این خط همیشه چاپ میشود.")if حتماً باید : (دونقطه) قرار دهید و خط بعدی باید با فاصله (معمولاً ۴ فاصله یا Tab) شروع شود. در کد بالا، چون age برابر 18 است، شرط age >= 18 درست (True) است، بنابراین پیام داخل if چاپ میشود. خط آخر همیشه اجرا میشود چون خارج از if است.وقتی میخواهیم یک عمل را در صورت درست بودن شرط و عملی دیگر در صورت نادرست بودن آن انجام دهیم، از if/else استفاده میکنیم.
age = 16
if age >= 18:
print("شما بزرگسال هستید!")
else:
print("شما هنوز کودک/نوجوان هستید.")
print("پایان برنامه")age >= 18 نادرست (False) است. در نتیجه کد داخل else اجرا میشود و پیام «شما هنوز کودک/نوجوان هستید» چاپ میگردد.وقتی چند شرط متفاوت داریم، از elif (مخفف else if) استفاده میکنیم. این ساختار به ما اجازه میدهد چندین شرط را پشت سر هم بررسی کنیم.
score = 85
if score >= 90:
print("نمره عالی: A")
elif score >= 80:
print("نمره خوب: B")
elif score >= 70:
print("نمره متوسط: C")
elif score >= 60:
print("نمره قبول: D")
else:
print("مردود: F")elifها بسیار مهم است!برای ترکیب چند شرط با هم، از عملگرهای منطقی and (و — همه شرایط باید درست باشند)، or (یا — حداقل یکی از شرایط درست باشد) و not (نقیض — برعکس کردن شرط) استفاده میکنیم.
age = 20
has_license = True
# استفاده از and (هر دو شرط باید True باشند)
if age >= 18 and has_license:
print("شما میتوانید رانندگی کنید!")
else:
print("شما نمیتوانید رانندگی کنید.")
# استفاده از or (حداقل یکی از شرایط True باشد)
day = "جمعه"
if day == "جمعه" or day == "شنبه":
print("امروز تعطیل است!")
else:
print("امروز روز کاری است.")
# استفاده از not (برعکس کردن شرط)
is_raining = False
if not is_raining:
print("آسمان صاف است. میتوانید بیرون بروید!")
else:
print("باران میبارد. چتر بردارید!")میتوانیم یک if را داخل یک if دیگر قرار دهیم. این کار را زمانی انجام میدهیم که چند شرط به هم وابسته داشته باشیم.
age = 25
has_money = True
if age >= 18:
if has_money:
print("شما میتوانید وارد سینما شوید و بلیت بخرید!")
else:
print("شما بزرگسال هستید اما پول کافی ندارید.")
else:
print("شما برای ورود به سینما باید بزرگتر باشید.")برای نوشتن سریع یک if/else در یک خط، میتوانیم از عبارت شرطی استفاده کنیم. فرم کلی: مقدار_اگر_درست if شرط else مقدار_اگر_نادرست
age = 20
status = "بزرگسال" if age >= 18 else "کودک"
print(status)
# همین کد به صورت معمولی:
# if age >= 18:
# status = "بزرگسال"
# else:
# status = "کودک"# دریافت دو عدد و عملگر از کاربر
num1 = float(input("عدد اول را وارد کنید: "))
num2 = float(input("عدد دوم را وارد کنید: "))
operation = input("عملگر (+, -, *, /): ")
if operation == '+':
result = num1 + num2
print(f"{num1} + {num2} = {result}")
elif operation == '-':
result = num1 - num2
print(f"{num1} - {num2} = {result}")
elif operation == '*':
result = num1 * num2
print(f"{num1} * {num2} = {result}")
elif operation == '/':
if num2 != 0:
result = num1 / num2
print(f"{num1} / {num2} = {result}")
else:
print("خطا: تقسیم بر صفر ممکن نیست!")
else:
print("عملگر نامعتبر است!")balance = 5000000 # 5 میلیون تومان موجودی اولیه
print("=== سیستم بانکی ===")
print(f"موجودی شما: {balance:,} تومان")
action = input("عملیات (1: برداشت, 2: واریز, 3: اطلاعات): ")
if action == '1':
amount = int(input("مبلغ برداشت: "))
if amount <= balance:
balance -= amount
print(f"برداشت موفق! موجودی جدید: {balance:,} تومان")
else:
print("موجودی کافی نیست!")
elif action == '2':
amount = int(input("مبلغ واریز: "))
if amount > 0:
balance += amount
print(f"واریز موفق! موجودی جدید: {balance:,} تومان")
else:
print("مبلغ واریز باید مثبت باشد!")
elif action == '3':
print(f"موجودی فعلی: {balance:,} تومان")
else:
print("عملیات نامعتبر!")age = int(input("لطفاً سن خود را وارد کنید: "))
if age < 10:
print("شما کودک هستید")
elif age <= 17:
print("شما نوجوان هستید")
elif age <= 64:
print("شما بزرگسال هستید")
else:
print("شما سالمند هستید")
num = int(input("عدد را وارد کنید: "))
if num % 2 == 0:
print(f"{num} یک عدد زوج است.")
else:
print(f"{num} یک عدد فرد است.")
% باقیمانده تقسیم را برمیگرداند. اگر باقیمانده تقسیم بر 2 برابر صفر باشد، عدد زوج است، در غیر این صورت فرد است.year = int(input("سال را وارد کنید: "))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year} یک سال کبیسه است.")
else:
print(f"{year} سال کبیسه نیست.")
salary = float(input("حقوق ماهانه خود را وارد کنید (تومان): "))
if salary < 10_000_000:
tax = 0
print("مالیات: صفر تومان")
elif salary <= 20_000_000:
tax = salary * 0.10
print(f"مالیات: {tax:,.0f} تومان")
elif salary <= 35_000_000:
tax = salary * 0.15
print(f"مالیات: {tax:,.0f} تومان")
else:
tax = salary * 0.20
print(f"مالیات: {tax:,.0f} تومان")
print(f"حقوق خالص: {salary - tax:,.0f} تومان")