القوائم list: احفظ أسماء المنتجات وأسعارها
في الدرس السابق جمعنا الأسعار وعرضنا الإجمالي. لكن البرنامج لم يكن يتذكر أسماء المنتجات ولا تفاصيلها. في هذا الدرس سنتعلم القوائم list حتى نحفظ تفاصيل كل منتج.
ما النتيجة التي يجب أن تخرج بها؟
في نهاية الدرس ستفهم هذا الشكل:
product_names = []
product_prices = []
product_names.append("Keyboard")
product_prices.append(100)
ثم سنستخدم هذه الفكرة لبناء تقرير فيه اسم كل منتج وسعره.
لماذا نحتاج القوائم؟
في الدرس السابق كان عندنا:
total = 0 items_count = 0
هذا جيد لحساب الإجمالي والعدد، لكنه لا يحفظ التفاصيل. بعد انتهاء البرنامج لا نعرف ما أسماء المنتجات التي أُدخلت.
أنشئ ملف الدرس العشرين
افتح مجلد الدورة داخل VS Code:
python_course
ثم أنشئ ملفًا جديدًا باسم:
lesson_20.py
افتح الملف داخل Editor.
أنشئ قائمتين فارغتين
اكتب:
product_names = [] product_prices = []
معنى ذلك:
جرّب append بشكل بسيط
قبل بناء المشروع، جرّب:
product_names = []
product_names.append("Keyboard")
product_names.append("Mouse")
print(product_names)
النتيجة ستكون قريبة من:
['Keyboard', 'Mouse']
استقبل اسم المنتج وسعره
سنستخدم رسالتين قصيرتين حتى يبقى الكود واضحًا:
name_prompt = "اسم المنتج أو done: " price_prompt = "سعر المنتج: "
داخل الحلقة سنسأل عن اسم المنتج، وإذا كتب المستخدم done نوقف الإدخال:
product_name = input(name_prompt).strip()
if product_name.lower() == "done":
break
أضف الاسم والسعر إلى القوائم
بعد أن نحصل على اسم المنتج والسعر، نضيفهما:
price_text = input(price_prompt).strip() price = float(price_text) product_names.append(product_name) product_prices.append(price)
هنا نحفظ الاسم في قائمة الأسماء، والسعر في قائمة الأسعار.
اكتب جزء إدخال المنتجات
اكتب هذا الجزء في ملف lesson_20.py:
اكتب أولًا القوائم والمتغيرات الأساسية:
product_names = [] product_prices = [] total = 0 name_prompt = "اسم المنتج أو done: " price_prompt = "سعر المنتج: "
ثم اكتب بداية الحلقة وفحص كلمة done:
while True:
product_name = input(name_prompt).strip()
if product_name.lower() == "done":
break
ثم أضف السعر والمنتج إلى القوائم:
price_text = input(price_prompt).strip()
price = float(price_text)
product_names.append(product_name)
product_prices.append(price)
total = total + price
الآن البرنامج يستقبل أكثر من منتج ويحفظ تفاصيله.
كيف نقرأ العناصر من القائمة؟
القائمة تبدأ العد من صفر:
product_names[0] product_names[1] product_names[2]
اطبع تقرير المنتجات
بعد انتهاء الحلقة، نستخدم index للمرور على القوائم:
print("----- تقرير المنتجات -----")
index = 0
while index < len(product_names):
name = product_names[index]
price = product_prices[index]
print(f"{index + 1}. {name}: {price:.2f} ريال")
index = index + 1
print(f"عدد المنتجات: {len(product_names)}")
print(f"الإجمالي: {total:.2f} ريال")
هنا استخدمنا len لمعرفة عدد العناصر داخل القائمة.
رتّب الكود النهائي على أجزاء
بدل كتابة الكود كاملًا دفعة واحدة، اجمعه في ملف lesson_20.py على أربعة أجزاء مرتبة.
الجزء الأول: تجهيز القوائم والمتغيرات الأساسية:
product_names = [] product_prices = [] total = 0 name_prompt = "اسم المنتج أو done: " price_prompt = "سعر المنتج: "
الجزء الثاني: استقبال المنتجات وإضافتها إلى القوائم:
while True:
product_name = input(name_prompt).strip()
if product_name.lower() == "done":
break
price_text = input(price_prompt).strip()
price = float(price_text)
product_names.append(product_name)
product_prices.append(price)
total = total + price
الجزء الثالث: طباعة التقرير بعد انتهاء الإدخال:
print("----- تقرير المنتجات -----")
index = 0
while index < len(product_names):
name = product_names[index]
price = product_prices[index]
print(f"{index + 1}. {name}: {price:.2f} ريال")
index = index + 1
الجزء الرابع والأخير: طباعة عدد المنتجات والإجمالي:
print(f"عدد المنتجات: {len(product_names)}")
print(f"الإجمالي: {total:.2f} ريال")
احفظ الملف:
Ctrl + S
ثم شغله:
python lesson_20.py
وإذا لم يعمل أمر python:
py lesson_20.py
اختبر البرنامج
جرّب الإدخالات التالية:
اسم المنتج أو done: Keyboard سعر المنتج: 100 اسم المنتج أو done: Mouse سعر المنتج: 50 اسم المنتج أو done: Screen سعر المنتج: 300 اسم المنتج أو done: done
النتيجة المتوقعة:
----- تقرير المنتجات ----- 1. Keyboard: 100.00 ريال 2. Mouse: 50.00 ريال 3. Screen: 300.00 ريال عدد المنتجات: 3 الإجمالي: 450.00 ريال
تحدي صغير: أضف الضريبة إلى التقرير
بعد طباعة الإجمالي، أضف:
tax = total * 0.15
final_total = total + tax
print(f"الضريبة: {tax:.2f} ريال")
print(f"الإجمالي النهائي: {final_total:.2f} ريال")
اختبار نهاية الدرس
قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:
خلاصة الدرس
تعلمنا أن القائمة list تحفظ أكثر من قيمة داخل متغير واحد. استخدمنا قائمتين: واحدة لأسماء المنتجات، وواحدة للأسعار. ثم استخدمنا append لإضافة عناصر جديدة، و index لقراءة العناصر، و len لمعرفة عددها.
تذكر القاعدة:
القائمة تحفظ عدة عناصر append تضيف عنصرًا index يقرأ عنصرًا len يعطي عدد العناصر
في الدرس القادم سنحسن هذا المشروع ونتعلم كيف نستخدم for لجعل المرور على القوائم أسهل وأنظف.
💬 التعليقات
لا توجد تعليقات بعد.
🚫 يجب تسجيل الدخول لإضافة تعليق. دخول / تسجيل