🏆 پروژه نهایی: مدیریت مخاطبین
🎯 هدف این پروژه: ساخت یک برنامه کامل مدیریت مخاطبین با استفاده از تمام مباحث دوره
سلام دوست عزیز! 👋
به پروژه نهایی دوره خوش آمدی! 🎉 توی این پروژه، همه چیزهایی که توی ۷ درس گذشته یاد گرفتی رو کنار هم میذاریم و یه برنامه کاربردی کامل میسازیم.
توی این پروژه، از این مباحث استفاده میکنیم:
- ✅ متغیرها و انواع داده برای ذخیره اطلاعات مخاطبین
- ✅ لیستها برای نگهداری چندین مخاطب
- ✅ شرطها (if-elif-else) برای تصمیمگیری
- ✅ حلقهها (for و while) برای پیمایش و تکرار
- ✅ توابع برای سازماندهی کد
- ✅ ورودی و خروجی برای ارتباط با کاربر
📋 بخش ۱: توضیح پروژه
برنامهای مینویسیم که به کاربر اجازه بده:
- مخاطب جدید اضافه کنه (نام، شماره تلفن، ایمیل)
- لیست همه مخاطبین رو ببینه
- مخاطب رو جستجو کنه (با نام)
- مخاطب رو ویرایش کنه
- مخاطب رو حذف کنه
- از برنامه خارج بشه
این برنامه شبیه یه دفترچه تلفن ساده هست که توی زندگی روزمره میتونیم ازش استفاده کنیم.
🔧 بخش ۲: کد پروژه
بیا با هم کد پروژه رو خط به خط بررسی کنیم:
مدیریت مخاطبین
PYTHON
v3.12
🔒 RAW
# ============================================
# پروژه: مدیریت مخاطبین
# ============================================
# لیست مخاطبین (هر مخاطب یک دیکشنری است)
contacts = []
# ============================================
# توابع کمکی
# ============================================
def show_menu():
"""نمایش منوی اصلی"""
print("\n" + "=" * 50)
print("📇 مدیریت مخاطبین")
print("=" * 50)
print("1. نمایش همه مخاطبین")
print("2. افزودن مخاطب جدید")
print("3. جستجوی مخاطب")
print("4. ویرایش مخاطب")
print("5. حذف مخاطب")
print("6. خروج")
print("=" * 50)
def display_contact(contact, index = None):
"""نمایش یک مخاطب"""
if index is not None:
print(f"\n📌 مخاطب شماره {index + 1}:")
print(f" 👤 نام: {contact["name"]}")
print(f" 📞 تلفن: {contact["phone"]}")
print(f" 📧 ایمیل: {contact["email"]}")
def find_contact_by_name(name):
"""پیدا کردن مخاطب با نام"""
results = []
for contact in contacts:
if name.lower() in contact["name"].lower():
results.append(contact)
return results
# ============================================
# توابع اصلی
# ============================================
def show_all_contacts():
"""نمایش همه مخاطبین"""
if not contacts:
print("\n📭 لیست مخاطبین خالی است!")
return
print("\n📋 لیست مخاطبین:")
print("-" * 40)
for i, contact in enumerate(contacts):
display_contact(contact, i)
print("-" * 40)
print(f"📊 مجموع مخاطبین: {len(contacts)} نفر")
def add_contact():
"""افزودن مخاطب جدید"""
print("\n➕ افزودن مخاطب جدید")
print("-" * 30)
name = input("نام و نام خانوادگی: ").strip()
if not name:
print("❌ نام نمیتواند خالی باشد!")
return
phone = input("شماره تلفن: ").strip()
if not phone:
print("❌ شماره تلفن نمیتواند خالی باشد!")
return
email = input("ایمیل: ").strip()
# ایجاد مخاطب جدید
new_contact = {
"name": name,
"phone": phone,
"email": email if email else "-"
}
contacts.append(new_contact)
print(f"✅ مخاطب '{name}' با موفقیت افزوده شد!")
def search_contact():
"""جستجوی مخاطب با نام"""
if not contacts:
print("\n📭 لیست مخاطبین خالی است!")
return
name = input("\n🔍 نام مورد نظر برای جستجو: ").strip()
if not name:
print("❌ لطفاً نام را وارد کنید!")
return
results = find_contact_by_name(name)
if not results:
print(f"❌ هیچ مخاطبی با نام '{name}' پیدا نشد.")
return
print(f"\n🔍 نتایج جستجو برای '{name}' (" + str(len(results)) + " مورد):")
print("-" * 40)
for contact in results:
display_contact(contact)
print()
def edit_contact():
"""ویرایش مخاطب"""
if not contacts:
print("\n📭 لیست مخاطبین خالی است!")
return
show_all_contacts()
try:
index = int(input("\n🔢 شماره مخاطب مورد نظر برای ویرایش: ")) - 1
except ValueError:
print("❌ لطفاً یک عدد معتبر وارد کنید!")
return
if index < 0 or index >= len(contacts):
print("❌ شماره مخاطب معتبر نیست!")
return
contact = contacts[index]
print("\n📝 اطلاعات فعلی:")
display_contact(contact)
print("\n📝 اطلاعات جدید را وارد کنید (برای عدم تغییر، Enter بزنید):")
new_name = input("نام جدید: ").strip()
new_phone = input("تلفن جدید: ").strip()
new_email = input("ایمیل جدید: ").strip()
if new_name:
contact["name"] = new_name
if new_phone:
contact["phone"] = new_phone
if new_email:
contact["email"] = new_email
print("✅ مخاطب با موفقیت ویرایش شد!")
def delete_contact():
"""حذف مخاطب"""
if not contacts:
print("\n📭 لیست مخاطبین خالی است!")
return
show_all_contacts()
try:
index = int(input("\n🔢 شماره مخاطب مورد نظر برای حذف: ")) - 1
except ValueError:
print("❌ لطفاً یک عدد معتبر وارد کنید!")
return
if index < 0 or index >= len(contacts):
print("❌ شماره مخاطب معتبر نیست!")
return
contact = contacts[index]
display_contact(contact)
confirm = input("\n❓ آیا از حذف این مخاطب مطمئن هستید؟ (y/n): ")
if confirm.lower() == "y":
deleted = contacts.pop(index)
print(f"✅ مخاطب '{deleted["name"]}' با موفقیت حذف شد!")
else:
print("❌ عملیات حذف لغو شد.")
# ============================================
# برنامه اصلی
# ============================================
def main():
"""برنامه اصلی"""
print("\n👋 به برنامه مدیریت مخاطبین خوش آمدید!")
while True:
show_menu()
choice = input("\n🎯 انتخاب خود را وارد کنید (1-6): ")
if choice == "1":
show_all_contacts()
elif choice == "2":
add_contact()
elif choice == "3":
search_contact()
elif choice == "4":
edit_contact()
elif choice == "5":
delete_contact()
elif choice == "6":
print("\n🙏 از اینکه از برنامه مدیریت مخاطبین استفاده کردید، متشکریم!")
print("✨ به امید دیدار دوباره!")
break
else:
print("❌ انتخاب نامعتبر! لطفاً یک عدد بین 1 تا 6 وارد کنید.")
# اجرای برنامه
if __name__ == "__main__":
main()
📖 بخش ۳: توضیح کد پروژه
بیا با هم بررسی کنیم که توی این پروژه از چه مباحثی استفاده کردیم:
۱. لیست مخاطبین
برای ذخیره مخاطبین از یه لیست استفاده کردیم. هر مخاطب بهصورت یه دیکشنری با سه کلید name، phone و email ذخیره میشه.
۲. توابع
همه عملیاتها رو توی توابع جداگانه قرار دادیم:
show_menu()– نمایش منوdisplay_contact()– نمایش یک مخاطبfind_contact_by_name()– جستجو با نامshow_all_contacts()– نمایش همهadd_contact()– افزودن مخاطبsearch_contact()– جستجوedit_contact()– ویرایشdelete_contact()– حذف
۳. شرطها و حلقهها
از if-elif-else برای تصمیمگیری بر اساس انتخاب کاربر و از while True برای اجرای مداوم برنامه تا زمان خروج استفاده کردیم.
۴. ورودی و خروجی
با input() از کاربر اطلاعات میگیریم و با print() نتایج رو نمایش میدیم.
🎯 بخش ۴: تمرین برای شما
📝 تمرین: بهبود پروژه
قابلیتهای زیر رو به پروژه اضافه کنید:
- 📁 ذخیره مخاطبین در فایل: مخاطبین رو توی یه فایل ذخیره کن تا بعد از بستن برنامه از بین نرن.
- 🔢 شمارهگذاری خودکار: به هر مخاطب یه شناسه یکتا (ID) بده.
- 📱 اعتبارسنجی شماره تلفن: بررسی کن که شماره تلفن حداقل ۱۱ رقم باشه.
- 📧 اعتبارسنجی ایمیل: بررسی کن که ایمیل شامل
@باشه.
🧩 جمعبندی دوره
تبریک میگم! 🎉 تو یک دوره کامل رو با موفقیت به پایان رسوندی. بیا با هم مرور کنیم که چی یاد گرفتی:
📚 خلاصه درسهای دوره
| درس | عنوان | مباحث اصلی |
|---|---|---|
| ۱ | اولین قدمها | نصب پایتون، Hello World |
| ۲ | متغیرها | متغیرها، انواع داده، input() |
| ۳ | محاسبات ریاضی | عملگرهای ریاضی، مقایسهای، منطقی |
| ۴ | شرطها | if, elif, else |
| ۵ | حلقهها | for, while, break, continue |
| ۶ | لیستها | لیستها، append, remove |
| ۷ | توابع | def, return, پارامترها |
توی این دوره، پایههای پایتون رو یاد گرفتی. حالا میتونی به سراغ مباحث پیشرفتهتر بری:
- 📚 برنامهنویسی شیگرا (OOP) – کلاسها و اشیاء
- 📊 تحلیل داده – با کتابخانههای pandas و numpy
- 🌐 توسعه وب – با جنگو یا فلاسک
- 🤖 هوش مصنوعی – با کتابخانههای یادگیری ماشین




نظر خود را بنویسید
با ثبت نظر، به بهبود محتوای ما کمک کنید