2️⃣ مراقب اولویت عملگرها باش!
عملگرهای منطقی (and, or, not) اولویتهای متفاوتی دارن. and از or قویتره (اول اجرا میشه).
💥 ترفند: برای جلوگیری از اشتباه، همیشه از پرانتز () برای مشخص کردن ترتیب شرطها استفاده کن.
❌ مثال اشتباه:
if age > 18 and has_license or has_permit:
print("Mitoni ranandegi koni! 🚗")
❗️ اینجا ممکنه پایتون شرط رو اشتباه تفسیر کنه (چون and اول اجرا میشه).
✅ مثال درست:
if (age > 18 and has_license) or has_permit:
print("Mitoni ranandegi koni! 🚗")
💡 نکته: اگه شرط پیچیدهست، بهتره اونو به متغیرهای بولین جدا کنی:
can_drive = age > 18 and has_license
has_access = can_drive or has_permit
if has_access:
print("Mitoni ranandegi koni! 🚗")
💯 @PythonForYou 🧑💻👩💻
3️⃣ استفاده از عملگر in برای سادهسازی
به جای چندتا شرط با or, از عملگر in برای بررسی وجود یه مقدار تو لیست، رشته، یا دیکشنری استفاده کن.
❌ مثال طولانی:
fruit = "sib"
if fruit == "sib" or fruit == "moz" or fruit == "portoghal":
print("In mive to list hast! 🍎")
✅ مثال کوتاه با in:
fruit = "sib"
if fruit in ["sib", "moz", "portoghal"]:
print("In mive to list hast! 🍎")
💡 نکته:
- دقت کن که in برای رشتهها هم کار میکنه:
if "python" in "I love python programming":
print("Kalame python to jomle hast! 🐍")
- برای دیکشنری، in کلیدها رو چک میکنه:
user = {"name": "Ali", "age": 25}
if "name" in user:
print("Key name vojood dare! 🔑")
💯 @PythonForYou 🧑💻👩💻
4️⃣ شرطهای ترنری (Ternary Operator)
برای شرطهای ساده که فقط دو حالت دارن، به جای if-else از ترنری استفاده کن تا کدت کوتاهتر بشه.
❌ مثال معمولی:
if age >= 18:
status = "bozorgsal"
else:
status = "nojavoon"
✅ مثال ترنری:
status = "bozorgsal" if age >= 18 else "nojavoon"
💡 نکته:
ترنری فقط برای شرطهای ساده مناسبه. اگه شرط پیچیدهست، از if-else معمولی استفاده کن تا کد خواناتر بمونه.
میتونی ترنری رو تو لیستها یا حلقهها هم استفاده کنی:
labels = ["bozorgsal" if age >= 18 else "nojavoon" for age in ages]
💯 @PythonForYou 🧑💻👩💻
5️⃣ مراقب تورفتگی (Indentation) باش!
تو پایتون، تورفتگی (معمولاً 4 فاصله یا 1 تب) خیلی مهمه. اگه تورفتگی اشتباه باشه، کدت ارور میده یا رفتار اشتباه داره.
❌ مثال اشتباه:
if age >= 18:
print("Mitoni ranandegi koni!") # SyntaxError: expected an indented block
✅ مثال درست:
if age >= 18:
print("Mitoni ranandegi koni! 🚗")
💡 ترفند:
- همیشه از فاصله (space) به جای تب استفاده کن، چون تب تو بعضی ویرایشگرها مشکل ایجاد میکنه.
- تو ویرایشگرهایی مثل VS Code، تنظیم کن که تب بهطور خودکار به 4 فاصله تبدیل بشه.
💯 @PythonForYou 🧑💻👩💻
6️⃣ اجتناب از شرطهای پیچیده و تودرتو
شرطهای خیلی تودرتو (مثل if داخل if داخل if) کد رو سختخوان میکنه.
❌ مثال بد:
if age >= 18:
if has_license:
if car_available:
print("Mitoni ranandegi koni! 🚗")
else:
print("Mashin nadari! 🚫")
else:
print("Govahinama nadari! 📝")
else:
print("Koochiki! 😊")
✅ ترفند:
به جای تودرتو کردن، شرطها رو با and ترکیب کن یا از تابع جدا استفاده کن:
if age >= 18 and has_license and car_available:
print("Mitoni ranandegi koni! 🚗")
elif age >= 18 and not has_license:
print("Govahinama nadari! 📝")
elif age >= 18 and not car_available:
print("Mashin nadari! 🚫")
else:
print("Koochiki! 😊")
💡 نکته:
اگه شرطها خیلی پیچیده شدن، منطق رو به یه تابع منتقل کن:
def can_drive(age, has_license, car_available):
if age < 18:
return "Koochiki! 😊"
if not has_license:
return "Govahinama nadari! 📝"
if not car_available:
return "Mashin nadari! 🚫"
return "Mitoni ranandegi koni! 🚗"
print(can_drive(20, True, True))
💯 @PythonForYou 🧑💻👩💻
7️⃣ بررسی مقادیر None و خالی
وقتی با متغیرهایی کار میکنی که ممکنه None یا خالی باشن (مثل لیست، رشته، یا دیکشنری)، مراقب باش که ارور نگیری.
❌ مثال خطرناک:
data = None
if data["key"]: # TypeError: 'NoneType' object is not subscriptable
print("Data vojood dare!")
✅ مثال درست:
data = None
if data is not None and "key" in data:
print("Data vojood dare!")
else:
print("Data khalie ya None ast! 😕")
💡 ترفند:
برای بررسی خالی بودن لیست، رشته، یا دیکشنری، از if data استفاده کن:
my_list = []
if not my_list:
print("List khalie! 📭")
💯 @PythonForYou 🧑💻👩💻
8️⃣ استفاده از is به جای == برای None
برای مقایسه با None، از عملگر is به جای == استفاده کن.
❓ چرا؟ چون is بررسی میکنه که متغیر دقیقاً None باشه، نه یه مقدار مشابه.
✅ مثال:
value = None
if value is None:
print("Value None ast! 🚫")
else:
print("Value chizi digast! ✅")
💡 نکته: برای مقایسه مقادیر بولین یا اعداد، از == استفاده کن، اما برای None همیشه is بهتره.
💯 @PythonForYou 🧑💻👩💻
9️⃣ شرطهای چندگانه با all و any
اگه چندتا شرط داری، به جای نوشتن and یا or طولانی، از توابع داخلی all و any استفاده کن.
➡️ all:
اگه همه شرطها درست باشن، True برمیگردونه.
➡️ any:
اگه حداقل یکی از شرطها درست باشه، True برمیگردونه.
🔸 مثال با and:
if score1 >= 50 and score2 >= 50 and score3 >= 50:
print("Hame nomreha ghaboolan! 🌟")
🔹 مثال با all:
scores = [score1, score2, score3]
if all(score >= 50 for score in scores):
print("Hame nomreha ghaboolan! 🌟")
🔸 مثال با any:
if any(score >= 90 for score in scores):
print("Yek nomre A dari! 🎉")
💡 نکته: all و any کد رو تمیزتر و خواناتر میکنن، مخصوصاً وقتی تعداد شرطها زیاده.
💯 @PythonForYou 🧑💻👩💻
🔟 دیباگ کردن شرطها
اگه شرطهات درست کار نمیکنن، با چاپ مقادیر دیباگ کن:
age = 17
has_license = False
print(f"age: {age}, has_license: {has_license}") # check kardane meghdarha
if age >= 18 and has_license:
print("Mitoni ranandegi koni! 🚗")
else:
print("Nemitooni ranandegi koni! 😕")
💡 ترفند:
از assert برای چک کردن شرطها تو کد استفاده کن:
assert age >= 0, "Sen nabayad manfi bashe!"
💯 @PythonForYou 🧑💻👩💻
📢 10 مثال کاربردی و جذاب از ساختارهای تصمیمگیری در پایتون 🐍
تو این پست، 10 تا مثال واقعی و کاربردی از ساختارهای if, elif, else براتون آماده کردیم که تو پروژههای واقعی خیلی به کارتون میاد! 😎
از بررسی سن تا محاسبه تخفیف و تحلیل داده، همهچیز اینجاست. بریم ببینیم! 🚀
1️⃣ بررسی دسترسی کاربر به سیستم
💯 کاربرد: چک کردن اینکه کاربر میتونه وارد سیستم بشه یا نه.
username = "ali"
password = "1234"
if username == "ali" and password == "1234":
print("Khosh omadi, Ali! ✅")
else:
print("Username ya password ghalate! 🚫")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
2️⃣ محاسبه تخفیف فروشگاه
💯 کاربرد: اعمال تخفیف بر اساس مبلغ خرید.
purchase_amount = 150000
if purchase_amount > 200000:
discount = purchase_amount * 0.2
print(f"Takhfif: {discount} toman")
elif purchase_amount > 100000:
discount = purchase_amount * 0.1
print(f"Takhfif: {discount} toman")
else:
print("Takhfifi nadari! 🛒")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
3️⃣ تشخیص نوع روز (تعطیل یا کاری)
💯 کاربرد: بررسی روز هفته برای برنامهریزی.
day = "jom'e"
if day in ["shanbe", "jom'e"]:
print("Emrooz tatil ast! 😎")
else:
print("Emrooz rooze kari ast! 💼")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
4️⃣ بررسی سلامت رمز عبور
💯 کاربرد: چک کردن اینکه رمز عبور قوی هست یا نه.
password = "Pass123"
if len(password) >= 8 and any(c.isupper() for c in password) and any(c.isdigit() for c in password):
print("Ramz ghavi ast! 🔒")
else:
print("Ramz za'ife, lotfan behtar kon! ⚠️")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
5️⃣ پیشنهاد لباس بر اساس دمای هوا
💯 کاربرد: توصیه به کاربر بر اساس دمای هوا.
temperature = 10
if temperature > 25:
print("T-shirt bepoosh! ☀️")
elif temperature > 15:
print("Polo bepoosh! 😊")
elif temperature > 5:
print("Jacket bepoosh! 🧥")
else:
print("Khatere, koot bepoosh! 🧣")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
6️⃣ بررسی موجودی انبار
💯 کاربرد: مدیریت انبار فروشگاه یا شرکت.
stock = 5
if stock == 0:
print("Mojoodi tamoom shod! 🚫")
elif stock <= 10:
print(f"Hoshdar: {stock} ta mojoodi baghi mande! ⚠️")
else:
print("Mojoodi kafi ast! ✅")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
7️⃣ دستهبندی نمره امتحان
💯 کاربرد: دادن رتبه به دانشآموز بر اساس نمره.
score = 92
if score >= 90:
print("Nomre A: Aali! 🌟")
elif score >= 80:
print("Nomre B: Khoob! 👍")
elif score >= 70:
print("Nomre C: Ghabool! 😊")
else:
print("Mardood shodi, talash kon! 😅")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
8️⃣ بررسی سن برای دسترسی به محتوا
💯 کاربرد: محدود کردن دسترسی به فیلم یا بازی بر اساس سن.
age = 16
has_parent_permission = False
if age >= 18 or (age >= 13 and has_parent_permission):
print("Mitooni film ro bebini! 🎬")
else:
print("Dastresi nadari! 🚫")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
9️⃣ تشخیص عدد زوج یا فرد
💯 کاربرد: بررسی ویژگیهای عدد در مسائل ریاضی.
number = 42
result = "zoj" if number % 2 == 0 else "fard"
print(f"Adad {number} {result} ast! 🔢")
⬟〰️⬟〰️⬟〰️⬟〰️⬟
🔟 اعتبارسنجی ایمیل ساده
💯 کاربرد: چک کردن فرمت اولیه ایمیل کاربر.
email = "ali@example.com"
if "@" in email and "." in email and len(email) > 5:
print("Email format doroste! 📧")
else:
print("Email ghalate, dobare vared kon! ❌")
💯 @PythonForYou 🧑💻👩💻
📌 برعکس کردن رشته در پایتون با ترکیب ()reversed و ()join
اگر بخوای یک رشته رو در پایتون بهصورت برعکس نمایش بدی، میتونی از ترکیب دو تابع ()reversed و ()join استفاده کنی:
text = "Python"
reversed_text = ''.join(reversed(text))
print(reversed_text) # خروجی: nohtyP
✅ نکات مهم:
🔹 این ()reversed یک iterator برمیگردونه که حروف رشته رو بهصورت برعکس تولید میکنه.
🔹 با ()join میتونی این حروف رو بههم بچسبونی و رشته نهایی بسازی.
🔹 این روش وقتی مفیده که بخوای کنترل بیشتری روی روند کار داشته باشی (مثلاً حروف خاص رو فیلتر کنی یا جداکننده بذاری).
مثال حرفهایتر:
text = "Python"
reversed_with_dash = '-'.join(reversed(text))
print(reversed_with_dash) # خروجی: n-o-h-t-y-P
💯 @PythonForYou 🧑💻👩💻
🔥 تورفتگی تو پایتون و شرطهای if: یه راز مهم! 🐍
تازه با if تو پایتون آشنا شدید؟ پس این پست برای شماست! یه قانون طلایی تو پایتون هست که باید یادتون بمونه: مراقب تورفتگی باشید! 😅
💡 تورفتگی چیه؟
تورفتگی یعنی فاصلهای که اول خط میذارید تا به پایتون بگید کدوم خطها زیر یه شرط if اجرا بشن. مثلاً مثل نقشهایه که به پایتون میگه: "هی، این خطها مال این شرطن!" 🗺
✅ یه مثال ساده:
if 5 > 3:
print("آره، 5 بزرگتر از 3ه!")
اینجا خط دوم باید یه کم (معمولاً 4 تا فاصله) از اول خط فاصله داشته باشه تا پایتون بفهمه زیر شرط ifه.
❌ اگه تورفتگی رو خراب کنیم چی میشه؟
اگه فاصله نذارید یا اشتباه فاصله بذارید، پایتون قاطی میکنه و ارور IndentationError میده! 😵 مثلاً:
if 5 > 3:
print("اوه، من خراب شدم!")
این کد کار نمیکنه چون خط دوم تورفتگی نداره.
🌟 نکتههای باحال برای تورفتگی درست:
همیشه از 4 فاصله (space) برای تورفتگی استفاده کنید.
اگه چند خط زیر if دارید، همه باید یه اندازه فاصله داشته باشن:
if 10 > 5:
print("10 بزرگتره!")
print("عالیه!")
فاصله و تب (Tab) رو قاطی نکنید! پایتون اینو دوست نداره. 🚫
💯 @PythonForYou 🧑💻👩💻