الدرس 12 من دورة Python للمبتدئين

مشروع تطبيقي: حاسبة السعر مع الضريبة

في هذا الدرس سنبني أول مشروع صغير يجمع ما تعلمناه: نسأل المستخدم عن اسم المنتج والسعر، نحول السعر إلى رقم، نحسب الضريبة، ثم نعرض النتيجة بشكل مرتب.

المستوى: مبتدئ جدًا النتيجة: برنامج حسابي تفاعلي مدة التطبيق: 25 - 30 دقيقة
طريقة CIT للتعلم الهادئ: هذا ليس درسًا للحفظ. هذا مشروع صغير. سنفكر كأننا نبني برنامجًا حقيقيًا: ما المدخلات؟ ما الحسابات؟ ما النتيجة التي تظهر للمستخدم؟
مهم قبل البداية: هذا المشروع يعتمد على الدروس السابقة: input و float والمتغيرات والعمليات الحسابية. إذا فهمت الدرس الحادي عشر، فهذا الدرس سيكون أول تطبيق عملي واضح.

ما المشروع الذي سنبنيه؟

سنبني برنامجًا يسأل المستخدم:

اسم المنتج مثل: Keyboard.
السعر قبل الضريبة مثل: 100.
الضريبة يحسبها البرنامج.
الإجمالي السعر + الضريبة.

البرنامج النهائي سيكون قريبًا من هذا:

product_name = input("اكتب اسم المنتج: ")
price = float(input("اكتب السعر قبل الضريبة: "))

tax = price * 0.15
total = price + tax

print("اسم المنتج:", product_name)
print("السعر قبل الضريبة:", price)
print("الضريبة:", tax)
print("الإجمالي:", total)
خريطة مشروع حاسبة السعر مع الضريبة في Python
تدفق مشروع حاسبة الضريبة في Python
1

قبل كتابة الكود: فكر في المشروع

قبل أن نكتب أي كود، نسأل أنفسنا ثلاثة أسئلة:

ما الذي سيدخله المستخدم؟
ما العمليات التي سيجريها البرنامج؟
ما النتيجة التي ستظهر في النهاية؟

في مشروعنا:

المدخلات: اسم المنتج والسعر
المعالجة: حساب الضريبة والإجمالي
المخرجات: طباعة تقرير صغير للمستخدم
هذه طريقة تفكير المبرمج: لا تبدأ بالكود مباشرة. افهم المشكلة، ثم حولها إلى خطوات، ثم اكتب الكود.
تحقق قبل الانتقال ✅ هل فهمت أن المشروع له مدخلات ومعالجة ومخرجات؟ إذا نعم، انتقل لإنشاء ملف المشروع.
2

أنشئ ملف المشروع

افتح مجلد الدورة داخل VS Code:

python_course

ثم أنشئ ملفًا جديدًا باسم:

lesson_12.py

افتح الملف داخل Editor.

توقف لحظة ✅ هل ظهر ملف lesson_12.py داخل Explorer؟ إذا نعم، ابدأ بالخطوة التالية.
3

استقبل اسم المنتج من المستخدم

أول شيء نحتاجه هو اسم المنتج. الاسم نص، لذلك لا نحتاج int ولا float.

product_name = input("اكتب اسم المنتج: ")
لماذا لا نستخدم float هنا؟ لأن اسم المنتج ليس رقمًا. input تكفي لأننا نريد نصًا مثل Keyboard أو Mouse.
سؤال سريع 🧠 هل اسم المنتج يحتاج تحويلًا إلى رقم؟ لا، لأنه نص.
4

استقبل السعر وحوله إلى رقم

السعر رقم وقد يحتوي كسورًا مثل 99.5، لذلك نستخدم float:

price = float(input("اكتب السعر قبل الضريبة: "))

هنا يحدث ثلاث خطوات في سطر واحد:

input يسأل المستخدم عن السعر
float يحول إجابة المستخدم إلى رقم عشري
price يخزن السعر بعد التحويل
انتبه: لا تكتب price = input فقط إذا كنت تريد الحساب. لأن input وحدها تجعل السعر نصًا، والنص لا يناسب عملية الضريبة.
تحقق قبل الانتقال ✅ هل فهمت لماذا استخدمنا float مع السعر؟ لأنه رقم قد يحتوي جزءًا عشريًا.
5

احسب الضريبة والإجمالي

سنفترض أن الضريبة 15%. في البرمجة نكتب 15% بهذا الشكل:

0.15
معادلة حساب الضريبة والإجمالي في Python

اكتب:

tax = price * 0.15
total = price + tax
ماذا فعلنا؟ tax حفظت قيمة الضريبة، و total حفظت السعر بعد إضافة الضريبة.
سؤال سريع 🧠 إذا كان السعر 100، كم ستكون الضريبة؟ 15. وكم الإجمالي؟ 115.
6

اطبع النتيجة للمستخدم

بعد الحساب، نعرض تقريرًا بسيطًا:

print("اسم المنتج:", product_name)
print("السعر قبل الضريبة:", price)
print("الضريبة:", tax)
print("الإجمالي:", total)
لماذا نكتب نصًا داخل print؟ حتى لا تظهر الأرقام وحدها بدون معنى. المستخدم يحتاج أن يعرف: هذا السعر، هذه الضريبة، وهذا الإجمالي.
تحقق قبل الانتقال ✅ هل فهمت أن print هنا لا تطبع أرقامًا فقط، بل تطبع تقريرًا مفهومًا؟
7

اكتب الكود الكامل

الآن اكتب الكود كاملًا داخل ملف lesson_12.py:

product_name = input("اكتب اسم المنتج: ")
price = float(input("اكتب السعر قبل الضريبة: "))

tax = price * 0.15
total = price + tax

print("-----")
print("اسم المنتج:", product_name)
print("السعر قبل الضريبة:", price)
print("الضريبة:", tax)
print("الإجمالي:", total)
print("-----")
شرح أجزاء كود مشروع حاسبة السعر مع الضريبة

احفظ الملف:

Ctrl + S

ثم شغله:

python lesson_12.py

وإذا لم يعمل أمر python:

py lesson_12.py
تحقق قبل الانتقال ✅ هل اشتغل البرنامج وسألك عن اسم المنتج والسعر؟ إذا نعم، انتقل لاختبار النتيجة.
8

اختبر البرنامج بقيم واضحة

جرّب إدخال هذه القيم:

اكتب اسم المنتج: Keyboard
اكتب السعر قبل الضريبة: 100

النتيجة المتوقعة:

-----
اسم المنتج: Keyboard
السعر قبل الضريبة: 100.0
الضريبة: 15.0
الإجمالي: 115.0
-----
لماذا ظهر 100.0 وليس 100؟ لأننا استخدمنا float، و float يتعامل مع الأرقام كأرقام عشرية. هذا طبيعي في هذه المرحلة.
توقف لحظة ✅ هل ظهرت الضريبة 15.0 والإجمالي 115.0؟ إذا نعم، فالمشروع يعمل.
9

جرّب سعرًا عشريًا

الآن جرّب سعرًا فيه جزء عشري:

اكتب اسم المنتج: Mouse
اكتب السعر قبل الضريبة: 99.5

البرنامج سيحسب الضريبة والإجمالي بناءً على السعر الذي أدخلته.

ماذا تعلمت؟ لأننا استخدمنا float، أصبح البرنامج يقبل السعر الكامل مثل 100 ويقبل السعر العشري مثل 99.5.
سؤال سريع 🧠 هل كان int مناسبًا للسعر العشري 99.5؟ لا. لذلك استخدمنا float.
10

ماذا لو كتب المستخدم كلمة بدل السعر؟

إذا طلب البرنامج السعر وكتب المستخدم كلمة مثل:

abc

سيظهر خطأ؛ لأن float لا يستطيع تحويل كلمة إلى رقم.

لا تقلق: هذا طبيعي. نحن الآن نتعلم بناء البرنامج الأساسي. لاحقًا سنتعلم كيف نتحقق من إدخال المستخدم ونتعامل مع الأخطاء بطريقة احترافية.
تحقق قبل الانتقال ✅ هل فهمت أن المستخدم يجب أن يكتب رقمًا في خانة السعر، وليس كلمة؟

اختبار نهاية المشروع

قبل اعتماد المشروع، تأكد أنك فهمت هذه النقاط:

✅ عرفت مدخلات المشروع: اسم المنتج والسعر.
✅ فهمت أن اسم المنتج يبقى نصًا.
✅ فهمت أن السعر يحتاج float قبل الحساب.
✅ حسبت tax = price * 0.15.
✅ حسبت total = price + tax.
✅ طبعت تقريرًا مفهومًا للمستخدم.
✅ شغلت المشروع داخل Terminal.
✅ فهمت أن الخطأ يظهر إذا كتب المستخدم نصًا بدل السعر.
إذا فهمت هذه النقاط: أنت الآن لم تتعلم أوامر منفصلة فقط؛ أنت جمعتها في برنامج صغير له مدخلات ومعالجة ومخرجات.

تحدي بسيط بعد الدرس

عدل البرنامج ليطلب من المستخدم سعرين بدل سعر واحد، ثم احسب الإجمالي لكل سعر أو مجموع السعرين قبل الضريبة.

price_1 = float(input("اكتب السعر الأول: "))
price_2 = float(input("اكتب السعر الثاني: "))

subtotal = price_1 + price_2
tax = subtotal * 0.15
total = subtotal + tax

print("المجموع قبل الضريبة:", subtotal)
print("الضريبة:", tax)
print("الإجمالي:", total)
هدف التحدي: أن تبدأ بتعديل البرنامج بنفسك، لا أن تنتظر كل شيء جاهزًا. هنا يبدأ الاعتماد على النفس.

خلاصة الدرس

في هذا المشروع استخدمنا input لأخذ البيانات من المستخدم، و float لتحويل السعر إلى رقم، والمتغيرات لحفظ القيم، والعمليات الحسابية لحساب الضريبة والإجمالي، و print لعرض النتيجة.

تذكر تسلسل المشروع:

اسأل المستخدم
حوّل الرقم باستخدام float
احسب الضريبة
احسب الإجمالي
اعرض النتيجة

في الدرس القادم سنبدأ تحسين طريقة عرض النتائج، ونتعلم كيف نجعل المخرجات أوضح وأكثر ترتيبًا للمستخدم.

الدرس السابق الدرس التالي: تنسيق المخرجات قريبًا فهرس الدورة