هيكلة المشروع النهائي: رتّب برنامج المشتريات قبل النسخة الاحترافية
في الدروس السابقة بنينا أجزاء قوية: قوائم، dict، دوال، return، و try و except. الآن سنرتب المشروع في ملف واضح حتى يصبح أقرب لبرنامج حقيقي قابل للتطوير.
ما النتيجة التي يجب أن تخرج بها؟
في نهاية الدرس سيكون ملفك مرتبًا بهذا الشكل:
TAX_RATE = 0.15
def calculate_tax(total):
...
def create_product(product_name, price):
...
def print_report(products, total):
...
def main():
...
main()
المعنى: نضع الإعدادات في الأعلى، ثم الدوال، ثم دالة التشغيل، وفي النهاية نستدعي البرنامج.
لماذا نحتاج هيكلة المشروع؟
عندما يكون البرنامج صغيرًا، قد تكتب كل شيء في مكان واحد ويعمل. لكن عندما يكبر البرنامج، يصبح التعديل صعبًا إذا لم يكن مرتبًا.
برنامج المشتريات صار يحتوي على:
إدخال منتجات حساب ضريبة حساب إجمالي نهائي التعامل مع أخطاء السعر طباعة تقرير
لذلك نحتاج ترتيبًا واضحًا حتى لا يتحول البرنامج إلى كتلة طويلة يصعب فهمها.
أنشئ ملف الدرس السادس والعشرين
افتح مجلد الدورة داخل VS Code:
python_course
ثم أنشئ ملفًا جديدًا باسم:
lesson_26.py
افتح الملف داخل Editor.
افهم ترتيب الملف قبل الكتابة
سنرتب ملف lesson_26.py بهذا الشكل:
اكتب الإعدادات الثابتة
في أعلى الملف، اكتب:
TAX_RATE = 0.15
هذا المتغير يمثل نسبة الضريبة. كتبناه بحروف كبيرة لأنه قيمة ثابتة غالبًا لا تتغير أثناء تشغيل البرنامج.
اكتب دوال الحساب
بعد الإعدادات، اكتب دوال الحساب:
def calculate_tax(total):
return total * TAX_RATE
def calculate_final_total(total, tax):
return total + tax
دالة calculate_tax تستخدم TAX_RATE من أعلى الملف، ودالة calculate_final_total تجمع المجموع مع الضريبة.
اكتب دالة إنشاء المنتج
بدل أن نكتب dict المنتج داخل الحلقة مباشرة، سنضع إنشاء المنتج في دالة:
def create_product(product_name, price):
product = {
"name": product_name,
"price": price
}
return product
هذه الدالة تستقبل اسم المنتج وسعره، ثم ترجع dict يمثل المنتج.
اكتب دالة التقرير
الآن اكتب دالة التقرير:
def print_report(products, total, tax, final_total):
print("----- تقرير المنتجات -----")
for product in products:
name = product["name"]
price = product["price"]
print(f"{name}: {price:.2f} ريال")
print(f"عدد المنتجات: {len(products)}")
print(f"الإجمالي قبل الضريبة: {total:.2f} ريال")
print(f"الضريبة: {tax:.2f} ريال")
print(f"الإجمالي النهائي: {final_total:.2f} ريال")
هذه الدالة مسؤولة عن العرض فقط. لا تدخل منتجات، ولا تحسب ضريبة، ولا تنشئ product.
افهم دالة main
دالة main ستكون مكان تشغيل البرنامج:
def main():
هنا نكتب خطوات تشغيل البرنامج
رتّب الكود النهائي على أجزاء
الجزء الأول: الإعدادات ودوال الحساب:
TAX_RATE = 0.15
def calculate_tax(total):
return total * TAX_RATE
def calculate_final_total(total, tax):
return total + tax
الجزء الثاني: دالة إنشاء المنتج:
def create_product(product_name, price):
product = {
"name": product_name,
"price": price
}
return product
الجزء الثالث: دالة التقرير:
def print_report(products, total, tax, final_total):
print("----- تقرير المنتجات -----")
for product in products:
name = product["name"]
price = product["price"]
print(f"{name}: {price:.2f} ريال")
print(f"عدد المنتجات: {len(products)}")
print(f"الإجمالي قبل الضريبة: {total:.2f} ريال")
print(f"الضريبة: {tax:.2f} ريال")
print(f"الإجمالي النهائي: {final_total:.2f} ريال")
الجزء الرابع: بداية دالة main:
def main():
products = []
total = 0
name_prompt = "اسم المنتج أو done: "
price_prompt = "سعر المنتج: "
الجزء الخامس: استقبال المنتجات داخل main:
while True:
product_name = input(name_prompt).strip()
if product_name.lower() == "done":
break
price_text = input(price_prompt).strip()
try:
price = float(price_text)
except ValueError:
print("السعر غير صحيح، اكتب رقمًا فقط")
continue
الجزء السادس: إنشاء المنتج وإضافته داخل main:
product = create_product(
product_name,
price
)
products.append(product)
total = total + price
الجزء السابع: حساب النتائج وطباعة التقرير داخل main:
tax = calculate_tax(total)
final_total = calculate_final_total(
total,
tax
)
print_report(
products,
total,
tax,
final_total
)
الجزء الثامن والأخير: تشغيل البرنامج:
main()
شغّل البرنامج
احفظ الملف:
Ctrl + S
ثم شغله:
python lesson_26.py
وإذا لم يعمل أمر python:
py lesson_26.py
اختبر نفس السيناريو السابق
جرّب هذه الإدخالات:
اسم المنتج أو done: Keyboard سعر المنتج: abc السعر غير صحيح، اكتب رقمًا فقط اسم المنتج أو done: Keyboard سعر المنتج: 100 اسم المنتج أو done: Mouse سعر المنتج: 50 اسم المنتج أو done: done
النتيجة المتوقعة:
----- تقرير المنتجات ----- Keyboard: 100.00 ريال Mouse: 50.00 ريال عدد المنتجات: 2 الإجمالي قبل الضريبة: 150.00 ريال الضريبة: 22.50 ريال الإجمالي النهائي: 172.50 ريال
تحدي صغير: أضف دالة ترحيب
أضف هذه الدالة قبل main:
def print_welcome():
print("أهلًا بك في برنامج المشتريات")
print("اكتب المنتجات، واكتب done عند الانتهاء")
ثم استدعها داخل main قبل بداية while:
print_welcome()
اختبار نهاية الدرس
قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:
خلاصة الدرس
تعلمنا كيف نرتب برنامج المشتريات في ملف واضح. وضعنا الإعدادات في الأعلى، ثم الدوال، ثم main، ثم استدعاء main في نهاية الملف.
تذكر القاعدة:
إعدادات دوال main تشغيل البرنامج
في الدرس القادم سنبدأ تحسين النسخة النهائية بإضافة قائمة أوامر بسيطة تجعل المستخدم يختار بين إضافة منتج، عرض تقرير، أو الخروج.
💬 التعليقات
لا توجد تعليقات بعد.
🚫 يجب تسجيل الدخول لإضافة تعليق. دخول / تسجيل