Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
پارت ۱۵: پروژه ۱ - مدیریت مخاطبین 📞📝

در این پارت، یک پروژه عملی برای مدیریت مخاطبین را پیاده‌سازی می‌کنیم. هدف این پروژه آشنایی با مفاهیم پایه‌ای مانند کار با فایل‌ها، دیکشنری‌ها، و توابع است.

۱. تعریف ساختار پروژه
این پروژه شامل قابلیت‌های زیر خواهد بود:
- اضافه کردن مخاطب جدید
- نمایش لیست مخاطبین
- جستجو در مخاطبین
- حذف مخاطب
- ذخیره و بازیابی مخاطبین در فایل

۲. ایجاد فایل اصلی پروژه
ابتدا فایل اصلی پروژه را ایجاد کنید و ساختار اولیه آن را پیاده‌سازی کنید.

import json

# مسیر فایل ذخیره مخاطبین
CONTACTS_FILE = 'contacts.json'

def load_contacts():
"""بارگذاری مخاطبین از فایل"""
try:
with open(CONTACTS_FILE, 'r') as file:
return json.load(file)
except FileNotFoundError:
return []

def save_contacts(contacts):
"""ذخیره مخاطبین در فایل"""
with open(CONTACTS_FILE, 'w') as file:
json.dump(contacts, file, indent=4)

def add_contact(contacts):
"""اضافه کردن مخاطب جدید"""
name = input("نام: ")
phone = input("شماره تلفن: ")
email = input("ایمیل: ")

contact = {
'name': name,
'phone': phone,
'email': email
}
contacts.append(contact)
print("مخاطب جدید اضافه شد.")

def display_contacts(contacts):
"""نمایش لیست مخاطبین"""
for idx, contact in enumerate(contacts, start=1):
print(f"{idx}. {contact['name']} - {contact['phone']} - {contact['email']}")

def search_contacts(contacts):
"""جستجو در مخاطبین"""
search_name = input("نام برای جستجو: ")
found_contacts = [c for c in contacts if search_name.lower() in c['name'].lower()]

if found_contacts:
for contact in found_contacts:
print(f"{contact['name']} - {contact['phone']} - {contact['email']}")
else:
print("مخاطبی پیدا نشد.")

def delete_contact(contacts):
"""حذف مخاطب"""
display_contacts(contacts)
idx = int(input("شماره مخاطب برای حذف: ")) - 1

if 0 <= idx < len(contacts):
deleted_contact = contacts.pop(idx)
print(f"مخاطب {deleted_contact['name']} حذف شد.")
else:
print("شماره نامعتبر است.")

def main():
contacts = load_contacts()

while True:
print("\nمدیریت مخاطبین:")
print("1. اضافه کردن مخاطب")
print("2. نمایش لیست مخاطبین")
print("3. جستجو در مخاطبین")
print("4. حذف مخاطب")
print("5. خروج")

choice = input("انتخاب شما: ")

if choice == '1':
add_contact(contacts)
elif choice == '2':
display_contacts(contacts)
elif choice == '3':
search_contacts(contacts)
elif choice == '4':
delete_contact(contacts)
elif choice == '5':
save_contacts(contacts)
break
else:
print("انتخاب نامعتبر است.")

if __name__ == '__main__':
main()

۳. توضیحات هر تابع
- تابع load_contacts: مخاطبین را از فایل JSON بارگذاری می‌کند. اگر فایل موجود نباشد، یک لیست خالی برمی‌گرداند.
- تابع save_contacts: مخاطبین را در فایل JSON ذخیره می‌کند.
- تابع add_contact: اطلاعات یک مخاطب جدید را از کاربر می‌گیرد و به لیست مخاطبین اضافه می‌کند.
- تابع display_contacts: لیست مخاطبین را با استفاده از یک حلقه چاپ می‌کند.
- تابع search_contacts: نام وارد شده را جستجو کرده و مخاطبین مرتبط را نمایش می‌دهد.
- تابع delete_contact: مخاطب مورد نظر را بر اساس شماره انتخاب شده از لیست حذف می‌کند.
- تابع main: حلقه اصلی برنامه که منوی اصلی را نمایش داده و انتخاب کاربر را مدیریت می‌کند.

۴. نکات مهم
- مدیریت فایل: برای ذخیره و بارگذاری مخاطبین از فایل JSON استفاده شده است تا بتوانیم داده‌ها را بین اجراهای مختلف برنامه حفظ کنیم.
- پیشگیری از خطا: در حذف مخاطب، اطمینان حاصل می‌شود که شماره وارد شده معتبر است.
- تعامل با کاربر: اطلاعات مخاطب را از ورودی کاربر گرفته و نتیجه عملیات را به کاربر نمایش می‌دهد.

🔻اینجا کلیک کن برای آموزش های بیشتر

#پایتون #آموزش_پایتون #پروژه_پایتون #مدیریت_مخاطبین #PythonProjects #ContactsManagement
👍2
۴. نکات مهم
- مدیریت خطاها: در توابع divide, sqrt و logarithm برای جلوگیری از وقوع خطاها، بررسی‌های لازم انجام شده است.
- ورودی کاربر: برنامه از کاربر مقادیر ورودی را دریافت کرده و نتیجه محاسبات را نمایش می‌دهد.
- تابع math: برای انجام محاسبات پیچیده‌تر از کتابخانه math استفاده شده است.

🔻برای آموزش های بیشتر اینجا کلیک کن

#پایتون #آموزش_پایتون #پروژه_پایتون #ماشین_حساب #PythonProjects #AdvancedCalculator
👍1