🐍 آموزش جامع Python — پست ۵۲
ترکیب شرطهای تو در تو با
گاهی داخل یک شرط تو در تو، چند شرط را با
🔹 مثال با
اینجا هر دو شرط داخلی باید درست باشند.
🔹 مثال با
کافی است یکی از شرطها درست باشد.
🔹 ترکیب با پرانتز
پرانتز برای مشخص کردن اولویت بررسی شرطها استفاده میشود.
مثلاً:
ابتدا این بخش بررسی میشود:
سپس:
پس خروجی:
بدون پرانتز هم در این مثال نتیجه یکسان است، اما پرانتز منطق شرط را واضحتر میکند.
⚠️ نکته مهم
در شرطهای ترکیبی، پرانتز میتواند نتیجه را تغییر دهد:
با:
الزاماً یکسان نیستند.
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۵۲ از دوره جامع Python 🐍
ترکیب شرطهای تو در تو با
and و orگاهی داخل یک شرط تو در تو، چند شرط را با
and یا or ترکیب میکنیم.🔹 مثال با
andage = 20
has_id = True
is_member = True
if age >= 18:
if has_id and is_member:
print("Access granted")
اینجا هر دو شرط داخلی باید درست باشند.
🔹 مثال با
oris_admin = False
is_manager = True
if is_admin or is_manager:
print("Access granted")
کافی است یکی از شرطها درست باشد.
🔹 ترکیب با پرانتز
()پرانتز برای مشخص کردن اولویت بررسی شرطها استفاده میشود.
مثلاً:
age = 20
has_id = True
is_member = False
if age >= 18 and (has_id or is_member):
print("Access granted")
ابتدا این بخش بررسی میشود:
has_id or is_member
True or False → True
سپس:
age >= 18 and True
True and True → True
پس خروجی:
Access granted
بدون پرانتز هم در این مثال نتیجه یکسان است، اما پرانتز منطق شرط را واضحتر میکند.
⚠️ نکته مهم
در شرطهای ترکیبی، پرانتز میتواند نتیجه را تغییر دهد:
A or (B and C)
با:
(A or B) and C
الزاماً یکسان نیستند.
🧠 خلاصه
() → مشخص کردن اولویت
and → همه شرطهای مربوط باید True باشند
or → حداقل یکی از شرطها باید True باشد
🎯 تمرین
خروجی را حدس بزن:
a = True
b = False
c = True
result = a and (b or c)
print(result)
پست ۵۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۳
تفاوت شرط تو در تو و شرط ترکیبی
دو روش رایج برای بررسی چند شرط داریم:
شرط تو در تو (
شرط ترکیبی با
🔹 شرط تو در تو
ابتدا شرط سن بررسی میشود؛ سپس شرط کارت شناسایی.
🔹 شرط ترکیبی
همین منطق را میتوان کوتاهتر نوشت:
در اینجا هر دو شرط باید
🔹 چه زمانی از کدام استفاده کنیم؟
اگر شرطها ساده و مستقل هستند:
خواناتر است.
اما اگر شرط دوم فقط در صورت برقرار بودن شرط اول معنا داشته باشد،
⚠️ نکته
هر دو روش همیشه از نظر منطقی کاملاً معادل نیستند؛ مخصوصاً وقتی داخل شرطها کد اجرایی یا وابستگی منطقی وجود داشته باشد.
پس فقط برای کوتاهتر شدن، همه شرطهای تو در تو را به
🧠 خلاصه
🎯 تمرین
کدام روش را برای این مسئله انتخاب میکنی؟
«اگر کاربر وارد حساب شده بود، بررسی کن که مدیر است یا نه.»
پست ۵۳ از دوره جامع Python 🐍
تفاوت شرط تو در تو و شرط ترکیبی
دو روش رایج برای بررسی چند شرط داریم:
شرط تو در تو (
Nested if)شرط ترکیبی با
and و or🔹 شرط تو در تو
age = 20
has_id = True
if age >= 18:
if has_id:
print("Access granted")
ابتدا شرط سن بررسی میشود؛ سپس شرط کارت شناسایی.
🔹 شرط ترکیبی
همین منطق را میتوان کوتاهتر نوشت:
age = 20
has_id = True
if age >= 18 and has_id:
print("Access granted")
در اینجا هر دو شرط باید
True باشند.🔹 چه زمانی از کدام استفاده کنیم؟
اگر شرطها ساده و مستقل هستند:
if age >= 18 and has_id:
print("Access granted")
خواناتر است.
اما اگر شرط دوم فقط در صورت برقرار بودن شرط اول معنا داشته باشد،
Nested if میتواند مناسبتر باشد:if age >= 18:
if has_id:
print("Access granted")
⚠️ نکته
هر دو روش همیشه از نظر منطقی کاملاً معادل نیستند؛ مخصوصاً وقتی داخل شرطها کد اجرایی یا وابستگی منطقی وجود داشته باشد.
پس فقط برای کوتاهتر شدن، همه شرطهای تو در تو را به
and تبدیل نکنید.🧠 خلاصه
Nested if → شرط داخل شرط
and / or → ترکیب چند شرط
🎯 تمرین
کدام روش را برای این مسئله انتخاب میکنی؟
«اگر کاربر وارد حساب شده بود، بررسی کن که مدیر است یا نه.»
پست ۵۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۴
بررسی چند حالت با
وقتی یک مقدار میتواند چند حالت مختلف داشته باشد، از
🔹 مثال
خروجی:
Python شرطها را از بالا به پایین بررسی میکند.
به محض اینکه یک شرط
🔹 ترتیب شرطها مهم است
مثلاً این کد مشکل دارد:
خروجی:
چون شرط اول از قبل
پس معمولاً شرطهای محدودتر و دقیقتر را بالاتر قرار میدهیم.
🧠 خلاصه
🎯 تمرین
کد را طوری بنویس که:
پست ۵۴ از دوره جامع Python 🐍
بررسی چند حالت با
elifوقتی یک مقدار میتواند چند حالت مختلف داشته باشد، از
elif استفاده میکنیم.🔹 مثال
score = 85
if score >= 90:
print("Excellent")
elif score >= 70:
print("Good")
elif score >= 50:
print("Passed")
else:
print("Failed")
خروجی:
Good
Python شرطها را از بالا به پایین بررسی میکند.
به محض اینکه یک شرط
True شود، همان بخش اجرا میشود و بقیه شرطها بررسی نمیشوند.🔹 ترتیب شرطها مهم است
مثلاً این کد مشکل دارد:
score = 95
if score >= 50:
print("Passed")
elif score >= 90:
print("Excellent")
خروجی:
Passed
چون شرط اول از قبل
True شده است و Python دیگر به elif نمیرسد.پس معمولاً شرطهای محدودتر و دقیقتر را بالاتر قرار میدهیم.
🧠 خلاصه
if → اولین شرط
elif → شرطهای بعدی
else → اگر هیچکدام درست نبود
🎯 تمرین
کد را طوری بنویس که:
90 به بالا → Excellent
70 تا 89 → Good
50 تا 69 → Passed
کمتر از 50 → Failed
پست ۵۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۵
تعیین محدوده با
با
🔹 مثال با نمره
خروجی:
🔹 مقایسه زنجیرهای
در Python میتوانیم بنویسیم:
این یعنی:
پس لازم نیست همیشه
⚠️ نکته مهم
به مرزها دقت کنید:
در این حالت هیچ عددی بین دو محدوده تکراری نیست.
🔹 مثال دیگر
🧠 خلاصه
🎯 تمرین
شرطها را طوری بنویس که:
پست ۵۵ از دوره جامع Python 🐍
تعیین محدوده با
if و elifبا
if و elif میتوانیم یک مقدار را در چند محدوده بررسی کنیم.🔹 مثال با نمره
score = 85
if 90 <= score <= 100:
print("Excellent")
elif 70 <= score < 90:
print("Good")
elif 50 <= score < 70:
print("Passed")
else:
print("Failed")
خروجی:
Good
🔹 مقایسه زنجیرهای
در Python میتوانیم بنویسیم:
70 <= score < 90
این یعنی:
70 <= score and score < 90
پس لازم نیست همیشه
and را جداگانه بنویسیم.⚠️ نکته مهم
به مرزها دقت کنید:
90 <= score <= 100
70 <= score < 90
50 <= score < 70
در این حالت هیچ عددی بین دو محدوده تکراری نیست.
🔹 مثال دیگر
age = 25
if 0 <= age < 13:
print("Child")
elif 13 <= age < 18:
print("Teenager")
elif age >= 18:
print("Adult")
else:
print("Invalid age")
🧠 خلاصه
if / elif → بررسی چند حالت
<= → شامل مرز است
< → مرز را شامل نمیشود
🎯 تمرین
شرطها را طوری بنویس که:
0 تا 12 → Child
13 تا 17 → Teenager
18 تا 59 → Adult
60 به بالا → Senior
پست ۵۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۶
اعتبارسنجی ورودی با
در این پست از شرطها برای بررسی معتبر بودن ورودی کاربر استفاده میکنیم.
🔹 مثال
اگر
اگر
اگر
⚠️ نکته مهم
ترتیب شرطها مهم است.
ابتدا حالت نامعتبر را بررسی میکنیم، سپس حالتهای معتبر.
🧠 خلاصه
🎯 تمرین
برنامهای بنویسید که یک عدد دریافت کند:
پست ۵۶ از دوره جامع Python 🐍
اعتبارسنجی ورودی با
if و elifدر این پست از شرطها برای بررسی معتبر بودن ورودی کاربر استفاده میکنیم.
🔹 مثال
age = int(input("Enter your age: "))
if age < 0:
print("Invalid age")
elif age < 18:
print("Minor")
else:
print("Adult")اگر
-5 وارد شود:Invalid age
اگر
15 وارد شود:Minor
اگر
25 وارد شود:Adult
⚠️ نکته مهم
ترتیب شرطها مهم است.
ابتدا حالت نامعتبر را بررسی میکنیم، سپس حالتهای معتبر.
🧠 خلاصه
if → شرط اول
elif → شرطهای بعدی
else → هیچ شرطی درست نبود
🎯 تمرین
برنامهای بنویسید که یک عدد دریافت کند:
کمتر از 0 → Negative
0 تا 100 → Valid
بیشتر از 100 → Invalid
پست ۵۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۷
ترکیب چند شرط برای اعتبارسنجی
گاهی برای معتبر بودن یک مقدار، باید چند شرط همزمان برقرار باشند.
🔹 مثال
در اینجا هر دو شرط باید
پس:
🔹 استفاده از
اگر کافی باشد یکی از شرطها درست باشد:
⚠️ نکته مهم
برای ترکیب شرطهای پیچیده، از پرانتز استفاده کنید:
ابتدا:
بررسی میشود.
🧠 خلاصه
🎯 تمرین
کدی بنویسید که اگر:
پیام
پست ۵۷ از دوره جامع Python 🐍
ترکیب چند شرط برای اعتبارسنجی
گاهی برای معتبر بودن یک مقدار، باید چند شرط همزمان برقرار باشند.
🔹 مثال
age = 25
has_id = True
if age >= 18 and has_id:
print("Access granted")
else:
print("Access denied")
در اینجا هر دو شرط باید
True باشند:age >= 18 → True
has_id → True
پس:
True and True → True
🔹 استفاده از
orاگر کافی باشد یکی از شرطها درست باشد:
username = "admin"
if username == "admin" or username == "root":
print("Privileged user")
else:
print("Normal user")
⚠️ نکته مهم
برای ترکیب شرطهای پیچیده، از پرانتز استفاده کنید:
if age >= 18 and (has_id or username == "admin"):
print("Access granted")
ابتدا:
has_id or username == "admin"
بررسی میشود.
🧠 خلاصه
and → همه شرطها باید True باشند
or → حداقل یکی باید True باشد
() → تعیین ترتیب بررسی
🎯 تمرین
کدی بنویسید که اگر:
سن حداقل 18 باشد
و
کاربر عضو باشد یا مدیر باشد
پیام
Access granted را چاپ کند.پست ۵۷ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۸
اعتبارسنجی چند مقدار با شرطها
گاهی لازم است چند مقدار را همزمان بررسی کنیم.
🔹 مثال
در اینجا:
چون هر دو شرط درست هستند، خروجی:
🔹 چند حالت مختلف
ابتدا بررسی میکنیم نمره خارج از محدوده
⚠️ نکته مهم
در اعتبارسنجی، معمولاً بهتر است ابتدا مقادیر نامعتبر را بررسی کنیم و بعد سراغ حالتهای معتبر برویم.
🧠 خلاصه
🎯 تمرین
برنامهای بنویسید که
پست ۵۸ از دوره جامع Python 🐍
اعتبارسنجی چند مقدار با شرطها
گاهی لازم است چند مقدار را همزمان بررسی کنیم.
🔹 مثال
username = "Ali"
age = 20
if username and age >= 18:
print("Valid user")
else:
print("Invalid user")
در اینجا:
username → باید خالی نباشد
age → باید حداقل 18 باشد
چون هر دو شرط درست هستند، خروجی:
Valid user
🔹 چند حالت مختلف
score = 85
if score < 0 or score > 100:
print("Invalid score")
elif score >= 50:
print("Passed")
else:
print("Failed")
ابتدا بررسی میکنیم نمره خارج از محدوده
0 تا 100 نباشد.⚠️ نکته مهم
در اعتبارسنجی، معمولاً بهتر است ابتدا مقادیر نامعتبر را بررسی کنیم و بعد سراغ حالتهای معتبر برویم.
🧠 خلاصه
and → همه شرایط باید درست باشند
or → حداقل یک شرط باید درست باشد
if / elif / else → مدیریت حالتهای مختلف
🎯 تمرین
برنامهای بنویسید که
score را بررسی کند:کمتر از 0 یا بیشتر از 100 → Invalid
50 تا 100 → Passed
کمتر از 50 → Failed
پست ۵۸ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۹
ترکیب چند مقایسه در یک شرط
در Python میتوانیم چند مقایسه را در یک شرط ترکیب کنیم.
🔹 مثال
اینجا Python بررسی میکند:
هر دو باید درست باشند.
🔹 با
همین شرط را میتوانیم اینطور بنویسیم:
🔹 مثال با نمره
⚠️ نکته مهم
مقایسه زنجیرهای:
از نظر منطقی معادل است با:
این ویژگی مخصوص Python است و خوانایی کد را بهتر میکند.
🧠 خلاصه
یعنی:
🎯 تمرین
شرطی بنویسید که بررسی کند
پست ۵۹ از دوره جامع Python 🐍
ترکیب چند مقایسه در یک شرط
در Python میتوانیم چند مقایسه را در یک شرط ترکیب کنیم.
🔹 مثال
age = 25
if 18 <= age <= 60:
print("Valid age")
اینجا Python بررسی میکند:
18 <= age
age <= 60
هر دو باید درست باشند.
🔹 با
andهمین شرط را میتوانیم اینطور بنویسیم:
if age >= 18 and age <= 60:
print("Valid age")
🔹 مثال با نمره
score = 85
if 0 <= score <= 100:
print("Valid score")
else:
print("Invalid score")
⚠️ نکته مهم
مقایسه زنجیرهای:
0 <= score <= 100
از نظر منطقی معادل است با:
0 <= score and score <= 100
این ویژگی مخصوص Python است و خوانایی کد را بهتر میکند.
🧠 خلاصه
a <= x <= b
یعنی:
a <= x and x <= b
🎯 تمرین
شرطی بنویسید که بررسی کند
temperature بین -10 و 40 باشد.پست ۵۹ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۰
استفاده از
با
🔹 مثال ساده
چون:
پس شرط اجرا میشود.
🔹 مثال با مقایسه
ابتدا:
🔹
میتوانیم چند شرط را داخل پرانتز قرار دهیم و نتیجه کلی را معکوس کنیم:
ابتدا:
سپس:
بنابراین
🔹 ترکیب با
هر دو بخش شرط باید درست باشند.
⚠️ نکته مهم
پرانتز مشخص میکند
یعنی نتیجه کل
🧠 خلاصه
🎯 تمرین
خروجی را پیشبینی کنید.
پست ۶۰ از دوره جامع Python 🐍
استفاده از
not برای معکوس کردن شرطبا
not میتوانیم نتیجه یک شرط را معکوس کنیم.🔹 مثال ساده
is_admin = False
if not is_admin:
print("Access denied")
چون:
is_admin → False
not False → True
پس شرط اجرا میشود.
🔹 مثال با مقایسه
age = 15
if not age >= 18:
print("You are a minor")
ابتدا:
age >= 18 → False
not False → True
🔹
not با پرانتزمیتوانیم چند شرط را داخل پرانتز قرار دهیم و نتیجه کلی را معکوس کنیم:
age = 20
has_id = True
if not (age >= 18 and has_id):
print("Access denied")
else:
print("Access granted")
ابتدا:
age >= 18 and has_id
True and True → True
سپس:
not True → False
بنابراین
else اجرا میشود.🔹 ترکیب با
andis_logged_in = True
is_admin = False
if is_logged_in and not is_admin:
print("Normal user")
هر دو بخش شرط باید درست باشند.
⚠️ نکته مهم
پرانتز مشخص میکند
not دقیقاً روی کدام عبارت اعمال شود:not (A and B)
یعنی نتیجه کل
(A and B) معکوس شود.🧠 خلاصه
not True → False
not False → True
not (A and B) → معکوس نتیجه A and B
🎯 تمرین
age = 16
has_id = True
if not (age >= 18 and has_id):
print("Access denied")
else:
print("Access granted")
خروجی را پیشبینی کنید.
پست ۶۰ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۱
ترکیب
در پست قبل با
حالا میتوانیم
🔹 مثال با
اینجا:
پس:
🔹 مثال با
ابتدا داخل پرانتز بررسی میشود:
سپس:
پس پیام
⚠️ نکته مهم
پرانتز در این نوع شرطها بسیار مهم است:
یعنی ابتدا
🧠 خلاصه
🎯 تمرین
خروجی کد زیر را قبل از اجرا پیشبینی کنید:
پست ۶۱ از دوره جامع Python 🐍
ترکیب
not با and و orدر پست قبل با
not آشنا شدیم.حالا میتوانیم
not را همراه با and و or استفاده کنیم.🔹 مثال با
andage = 20
has_id = False
if age >= 18 and not has_id:
print("ID is required")
اینجا:
age >= 18 → True
has_id → False
not False → True
پس:
True and True → True
🔹 مثال با
orusername = "guest"
if not (username == "admin" or username == "root"):
print("Normal user")
ابتدا داخل پرانتز بررسی میشود:
username == "admin" → False
username == "root" → False
False or False → False
سپس:
not False → True
پس پیام
Normal user چاپ میشود.⚠️ نکته مهم
پرانتز در این نوع شرطها بسیار مهم است:
not (A or B)
یعنی ابتدا
A or B محاسبه شود و سپس نتیجه آن با not معکوس شود.🧠 خلاصه
not (A and B) → معکوس نتیجه A and B
not (A or B) → معکوس نتیجه A or B
🎯 تمرین
خروجی کد زیر را قبل از اجرا پیشبینی کنید:
is_logged_in = True
is_banned = False
if is_logged_in and not is_banned:
print("Access granted")
else:
print("Access denied")
پست ۶۱ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۲
اولویت
وقتی
🔹 ترتیب بررسی
در شرطهایی که تا اینجا یاد گرفتیم:
یعنی
🔹 مثال
ابتدا:
سپس:
پس خروجی:
🔹 استفاده از پرانتز
پرانتز میتواند ترتیب را تغییر دهد:
ابتدا:
سپس:
⚠️ نکته مهم
این دو عبارت همیشه یک شکل نوشته نمیشوند:
و:
پرانتز مشخص میکند
🧠 خلاصه
اگر شرط پیچیده شد، برای خوانایی از
🎯 تمرین
خروجی هر دو عبارت را قبل از اجرا پیشبینی کنید:
پست ۶۲ از دوره جامع Python 🐍
اولویت
not در ترکیب شرطهاوقتی
not را همراه با and و or استفاده میکنیم، ترتیب بررسی شرطها اهمیت دارد.🔹 ترتیب بررسی
در شرطهایی که تا اینجا یاد گرفتیم:
()
not
and
or
یعنی
not قبل از and و or بررسی میشود.🔹 مثال
a = True
b = False
result = not a or b
print(result)
ابتدا:
not a
not True → False
سپس:
False or False → False
پس خروجی:
False
🔹 استفاده از پرانتز
پرانتز میتواند ترتیب را تغییر دهد:
result = not (a or b)
print(result)
ابتدا:
a or b
True or False → True
سپس:
not True → False
⚠️ نکته مهم
این دو عبارت همیشه یک شکل نوشته نمیشوند:
not a or b
و:
not (a or b)
پرانتز مشخص میکند
not روی کدام بخش اعمال شود.🧠 خلاصه
() → اول
not → بعد
and → سپس
or → در آخر
اگر شرط پیچیده شد، برای خوانایی از
() استفاده کنید.🎯 تمرین
خروجی هر دو عبارت را قبل از اجرا پیشبینی کنید:
a = True
b = False
print(not a or b)
print(not (a or b))
پست ۶۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۳
ترکیب چند شرط با
گاهی یک مقدار میتواند در چند حالت مختلف قرار بگیرد. در این شرایط از
🔹 مثال
خروجی:
چون:
به محض اینکه یک شرط
⚠️ ترتیب شرطها مهم است
شرطها از بالا به پایین بررسی میشوند.
ترتیب نادرست:
برای
🧠 خلاصه
🎯 تمرین
برنامهای بنویسید که بر اساس
پست ۶۳ از دوره جامع Python 🐍
ترکیب چند شرط با
if و elifگاهی یک مقدار میتواند در چند حالت مختلف قرار بگیرد. در این شرایط از
if و چند elif استفاده میکنیم.🔹 مثال
score = 82
if score >= 90:
print("Excellent")
elif score >= 75:
print("Good")
elif score >= 50:
print("Passed")
else:
print("Failed")
خروجی:
Good
چون:
82 >= 90 → False
82 >= 75 → True
به محض اینکه یک شرط
True شود، همان بلوک اجرا میشود و شرطهای بعدی بررسی نمیشوند.⚠️ ترتیب شرطها مهم است
شرطها از بالا به پایین بررسی میشوند.
ترتیب نادرست:
if score >= 50:
print("Passed")
elif score >= 90:
print("Excellent")
برای
score = 95، شرط اول True میشود و دیگر elif بررسی نمیشود.🧠 خلاصه
if → اولین حالت
elif → حالتهای بعدی
else → هیچکدام درست نبود
🎯 تمرین
برنامهای بنویسید که بر اساس
temperature چاپ کند:30 به بالا → Hot
20 تا 29 → Warm
10 تا 19 → Cool
کمتر از 10 → Cold
پست ۶۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۴
ترکیب
میتوانیم در هر شاخه از
🔹 مثال با
اگر:
هر دو شرط اول درست هستند، بنابراین
🔹 مثال با
اگر یکی از دو مقایسه
⚠️ نکته مهم
در شرطهای ترکیبی، از پرانتز برای مشخص کردن منطق استفاده کنید:
ابتدا:
سپس:
🧠 خلاصه
🎯 تمرین
شرطی بنویسید که اگر:
پیام
پست ۶۴ از دوره جامع Python 🐍
ترکیب
if و elif با چند شرطمیتوانیم در هر شاخه از
if و elif چند شرط را با and و or ترکیب کنیم.🔹 مثال با
andage = 25
has_id = True
if age >= 18 and has_id:
print("Access granted")
elif age >= 18 and not has_id:
print("ID required")
else:
print("Access denied")
اگر:
age >= 18 → True
has_id → True
هر دو شرط اول درست هستند، بنابراین
Access granted چاپ میشود.🔹 مثال با
orusername = "admin"
if username == "admin" or username == "root":
print("Privileged user")
else:
print("Normal user")
اگر یکی از دو مقایسه
True باشد، شرط اجرا میشود.⚠️ نکته مهم
در شرطهای ترکیبی، از پرانتز برای مشخص کردن منطق استفاده کنید:
age = 20
has_id = True
is_member = False
if age >= 18 and (has_id or is_member):
print("Access granted")
ابتدا:
has_id or is_member
True or False → True
سپس:
age >= 18 and True
True and True → True
🧠 خلاصه
and → همه شرطها باید درست باشند
or → حداقل یک شرط درست باشد
() → گروهبندی شرطها
🎯 تمرین
شرطی بنویسید که اگر:
سن حداقل 18 باشد
و
کاربر عضو باشد یا مدیر باشد
پیام
Access granted را چاپ کند.پست ۶۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۵
شرطهای تو در تو با
گاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری قبلاً درست بوده باشد. در این حالت از
🔹 مثال
ابتدا سن بررسی میشود:
پس
سپس:
بنابراین خروجی:
🔹 شرط تو در تو با
خروجی:
⚠️ نکته مهم
در شرطهای تو در تو، تورفتگی (
🧠 خلاصه
یعنی شرط دوم فقط وقتی بررسی میشود که شرط اول
🎯 تمرین
برنامهای بنویسید که:
پست ۶۵ از دوره جامع Python 🐍
شرطهای تو در تو با
ifگاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری قبلاً درست بوده باشد. در این حالت از
if تو در تو استفاده میکنیم.🔹 مثال
age = 20
has_id = True
if age >= 18:
if has_id:
print("Access granted")
else:
print("ID required")
else:
print("Too young")
ابتدا سن بررسی میشود:
age >= 18 → True
پس
if داخلی اجرا میشود.سپس:
has_id → True
بنابراین خروجی:
Access granted
🔹 شرط تو در تو با
elifscore = 85
if score >= 50:
if score >= 90:
print("Excellent")
elif score >= 75:
print("Good")
else:
print("Passed")
else:
print("Failed")
خروجی:
Good
⚠️ نکته مهم
در شرطهای تو در تو، تورفتگی (
indentation) بسیار مهم است.if condition:
if another_condition:
print("...")
if دوم داخل if اول قرار دارد.🧠 خلاصه
if
if
code
یعنی شرط دوم فقط وقتی بررسی میشود که شرط اول
True باشد.🎯 تمرین
برنامهای بنویسید که:
اگر کاربر وارد شده بود:
اگر مدیر بود → Admin
در غیر این صورت → User
در غیر این صورت:
Login required
پست ۶۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۶
ترکیب
در پست قبل با شرطهای تو در تو آشنا شدیم.
حالا میتوانیم داخل شرطهای تو در تو از
🔹 مثال
ابتدا:
پس وارد شرط داخلی میشویم.
سپس:
بنابراین:
🔹 مثال با
برای
⚠️ نکته مهم
در شرطهای تو در تو، هر سطح از شرط باید تورفتگی مناسب داشته باشد:
🧠 خلاصه
🎯 تمرین
برنامهای بنویسید که:
پست ۶۶ از دوره جامع Python 🐍
ترکیب
if تو در تو با and و orدر پست قبل با شرطهای تو در تو آشنا شدیم.
حالا میتوانیم داخل شرطهای تو در تو از
and و or هم استفاده کنیم.🔹 مثال
is_logged_in = True
is_member = True
is_admin = False
if is_logged_in:
if is_admin or is_member:
print("Access granted")
else:
print("Membership required")
else:
print("Please login")
ابتدا:
is_logged_in → True
پس وارد شرط داخلی میشویم.
سپس:
is_admin or is_member
False or True → True
بنابراین:
Access granted
🔹 مثال با
andage = 20
has_id = True
is_member = True
if age >= 18:
if has_id and is_member:
print("Full access")
else:
print("Requirements not met")
else:
print("Too young")
برای
Full access هر دو شرط داخلی باید True باشند.⚠️ نکته مهم
در شرطهای تو در تو، هر سطح از شرط باید تورفتگی مناسب داشته باشد:
if condition:
if another_condition:
print("...")
🧠 خلاصه
if اول → شرط اصلی
if دوم → شرط وابسته
and / or → ترکیب شرطهای داخلی
🎯 تمرین
برنامهای بنویسید که:
اگر کاربر وارد شده بود:
اگر سن حداقل 18 بود:
اگر عضو یا مدیر بود → Access granted
در غیر این صورت → Membership required
در غیر این صورت → Too young
در غیر این صورت:
Please login
پست ۶۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۷
تبدیل شرطهای تو در تو به شرط ترکیبی
گاهی یک شرط تو در تو را میتوان با
🔹 حالت تو در تو
میتوانیم همین منطق را سادهتر بنویسیم:
در این حالت، استفاده از
🔹 یک مثال دیگر
شرط تو در تو:
نسخه ترکیبی:
⚠️ نکته مهم
هر شرط تو در تو را نمیتوان بدون بررسی به
اگر شرط داخلی فقط زمانی معنا دارد که شرط بیرونی اجرا شده باشد، ساختار تو در تو میتواند مناسبتر باشد.
🧠 خلاصه
هدف فقط کوتاه کردن کد نیست؛ خوانایی و منطق درست برنامه مهمتر است.
🎯 تمرین
کد زیر را بدون
پست ۶۷ از دوره جامع Python 🐍
تبدیل شرطهای تو در تو به شرط ترکیبی
گاهی یک شرط تو در تو را میتوان با
and یا or سادهتر نوشت.🔹 حالت تو در تو
age = 20
has_id = True
if age >= 18:
if has_id:
print("Access granted")
میتوانیم همین منطق را سادهتر بنویسیم:
if age >= 18 and has_id:
print("Access granted")
در این حالت، استفاده از
and باعث میشود کد کوتاهتر و خواناتر شود.🔹 یک مثال دیگر
شرط تو در تو:
is_logged_in = True
is_admin = True
if is_logged_in:
if is_admin:
print("Admin panel")
نسخه ترکیبی:
if is_logged_in and is_admin:
print("Admin panel")
⚠️ نکته مهم
هر شرط تو در تو را نمیتوان بدون بررسی به
and یا or تبدیل کرد.اگر شرط داخلی فقط زمانی معنا دارد که شرط بیرونی اجرا شده باشد، ساختار تو در تو میتواند مناسبتر باشد.
🧠 خلاصه
شرطهای مستقل → معمولاً and / or
شرط وابسته → ممکن است nested if مناسبتر باشد
هدف فقط کوتاه کردن کد نیست؛ خوانایی و منطق درست برنامه مهمتر است.
🎯 تمرین
کد زیر را بدون
if تو در تو بازنویسی کنید:age = 25
is_member = True
if age >= 18:
if is_member:
print("Access granted")
پست ۶۷ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۸
ترتیب بررسی شرطها در
وقتی چند شرط با
🔹 مثال
خروجی:
چرا؟
چون شرط اول:
است و Python دیگر
🔹 ترتیب درست
شرطهای خاصتر را قبل از شرطهای عمومیتر قرار دهید:
خروجی:
⚠️ نکته مهم
در
🧠 خلاصه
ترتیب شرطها میتواند نتیجه برنامه را تغییر دهد.
🎯 تمرین
کد زیر را اصلاح کنید تا برای
پست ۶۸ از دوره جامع Python 🐍
ترتیب بررسی شرطها در
if و elifوقتی چند شرط با
if و elif داریم، Python آنها را از بالا به پایین بررسی میکند.🔹 مثال
score = 95
if score >= 50:
print("Passed")
elif score >= 90:
print("Excellent")
خروجی:
Passed
چرا؟
چون شرط اول:
95 >= 50 → True
است و Python دیگر
elif را بررسی نمیکند.🔹 ترتیب درست
شرطهای خاصتر را قبل از شرطهای عمومیتر قرار دهید:
score = 95
if score >= 90:
print("Excellent")
elif score >= 50:
print("Passed")
else:
print("Failed")
خروجی:
Excellent
⚠️ نکته مهم
در
if / elif / else:1. از بالا شروع میشود.
2. اولین شرط True اجرا میشود.
3. شرطهای بعدی دیگر بررسی نمیشوند.
🧠 خلاصه
شرط خاصتر
↓
شرط عمومیتر
↓
else
ترتیب شرطها میتواند نتیجه برنامه را تغییر دهد.
🎯 تمرین
کد زیر را اصلاح کنید تا برای
score = 95 مقدار Excellent چاپ شود:score = 95
if score >= 50:
print("Passed")
elif score >= 90:
print("Excellent")
پست ۶۸ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۶۹
انتخاب حالتها با
در Python میتوان برای بررسی چند مقدار مشخص، بهجای زنجیرهای از
🔹 ساختار
🔹 مثال ساده
خروجی:
Python مقدار
🔹
علامت
یعنی اگر هیچ
🔹 مثال کاربردی
⚠️ نکته مهم
همچنین
🧠 خلاصه
🎯 تمرین
برنامهای بنویسید که مقدار
پست ۶۹ از دوره جامع Python 🐍
انتخاب حالتها با
match و caseدر Python میتوان برای بررسی چند مقدار مشخص، بهجای زنجیرهای از
if و elif از match و case استفاده کرد.🔹 ساختار
match value:
case pattern:
code
🔹 مثال ساده
day = 2
match day:
case 1:
print("Monday")
case 2:
print("Tuesday")
case 3:
print("Wednesday")
case _:
print("Unknown day")
خروجی:
Tuesday
Python مقدار
day را با caseها مقایسه میکند.🔹
case _علامت
_ برای حالت پیشفرض استفاده میشود:case _:
print("Unknown day")
یعنی اگر هیچ
case دیگری تطبیق نداشت، این بخش اجرا شود.🔹 مثال کاربردی
command = "start"
match command:
case "start":
print("Starting...")
case "stop":
print("Stopping...")
case "restart":
print("Restarting...")
case _:
print("Unknown command")
⚠️ نکته مهم
match و case از Python 3.10 به بعد در دسترس هستند.همچنین
match فقط جایگزین سادهای برای تمام ifها نیست؛ قابلیتهای پیشرفتهتری برای Pattern Matching دارد که بعداً میتوانیم بررسی کنیم.🧠 خلاصه
match → مقداری که میخواهیم بررسی کنیم
case → حالتهای مختلف
_ → حالت پیشفرض
🎯 تمرین
برنامهای بنویسید که مقدار
operation را بررسی کند:"add" → Addition
"sub" → Subtraction
"mul" → Multiplication
"div" → Division
سایر موارد → Unknown operation
پست ۶۹ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۷۰
Pattern Matching در
در پست قبل با
حالا یکی از قابلیتهای مهم
🔹 مثال با چند مقدار
خروجی:
چون مقدار:
با الگوی:
مطابقت دارد و مقدار
🔹 گرفتن چند مقدار
خروجی:
در اینجا
⚠️ نکته مهم
این قابلیت را Pattern Matching مینامیم.
🧠 خلاصه
🎯 تمرین
کد زیر را طوری کامل کنید که برای هر حالت پیام مناسب چاپ شود:
خروجی را قبل از اجرا پیشبینی کنید.
پست ۷۰ از دوره جامع Python 🐍
Pattern Matching در
matchدر پست قبل با
match و case آشنا شدیم.حالا یکی از قابلیتهای مهم
match را میبینیم: بررسی چند مقدار و الگو بهصورت همزمان.🔹 مثال با چند مقدار
point = (0, 5)
match point:
case (0, 0):
print("Origin")
case (0, y):
print("On Y axis")
case (x, 0):
print("On X axis")
case (x, y):
print("Other point")
خروجی:
On Y axis
چون مقدار:
(0, 5)
با الگوی:
case (0, y):
مطابقت دارد و مقدار
y برابر 5 میشود.🔹 گرفتن چند مقدار
data = ("Ali", 20)
match data:
case (name, age):
print(name)
print(age)خروجی:
Ali
20
در اینجا
name و age از مقدار داخل data استخراج میشوند.⚠️ نکته مهم
match فقط برای مقایسه ساده نیست؛ میتواند ساختار داده را هم بررسی و مقدارهای آن را استخراج کند.این قابلیت را Pattern Matching مینامیم.
🧠 خلاصه
match → بررسی مقدار و الگو
case → تعریف الگو
(x, y) → تطبیق ساختار و استخراج مقدارها
🎯 تمرین
کد زیر را طوری کامل کنید که برای هر حالت پیام مناسب چاپ شود:
point = (10, 0)
match point:
case (0, 0):
print("Origin")
case (x, 0):
print("On X axis")
case (0, y):
print("On Y axis")
case _:
print("Other point")
خروجی را قبل از اجرا پیشبینی کنید.
پست ۷۰ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۷۱
استفاده از شرط در
در
به این شرط اضافی Guard میگوییم.
🔹 مثال
خروجی:
چون:
پس
🔹 مثال دیگر
خروجی:
⚠️ نکته مهم
ساختار کلی:
ابتدا
🧠 خلاصه
این قابلیت زمانی مفید است که فقط تطبیق مقدار کافی نباشد.
🎯 تمرین
کد زیر را طوری تغییر دهید که فقط وقتی
پست ۷۱ از دوره جامع Python 🐍
استفاده از شرط در
case با ifدر
match میتوانیم علاوه بر الگو، یک شرط اضافی هم برای case تعیین کنیم.به این شرط اضافی Guard میگوییم.
🔹 مثال
point = (10, 5)
match point:
case (x, y) if x == y:
print("On diagonal")
case (x, y):
print("Other point")
خروجی:
Other point
چون:
x = 10
y = 5
x == y → False
پس
case اول انتخاب نمیشود و case دوم اجرا میشود.🔹 مثال دیگر
age = 20
match age:
case age if age >= 18:
print("Adult")
case _:
print("Minor")
خروجی:
Adult
⚠️ نکته مهم
ساختار کلی:
case pattern if condition:
code
ابتدا
pattern باید مطابقت داشته باشد، سپس شرط if بررسی میشود.🧠 خلاصه
case pattern → بررسی الگو
if condition → بررسی شرط اضافی
این قابلیت زمانی مفید است که فقط تطبیق مقدار کافی نباشد.
🎯 تمرین
کد زیر را طوری تغییر دهید که فقط وقتی
x و y برابر هستند، پیام Equal چاپ شود:point = (5, 5)
match point:
case (x, y) if x == y:
print("Equal")
case _:
print("Not equal")
پست ۷۱ از دوره جامع Python 🐍