🐍 آموزش جامع Python — پست ۳۵
چند شرط با
در پست قبل با
میتوانیم چند
🔹 مثال
مثلاً اگر کاربر وارد کند:
خروجی:
⚠️ ترتیب شرطها مهم است
Python شرطها را از بالا به پایین بررسی میکند.
به محض اینکه یک شرط
پس معمولاً شرطهای بزرگتر را قبل از شرطهای کوچکتر قرار میدهیم.
🔹 یک مثال سادهتر
🎯 تمرین
برنامهای بنویس که عدد را از کاربر بگیرد و مشخص کند:
پست ۳۵ از دوره جامع Python 🐍
چند شرط با
elifدر پست قبل با
elif آشنا شدیم.میتوانیم چند
elif پشت سر هم داشته باشیم تا حالتهای مختلف را بررسی کنیم.🔹 مثال
score = int(input("Enter your score: "))
if score >= 90:
print("Excellent")
elif score >= 75:
print("Very Good")
elif score >= 50:
print("Passed")
else:
print("Failed")مثلاً اگر کاربر وارد کند:
Enter your score: 80
خروجی:
Very Good
⚠️ ترتیب شرطها مهم است
Python شرطها را از بالا به پایین بررسی میکند.
به محض اینکه یک شرط
True باشد، همان بلوک اجرا میشود و بقیه بررسی نمیشوند.پس معمولاً شرطهای بزرگتر را قبل از شرطهای کوچکتر قرار میدهیم.
🔹 یک مثال سادهتر
number = int(input("Enter a number: "))
if number > 0:
print("Positive")
elif number < 0:
print("Negative")
else:
print("Zero")🎯 تمرین
برنامهای بنویس که عدد را از کاربر بگیرد و مشخص کند:
مثبت → Positive
منفی → Negative
صفر → Zero
پست ۳۵ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۶
شرطهای ترکیبی با
گاهی برای تصمیمگیری به چند شرط همزمان نیاز داریم.
🔹 استفاده از
با
برای ورود، هر دو شرط باید درست باشند.
🔹 استفاده از
با
⚠️ نکته مهم
برای ترکیب چند شرط میتوانیم از پرانتز
🎯 تمرین
برنامهای بنویس که سن و نمره را از کاربر بگیرد و فقط وقتی هر دو شرط برقرار بودند،
پست ۳۶ از دوره جامع Python 🐍
شرطهای ترکیبی با
and و orگاهی برای تصمیمگیری به چند شرط همزمان نیاز داریم.
🔹 استفاده از
andبا
and باید همه شرطها True باشند:age = int(input("Enter your age: "))
has_id = input("Do you have an ID? ")
if age >= 18 and has_id == "yes":
print("Access granted")
else:
print("Access denied")برای ورود، هر دو شرط باید درست باشند.
🔹 استفاده از
orبا
or کافی است حداقل یکی از شرطها True باشد:username = input("Enter username: ")
if username == "admin" or username == "root":
print("Valid user")
else:
print("Unknown user")⚠️ نکته مهم
and → همه شرطها باید درست باشند.or → حداقل یک شرط باید درست باشد.برای ترکیب چند شرط میتوانیم از پرانتز
() استفاده کنیم:if (age >= 18 and has_id == "yes") or username == "admin":
print("Access granted")
🎯 تمرین
برنامهای بنویس که سن و نمره را از کاربر بگیرد و فقط وقتی هر دو شرط برقرار بودند،
Accepted را چاپ کند:سن حداقل 18
نمره حداقل 50
پست ۳۶ از دوره جامع Python 🐍
🐍 آموزش جامع Python — پست ۳۷
شرطهای تو در تو | Nested
گاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری درست باشد.
در این حالت میتوانیم یک
🔹 مثال
اینجا ابتدا سن بررسی میشود.
اگر سن حداقل ۱۸ باشد، شرط داشتن کارت شناسایی بررسی میشود.
⚠️ نکته مهم
هر
علامت
🎯 تمرین
برنامهای بنویس که سن و رمز عبور را از کاربر بگیرد.
فقط اگر:
باشد، عبارت زیر چاپ شود:
پست ۳۷ از دوره جامع Python 🐍
شرطهای تو در تو | Nested
ifگاهی یک شرط فقط زمانی باید بررسی شود که شرط دیگری درست باشد.
در این حالت میتوانیم یک
if را داخل if دیگر قرار دهیم.🔹 مثال
age = int(input("Enter your age: "))
if age >= 18:
has_id = input("Do you have an ID? ")
if has_id == "yes":
print("Access granted")
else:
print("ID required")
else:
print("You are under 18")اینجا ابتدا سن بررسی میشود.
اگر سن حداقل ۱۸ باشد، شرط داشتن کارت شناسایی بررسی میشود.
⚠️ نکته مهم
هر
if داخلی باید تورفتگی (indentation) مناسب داشته باشد:if condition:
if another_condition:
print("...")
علامت
: بعد از هر if ضروری است.🎯 تمرین
برنامهای بنویس که سن و رمز عبور را از کاربر بگیرد.
فقط اگر:
سن >= 18
رمز عبور == "1234"
باشد، عبارت زیر چاپ شود:
Login successful
پست ۳۷ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۳۸
منطق چند شرط با
گاهی یک تصمیم به دو شرط وابسته است.
برای ترکیب شرطها از
🔹
مثلاً برای ورود، هم سن باید حداقل ۱۸ باشد و هم رمز درست باشد:
دو شرط داریم:
چون هر دو
پس ورود انجام میشود.
اگر یکی از آنها
بنابراین در
🔹
مثلاً کاربر میتواند
اگر:
داریم:
پس شرط اجرا میشود.
در
بنابراین:
🔥 مقایسه مستقیم
فرض کنیم:
با
نتیجه:
چون هر دو شرط
اما با
نتیجه:
چون حداقل یکی
پس:
🔹 پرانتز
پرانتز مشخص میکند کدام بخش از شرط با هم گروهبندی شود.
مثلاً:
طبق اولویت عملگرها،
اما:
ابتدا پرانتز:
پس:
⚠️ پرانتز میتواند منطق و نتیجه شرط را تغییر دهد.
🧠 خلاصه
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
پست ۳۸ از دوره جامع Python 🐍
منطق چند شرط با
and و orگاهی یک تصمیم به دو شرط وابسته است.
برای ترکیب شرطها از
and و or استفاده میکنیم.🔹
and | هر دو شرط باید درست باشندمثلاً برای ورود، هم سن باید حداقل ۱۸ باشد و هم رمز درست باشد:
age = 20
password = "1234"
if age >= 18 and password == "1234":
print("Login successful")
دو شرط داریم:
age >= 18 → True
password == "1234" → True
چون هر دو
True هستند:True and True → True
پس ورود انجام میشود.
اگر یکی از آنها
False باشد:True and False → False
False and True → False
False and False → False
بنابراین در
and:همه شرطها باید
Trueباشند.
🔹
or | حداقل یکی از شرطها کافی استمثلاً کاربر میتواند
admin یا root باشد:username = input("Enter username: ")
if username == "admin" or username == "root":
print("Valid username")
else:
print("Invalid username")اگر:
username == "admin" → True
username == "root" → False
داریم:
True or False → True
پس شرط اجرا میشود.
در
or:True or True → True
True or False → True
False or True → True
False or False → False
بنابراین:
فقط وقتی همه شرطها
Falseباشند،
orنتیجه
Falseمیدهد.
🔥 مقایسه مستقیم
فرض کنیم:
A = True
B = False
با
and:print(A and B)
نتیجه:
False
چون هر دو شرط
True نیستند.اما با
or:print(A or B)
نتیجه:
True
چون حداقل یکی
True است.پس:
A = True
B = False
A and B → False
A or B → True
🔹 پرانتز
() چه کاری انجام میدهد؟پرانتز مشخص میکند کدام بخش از شرط با هم گروهبندی شود.
مثلاً:
A = True
B = False
C = False
print(A or B and C)
طبق اولویت عملگرها،
and قبل از or بررسی میشود:A or (B and C)
True or (False and False)
True
اما:
print((A or B) and C)
ابتدا پرانتز:
(A or B) and C
(True or False) and False
True and False
False
پس:
A or B and C → True
(A or B) and C → False
⚠️ پرانتز میتواند منطق و نتیجه شرط را تغییر دهد.
🧠 خلاصه
and → همه شرطها باید True باشند
or → حداقل یک شرط باید True باشد
() → شرطها را گروهبندی و ترتیب را مشخص میکند
🎯 تمرین
خروجی هر خط را قبل از اجرا حدس بزن:
A = True
B = False
print(A and B)
print(A or B)
print((A or B) and B)
print(A or (B and B))
پست ۳۸ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع Python — پست ۳۹
عملگر
با
یعنی:
🔹 مثال ساده
خروجی:
چون:
🔹 استفاده در
چون کاربر وارد نشده،
🔹 جدول
شرط
⚠️ نکته مهم
مثلاً:
ابتدا:
سپس:
🔹 ترکیب با
پرانتز باعث میشود
🎯 تمرین
خروجی را قبل از اجرا حدس بزن:
پست ۳۹ از دوره جامع Python 🐍
عملگر
not | برعکس کردن شرطبا
not نتیجه منطقی یک شرط را معکوس میکنیم.یعنی:
True → False
False → True
🔹 مثال ساده
is_admin = False
print(not is_admin)
خروجی:
True
چون:
is_admin → False
not False → True
🔹 استفاده در
ifis_logged_in = False
if not is_logged_in:
print("Please login")
چون کاربر وارد نشده،
not مقدار False را به True تبدیل میکند.🔹 جدول
notشرط
not شرطTrueFalseFalseTrue⚠️ نکته مهم
not روی نتیجه عبارت عمل میکند.مثلاً:
age = 15
print(not age >= 18)
ابتدا:
age >= 18 → False
سپس:
not False → True
🔹 ترکیب با
and و orage = 20
has_id = False
if not (age >= 18 and has_id):
print("Access denied")
پرانتز باعث میشود
not روی کل عبارت اعمال شود:(age >= 18 and has_id)
(True and False)
False
not False
True
🎯 تمرین
خروجی را قبل از اجرا حدس بزن:
A = True
B = False
print(not A)
print(not B)
print(not (A and B))
print(not (A or B))
پست ۳۹ از دوره جامع Python 🐍
👍1
🐍 آموزش جامع 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 🐍