🐍 آموزش جامع Python — پست ۴۰
ترکیب
در پستهای قبل با
حالا میتوانیم این عملگرها را با هم ترکیب کنیم.
🔹 ترکیب
ابتدا داخل پرانتز بررسی میشود:
سپس:
پس
🔹 ترکیب
داخل پرانتز:
سپس:
پس پیام
⚠️ نکته مهم
وقتی چند عملگر را ترکیب میکنیم، پرانتز خوانایی و منطق شرط را واضحتر میکند.
مثلاً:
با:
یک معنی ندارند.
پس اگر منطق شرط پیچیده شد، از
🧠 خلاصه
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۴۰ از دوره جامع Python 🐍
ترکیب
not با and و orدر پستهای قبل با
and، or و not آشنا شدیم.حالا میتوانیم این عملگرها را با هم ترکیب کنیم.
🔹 ترکیب
not و andage = 20
has_id = True
if not (age >= 18 and has_id):
print("Access denied")
else:
print("Access granted")
ابتدا داخل پرانتز بررسی میشود:
age >= 18 → True
has_id → True
True and True → True
سپس:
not True → False
پس
else اجرا میشود.🔹 ترکیب
not و orusername = "guest"
if not (username == "admin" or username == "root"):
print("Access denied")
داخل پرانتز:
username == "admin" → False
username == "root" → False
False or False → False
سپس:
not False → True
پس پیام
Access denied نمایش داده میشود.⚠️ نکته مهم
وقتی چند عملگر را ترکیب میکنیم، پرانتز خوانایی و منطق شرط را واضحتر میکند.
مثلاً:
not (A and B)
با:
(not A) and B
یک معنی ندارند.
پس اگر منطق شرط پیچیده شد، از
() استفاده کن.🧠 خلاصه
not → نتیجه را معکوس میکند
and → همه شرطها باید True باشند
or → حداقل یک شرط باید True باشد
() → بخشهای شرط را گروهبندی میکند
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
A = True
B = False
print(not A)
print(not B)
print(not (A and B))
print(not (A or B))
پست ۴۰ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۴۱
قوانین دمورگان | سادهسازی شرطها
گاهی میتوانیم یک شرط پیچیده را به شکل دیگری بنویسیم، بدون اینکه نتیجه منطقی آن تغییر کند.
این قوانین را قوانین دمورگان (De Morgan's Laws) مینامیم.
🔹 قانون اول
معادل منطقی آن:
مثال:
هر دو خروجی:
🔹 قانون دوم
معادل منطقی آن:
مثال:
هر دو خروجی:
🧠 نکته مهم
وقتی
همینطور:
تبدیل میشود به:
⚠️ اشتباه رایج
این دو معادل نیستند:
عملگر وسط باید از
🎯 تمرین
عبارت معادل هرکدام را بنویس:
پست ۴۱ از دوره جامع Python 🐍
قوانین دمورگان | سادهسازی شرطها
گاهی میتوانیم یک شرط پیچیده را به شکل دیگری بنویسیم، بدون اینکه نتیجه منطقی آن تغییر کند.
این قوانین را قوانین دمورگان (De Morgan's Laws) مینامیم.
🔹 قانون اول
not (A and B)
معادل منطقی آن:
(not A) or (not B)
مثال:
A = True
B = False
print(not (A and B))
print((not A) or (not B))
هر دو خروجی:
True
🔹 قانون دوم
not (A or B)
معادل منطقی آن:
(not A) and (not B)
مثال:
A = False
B = False
print(not (A or B))
print((not A) and (not B))
هر دو خروجی:
True
🧠 نکته مهم
وقتی
not وارد پرانتز میشود:not (A and B)
and به or تبدیل میشود و هر شرط هم not میگیرد:(not A) or (not B)
همینطور:
not (A or B)
تبدیل میشود به:
(not A) and (not B)
⚠️ اشتباه رایج
این دو معادل نیستند:
not (A and B)
(not A) and (not B)
عملگر وسط باید از
and به or تغییر کند.🎯 تمرین
عبارت معادل هرکدام را بنویس:
not (A and B)
not (A or B)
پست ۴۱ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۲
منطق برگشت مقدار در
در Python،
🔹 رفتار
در:
Python ابتدا
اگر
اگر
مثال:
خروجی:
چون
اما:
خروجی:
چون
🔹 رفتار
در:
Python ابتدا
اگر
اگر
مثال:
خروجی:
اما:
خروجی:
🧠 قانون اصلی
یعنی
🔥 مثال کاربردی
میتوانیم یک مقدار پیشفرض تعیین کنیم:
چون
اگر:
خروجی:
⚠️ نکته مهم: Short-Circuit
Python در
مثلاً:
اینجا خطای تقسیم بر صفر نمیگیریم؛ چون
در
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۴۲ از دوره جامع Python 🐍
منطق برگشت مقدار در
and و orدر Python،
and و or همیشه True یا False برنمیگردانند؛ ممکن است خودِ یکی از مقادیر را برگردانند.🔹 رفتار
andدر:
A and B
Python ابتدا
A را بررسی میکند.اگر
A مقدار Falsy باشد، همان A را برمیگرداند و B را بررسی نمیکند.اگر
A مقدار Truthy باشد، B را برمیگرداند.مثال:
print("" and "Python")خروجی:
""
چون
"" خالی است و Falsy محسوب میشود.اما:
print("Hello" and "Python")خروجی:
Python
چون
"Hello" Truthy است، بنابراین مقدار دوم برگردانده میشود.🔹 رفتار
orدر:
A or B
Python ابتدا
A را بررسی میکند.اگر
A مقدار Truthy باشد، همان A را برمیگرداند و B را بررسی نمیکند.اگر
A مقدار Falsy باشد، B را برمیگرداند.مثال:
print("Hello" or "Python")خروجی:
Hello
اما:
print("" or "Python")خروجی:
Python
🧠 قانون اصلی
A and B
اگر A → Falsy باشد: A
اگر A → Truthy باشد: B
A or B
اگر A → Truthy باشد: A
اگر A → Falsy باشد: B
یعنی
and و or در واقع یکی از عملوندها (operands) را برمیگردانند.🔥 مثال کاربردی
میتوانیم یک مقدار پیشفرض تعیین کنیم:
name = ""
result = name or "Unknown"
print(result)
چون
name خالی و Falsy است:Unknown
اگر:
name = "Ali"
result = name or "Unknown"
print(result)
خروجی:
Ali
⚠️ نکته مهم: Short-Circuit
Python در
and و or همیشه عبارت دوم را اجرا نمیکند.مثلاً:
x = False
result = x and (10 / 0)
اینجا خطای تقسیم بر صفر نمیگیریم؛ چون
x از قبل Falsy است و Python دیگر عبارت دوم را بررسی نمیکند.در
or نیز اگر مقدار اول Truthy باشد، عبارت دوم بررسی نمیشود.🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
print("" and "Python")
print("Python" and "Code")
print("" or "Python")
print("Python" or "Code")
print(0 or 100)
print(10 and 20)پست ۴۲ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۳
در Python بعضی مقدارها وقتی در یک شرط بررسی میشوند، مثل
به این دو حالت میگوییم:
🔹 مثال ساده
چون رشته
اما:
چیزی چاپ نمیشود؛ چون رشته خالی Falsy است.
🔹 مقدارهای مهم Falsy
این مقدارها در Python معمولاً Falsy هستند:
مثلاً:
خروجی:
🔹 مقدارهای Truthy
تقریباً هر مقدار دیگری Truthy است.
مثلاً:
هر سه شرط اجرا میشوند.
⚠️ نکته مهم درباره
این مقدار:
یک رشته غیرخالی است؛ بنابراین Truthy است.
خروجی:
اما:
خروجی:
پس:
🔹 ارتباط با
میتوانیم رفتار منطقی یک مقدار را با
خروجی:
🧠 خلاصه
این مفهوم دلیل رفتار بسیاری از شرطها و همچنین
🎯 تمرین
خروجی هر خط را حدس بزن:
پست ۴۳ از دوره جامع Python 🐍
Truthy و Falsy در Pythonدر Python بعضی مقدارها وقتی در یک شرط بررسی میشوند، مثل
True رفتار میکنند و بعضی مثل False.به این دو حالت میگوییم:
Truthy → در شرط مثل True رفتار میکند
Falsy → در شرط مثل False رفتار میکند
🔹 مثال ساده
if "Python":
print("True")
چون رشته
"Python" خالی نیست، Truthy است.اما:
if "":
print("True")
چیزی چاپ نمیشود؛ چون رشته خالی Falsy است.
🔹 مقدارهای مهم Falsy
این مقدارها در Python معمولاً Falsy هستند:
False
None
0
0.0
""
[]
()
{}
set()
مثلاً:
if 0:
print("Yes")
else:
print("No")
خروجی:
No
🔹 مقدارهای Truthy
تقریباً هر مقدار دیگری Truthy است.
مثلاً:
if 10:
print("Yes")
if -5:
print("Negative")
if "Hello":
print("Text")
هر سه شرط اجرا میشوند.
⚠️ نکته مهم درباره
"0"این مقدار:
"0"
یک رشته غیرخالی است؛ بنابراین Truthy است.
if "0":
print("Yes")
خروجی:
Yes
اما:
if 0:
print("Yes")
else:
print("No")
خروجی:
No
پس:
0 → Falsy
"0" → Truthy
🔹 ارتباط با
bool()میتوانیم رفتار منطقی یک مقدار را با
bool() ببینیم:print(bool(0))
print(bool(10))
print(bool(""))
print(bool("Python"))
print(bool([]))
print(bool([1, 2]))
خروجی:
False
True
False
True
False
True
🧠 خلاصه
Falsy:
False, None, 0, 0.0, "", [], (), {}, set()
Truthy:
تقریباً تمام مقدارهای دیگر
این مفهوم دلیل رفتار بسیاری از شرطها و همچنین
and و or در Python است.🎯 تمرین
خروجی هر خط را حدس بزن:
print(bool(0))
print(bool(1))
print(bool(""))
print(bool("0"))
print(bool([]))
print(bool([0]))
print(bool(None))
پست ۴۳ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۴
استفاده از
حالا که
🔹 بررسی مستقیم مقدار
لازم نیست همیشه بنویسیم:
میتوانیم سادهتر بنویسیم:
چون
🔹 رشته خالی
خروجی:
چون
🔹 لیست خالی
خروجی:
اما:
خروجی:
لیست خالی
🔹 عدد صفر
خروجی:
چون
⚠️ نکته مهم
Truthy/Falsy به این معنی نیست که مقدار واقعاً
مثلاً:
خروجی:
خود
🧠 خلاصه
این روش در Python بسیار رایج است و کد را کوتاهتر و خواناتر میکند.
🎯 تمرین
خروجی را حدس بزن:
پست ۴۴ از دوره جامع Python 🐍
استفاده از
Truthy و Falsy در شرطهاحالا که
Truthy و Falsy را میشناسیم، ببینیم چطور در if استفاده میشوند.🔹 بررسی مستقیم مقدار
لازم نیست همیشه بنویسیم:
if name != "":
میتوانیم سادهتر بنویسیم:
name = "Ali"
if name:
print("Name exists")
چون
"Ali" غیرخالی است، Truthy است.🔹 رشته خالی
name = ""
if name:
print("Name exists")
else:
print("Name is empty")
خروجی:
Name is empty
چون
"" Falsy است.🔹 لیست خالی
users = []
if users:
print("Users found")
else:
print("No users")
خروجی:
No users
اما:
users = ["Ali", "Sara"]
if users:
print("Users found")
خروجی:
Users found
لیست خالی
[] Falsy و لیست دارای عضو Truthy است.🔹 عدد صفر
score = 0
if score:
print("Score exists")
else:
print("Score is zero")
خروجی:
Score is zero
چون
0 Falsy است.⚠️ نکته مهم
Truthy/Falsy به این معنی نیست که مقدار واقعاً
True یا False است.مثلاً:
x = 10
print(x)
print(bool(x))
خروجی:
10
True
خود
x برابر 10 است، اما وقتی در یک شرط بررسی شود، مثل True رفتار میکند.🧠 خلاصه
if مقدار:
# اگر مقدار Truthy باشد
else:
# اگر مقدار Falsy باشد
این روش در Python بسیار رایج است و کد را کوتاهتر و خواناتر میکند.
🎯 تمرین
خروجی را حدس بزن:
values = ["", "Python", 0, 5, [], [1]]
for value in values:
if value:
print("Truthy")
else:
print("Falsy")
for را در فصل حلقهها کامل یاد میگیریم.پست ۴۴ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۵
تبدیل مقدارها به
در پستهای قبل با
برای اینکه ببینیم یک مقدار در شرط چگونه ارزیابی میشود، میتوانیم از
🔹 مثال
خروجی:
چون
🔹 رشتهها
خروجی:
رشته غیرخالی → Truthy
رشته خالی → Falsy
🔹 لیستها
خروجی:
لیست دارای عضو → Truthy
لیست خالی → Falsy
🔹
خروجی:
🔹 استفاده در شرط
میتوانیم نتیجه
خروجی:
چون
البته معمولاً نیازی به نوشتن
⚠️ نکته مهم
خروجی:
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۵ از دوره جامع Python 🐍
تبدیل مقدارها به
True و False با bool()در پستهای قبل با
Truthy و Falsy آشنا شدیم.برای اینکه ببینیم یک مقدار در شرط چگونه ارزیابی میشود، میتوانیم از
bool() استفاده کنیم.🔹 مثال
print(bool(10))
print(bool(0))
خروجی:
True
False
چون
10 Truthy و 0 Falsy است.🔹 رشتهها
print(bool("Python"))
print(bool(""))خروجی:
True
False
رشته غیرخالی → Truthy
رشته خالی → Falsy
🔹 لیستها
print(bool([1, 2]))
print(bool([]))
خروجی:
True
False
لیست دارای عضو → Truthy
لیست خالی → Falsy
🔹
Noneprint(bool(None))
خروجی:
False
None نیز Falsy است.🔹 استفاده در شرط
میتوانیم نتیجه
bool() را مستقیماً در if استفاده کنیم:name = "Ali"
if bool(name):
print("Name exists")
else:
print("Name is empty")
خروجی:
Name exists
چون
"Ali" یک رشته غیرخالی و در نتیجه Truthy است.البته معمولاً نیازی به نوشتن
bool() نداریم و این شکل رایجتر است:if name:
print("Name exists")
⚠️ نکته مهم
bool() مقدار اصلی را تغییر نمیدهد؛ فقط نتیجه ارزیابی منطقی آن را برمیگرداند.x = 25
print(x)
print(bool(x))
خروجی:
25
True
🧠 خلاصه
bool(0) → False
bool(10) → True
bool("") → False
bool("Hello") → True
bool([]) → False
bool([1]) → True
bool(None) → False
🎯 تمرین
خروجی را حدس بزن:
print(bool(-1))
print(bool(0.0))
print(bool("0"))
print(bool([]))
print(bool([0]))
print(bool(None))
پست ۴۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۶
ترکیب
حالا میتوانیم رفتار
🔹 با
خروجی:
چون
اگر:
خروجی:
چون
🔹 با
خروجی:
اما اگر:
خروجی:
چون
🔥 مثال کاربردی
اگر کاربر چیزی وارد نکند،
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۶ از دوره جامع Python 🐍
ترکیب
Truthy و Falsy با and و orحالا میتوانیم رفتار
Truthy و Falsy را با and و or ترکیب کنیم.🔹 با
andname = "Ali"
result = name and "User exists"
print(result)
خروجی:
User exists
چون
name غیرخالی و Truthy است، مقدار سمت راست برگردانده میشود.اگر:
name = ""
result = name and "User exists"
print(result)
خروجی:
چون
name خالی و Falsy است، همان مقدار خالی برگردانده میشود.🔹 با
oror معمولاً برای تعیین مقدار پیشفرض کاربرد دارد:name = ""
result = name or "Unknown"
print(result)
خروجی:
Unknown
اما اگر:
name = "Ali"
result = name or "Unknown"
print(result)
خروجی:
Ali
چون
"Ali" Truthy است.🔥 مثال کاربردی
username = input("Username: ")
if username:
print("Username entered")
else:
print("Username is empty")اگر کاربر چیزی وارد نکند،
input() رشتهی خالی "" برمیگرداند و شرط Falsy میشود.🧠 خلاصه
and → اگر مقدار اول Falsy باشد، همان را برمیگرداند.
or → اگر مقدار اول Truthy باشد، همان را برمیگرداند.
🎯 تمرین
خروجی را حدس بزن:
print("" or "Python")
print("Hello" or "Python")
print("" and "Python")
print("Hello" and "Python")پست ۴۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۷
مقایسه
🔹
در
هر دو شرط درست هستند، پس کد اجرا میشود.
اگر یکی از شرطها
چیزی چاپ نمیشود.
🔹
در
چون یکی از شرطها True است، کد اجرا میشود.
فقط وقتی هر دو False باشند، شرط اجرا نمیشود:
🧠 مقایسه سریع
همه شرطها True
حداقل یک شرط True
🔥 مثال واقعی
فرض کنید ورود فقط زمانی مجاز است که کاربر بالای ۱۸ سال باشد و کارت شناسایی داشته باشد:
اما اگر ورود با کارت مخصوص یا رمز عبور امکانپذیر باشد:
⚠️ نکته
مثلاً:
هر دو مقدار Truthy هستند، پس شرط اجرا میشود.
🎯 تمرین
خروجی را حدس بزن:
پست ۴۷ از دوره جامع Python 🐍
مقایسه
and و or در شرطهاand و or هر دو برای ترکیب شرطها استفاده میشوند، اما رفتار متفاوتی دارند.🔹
andدر
and همه شرطها باید True باشند:age = 20
has_id = True
if age >= 18 and has_id:
print("Access granted")
هر دو شرط درست هستند، پس کد اجرا میشود.
اگر یکی از شرطها
False باشد:age = 20
has_id = False
if age >= 18 and has_id:
print("Access granted")
چیزی چاپ نمیشود.
and → همه شرطها باید True باشند
🔹
orدر
or کافی است حداقل یکی از شرطها True باشد:is_admin = False
is_manager = True
if is_admin or is_manager:
print("Access granted")
چون یکی از شرطها True است، کد اجرا میشود.
فقط وقتی هر دو False باشند، شرط اجرا نمیشود:
or → حداقل یکی از شرطها باید True باشد
🧠 مقایسه سریع
andorهمه شرطها True
حداقل یک شرط True
True and True → TrueTrue or False → TrueTrue and False → FalseFalse or False → False🔥 مثال واقعی
فرض کنید ورود فقط زمانی مجاز است که کاربر بالای ۱۸ سال باشد و کارت شناسایی داشته باشد:
if age >= 18 and has_id:
print("Allowed")
اما اگر ورود با کارت مخصوص یا رمز عبور امکانپذیر باشد:
if has_special_card or has_password:
print("Allowed")
⚠️ نکته
and و or در شرطها بر اساس Truthy/Falsy هم عمل میکنند؛ یعنی شرط الزاماً نباید نتیجهی صریح True یا False داشته باشد.مثلاً:
name = "Ali"
if name and "Python":
print("OK")
هر دو مقدار Truthy هستند، پس شرط اجرا میشود.
🎯 تمرین
خروجی را حدس بزن:
a = True
b = False
if a and b:
print("A")
if a or b:
print("B")
پست ۴۷ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۸
توقف کوتاهمدت |
در Python، هنگام استفاده از
Python از Short-Circuit Evaluation استفاده میکند.
🔹 در
اگر مقدار اول Falsy باشد، Python دیگر سمت راست را بررسی نمیکند.
خروجی:
با اینکه
🔹 در
اگر مقدار اول Truthy باشد، Python سمت راست را بررسی نمیکند.
خروجی:
عبارت
🔥 مثال کاربردی
اگر
🧠 قانون ساده
این رفتار هم باعث جلوگیری از اجرای غیرضروری کد میشود و هم در بعضی شرایط از خطا جلوگیری میکند.
🎯 تمرین
کدام عبارت اجرا میشود؟
پست ۴۸ از دوره جامع Python 🐍
توقف کوتاهمدت |
Short-Circuitدر Python، هنگام استفاده از
and و or، همیشه همه عبارتها بررسی نمیشوند.Python از Short-Circuit Evaluation استفاده میکند.
🔹 در
andاگر مقدار اول Falsy باشد، Python دیگر سمت راست را بررسی نمیکند.
x = False
result = x and (10 / 0)
print(result)
خروجی:
False
با اینکه
10 / 0 خطاست، خطایی رخ نمیدهد؛ چون Python قبل از رسیدن به آن متوقف شده است.🔹 در
orاگر مقدار اول Truthy باشد، Python سمت راست را بررسی نمیکند.
name = "Ali"
result = name or (10 / 0)
print(result)
خروجی:
Ali
عبارت
(10 / 0) اصلاً اجرا نمیشود.🔥 مثال کاربردی
username = ""
if username and username.startswith("admin"):
print("Admin user")
اگر
username خالی باشد، شرط اول Falsy است؛ بنابراین Python سراغ startswith() نمیرود.🧠 قانون ساده
A and B
اگر A → Falsy
B بررسی نمیشود.
A or B
اگر A → Truthy
B بررسی نمیشود.
این رفتار هم باعث جلوگیری از اجرای غیرضروری کد میشود و هم در بعضی شرایط از خطا جلوگیری میکند.
🎯 تمرین
کدام عبارت اجرا میشود؟
x = ""
print(x and "Python")
print(x or "Python")
پست ۴۸ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۴۹
الگوهای کاربردی شرطی با
حالا که رفتار
🔹 مقدار پیشفرض با
اگر مقدار وجود نداشته باشد، مقدار جایگزین استفاده میشود:
خروجی:
اگر
خروجی:
🔹 اجرای شرط دوم با
چون
اما:
چیزی چاپ نمیشود؛ چون
⚠️ نکته
این روش برای کدهای کوتاه قابل استفاده است، اما برای منطق پیچیده معمولاً
مثلاً:
خواناتر از:
است.
🧠 خلاصه
🎯 تمرین
خروجی را حدس بزن:
پست ۴۹ از دوره جامع Python 🐍
الگوهای کاربردی شرطی با
and و orحالا که رفتار
and و or را میدانیم، چند الگوی رایج و کاربردی را ببینیم.🔹 مقدار پیشفرض با
orاگر مقدار وجود نداشته باشد، مقدار جایگزین استفاده میشود:
name = ""
display_name = name or "Guest"
print(display_name)
خروجی:
Guest
اگر
name مقدار داشته باشد:name = "Ali"
display_name = name or "Guest"
print(display_name)
خروجی:
Ali
🔹 اجرای شرط دوم با
andis_logged_in = True
is_logged_in and print("Welcome")
چون
is_logged_in مقدار Truthy دارد، print() اجرا میشود.اما:
is_logged_in = False
is_logged_in and print("Welcome")
چیزی چاپ نمیشود؛ چون
and در مقدار Falsy متوقف میشود.⚠️ نکته
این روش برای کدهای کوتاه قابل استفاده است، اما برای منطق پیچیده معمولاً
if خواناتر است.مثلاً:
if is_logged_in:
print("Welcome")
خواناتر از:
is_logged_in and print("Welcome")است.
🧠 خلاصه
or → انتخاب یک مقدار جایگزین
and → اجرای عبارت بعدی در صورت Truthy بودن مقدار قبلی
🎯 تمرین
خروجی را حدس بزن:
name = ""
age = 20
print(name or "Unknown")
print(age and "Adult")
print(0 and "Zero")
پست ۴۹ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۰
شرط کوتاه با
گاهی یک شرط ساده داریم و میتوانیم آن را در یک خط بنویسیم.
🔹 حالت معمول
🔹 حالت کوتاه
همین کد را میتوانیم اینطور بنویسیم:
خروجی:
ساختار کلی:
یعنی:
🔹 مثال دیگر
خروجی:
⚠️ نکته مهم
این ساختار برای شرطهای ساده مناسب است.
اگر شرط پیچیده و طولانی شد، معمولاً
🧠 خلاصه
یعنی اگر
🎯 تمرین
کد زیر چه چیزی چاپ میکند؟
پست ۵۰ از دوره جامع Python 🐍
شرط کوتاه با
if و else | Conditional Expressionگاهی یک شرط ساده داریم و میتوانیم آن را در یک خط بنویسیم.
🔹 حالت معمول
age = 20
if age >= 18:
status = "Adult"
else:
status = "Minor"
print(status)
🔹 حالت کوتاه
همین کد را میتوانیم اینطور بنویسیم:
age = 20
status = "Adult" if age >= 18 else "Minor"
print(status)
خروجی:
Adult
ساختار کلی:
value_if_true if condition else value_if_false
یعنی:
اگر شرط True → مقدار اول
اگر شرط False → مقدار دوم
🔹 مثال دیگر
score = 75
result = "Passed" if score >= 50 else "Failed"
print(result)
خروجی:
Passed
⚠️ نکته مهم
این ساختار برای شرطهای ساده مناسب است.
اگر شرط پیچیده و طولانی شد، معمولاً
if / else معمولی خواناتر است.🧠 خلاصه
x = A if condition else B
یعنی اگر
condition درست باشد، A و در غیر این صورت B در x قرار میگیرد.🎯 تمرین
کد زیر چه چیزی چاپ میکند؟
number = 7
result = "Even" if number % 2 == 0 else "Odd"
print(result)
پست ۵۰ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۵۱
شرطهای تو در تو در Python | Nested
در Python میتوانیم یک
🔹 مثال ساده
ابتدا شرط سن بررسی میشود.
اگر
پس:
🔹 استفاده از
⚠️ نکته مهم
در شرطهای تو در تو، تورفتگی (indentation) بسیار مهم است:
هر
🧠 خلاصه
یعنی یک شرط را فقط در صورتی بررسی کنیم که شرط قبلی برقرار باشد.
🎯 تمرین
کد را طوری کامل کن که فقط اگر سن حداقل ۱۸ بود، رمز عبور بررسی شود:
پست ۵۱ از دوره جامع Python 🐍
شرطهای تو در تو در Python | Nested
ifدر Python میتوانیم یک
if را داخل if دیگری قرار دهیم. به این ساختار شرط تو در تو میگوییم.🔹 مثال ساده
age = 20
has_id = True
if age >= 18:
if has_id:
print("Access granted")
ابتدا شرط سن بررسی میشود.
اگر
age >= 18 درست باشد، شرط دوم بررسی میشود.age >= 18 → True
has_id → True
پس:
Access granted
🔹 استفاده از
elseage = 20
has_id = False
if age >= 18:
if has_id:
print("Access granted")
else:
print("ID required")
else:
print("Too young")
⚠️ نکته مهم
در شرطهای تو در تو، تورفتگی (indentation) بسیار مهم است:
if condition:
if another_condition:
print("OK")
هر
if جدید باید در سطح درست قرار بگیرد.🧠 خلاصه
if
└── if
└── code
یعنی یک شرط را فقط در صورتی بررسی کنیم که شرط قبلی برقرار باشد.
🎯 تمرین
کد را طوری کامل کن که فقط اگر سن حداقل ۱۸ بود، رمز عبور بررسی شود:
age = 20
password = "1234"
if age >= 18:
# شرط رمز عبور
پست ۵۱ از دوره جامع Python 🐍
🐍 آموزش جامع 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 🐍