استخدام for: طباعة تقرير المنتجات بطريقة أنظف
في الدرس السابق استخدمنا while و index لطباعة المنتجات من القوائم. في هذا الدرس سنتعلم for، وهي طريقة أنظف وأسهل عندما نريد المرور على عناصر موجودة داخل قائمة.
ما النتيجة التي يجب أن تخرج بها؟
في نهاية الدرس ستفهم كيف نستبدل هذا الشكل:
index = 0
while index < len(product_names):
name = product_names[index]
index = index + 1
بهذا الشكل الأنظف:
for index in range(len(product_names)):
name = product_names[index]
لماذا نحتاج for؟
في الدرس السابق كتبنا كودًا يمر على المنتجات باستخدام while. كان صحيحًا، لكنه يحتاج متغير index وزيادته يدويًا.
مع for، يصبح المرور على العناصر أو الفهارس أكثر اختصارًا.
أنشئ ملف الدرس الحادي والعشرين
افتح مجلد الدورة داخل VS Code:
python_course
ثم أنشئ ملفًا جديدًا باسم:
lesson_21.py
افتح الملف داخل Editor.
جرّب for بشكل بسيط
اكتب:
product_names = ["Keyboard", "Mouse", "Screen"]
for name in product_names:
print(name)
النتيجة:
Keyboard Mouse Screen
متى نحتاج index مع for؟
في مشروعنا عندنا قائمتان:
product_names product_prices
نحتاج نفس رقم الفهرس حتى نأخذ اسم المنتج وسعره معًا:
name = product_names[index] price = product_prices[index]
افهم range مع len
نكتب:
for index in range(len(product_names)):
إذا كانت القائمة فيها 3 منتجات، فإن:
len(product_names)
تعطي 3، و:
range(3)
تعطينا الأرقام:
0 1 2
اكتب تقرير المنتجات باستخدام for
هذا هو شكل التقرير باستخدام for:
print("----- تقرير المنتجات -----")
for index in range(len(product_names)):
name = product_names[index]
price = product_prices[index]
print(f"{index + 1}. {name}: {price:.2f} ريال")
رتّب الكود النهائي على أجزاء
الجزء الأول: تجهيز القوائم والمتغيرات الأساسية:
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
الجزء الثالث: طباعة التقرير باستخدام for:
print("----- تقرير المنتجات -----")
for index in range(len(product_names)):
name = product_names[index]
price = product_prices[index]
print(f"{index + 1}. {name}: {price:.2f} ريال")
الجزء الرابع: طباعة العدد والإجمالي:
print(f"عدد المنتجات: {len(product_names)}")
print(f"الإجمالي: {total:.2f} ريال")
شغّل البرنامج
احفظ الملف:
Ctrl + S
ثم شغله:
python lesson_21.py
وإذا لم يعمل أمر python:
py lesson_21.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} ريال")
اختبار نهاية الدرس
قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:
خلاصة الدرس
تعلمنا أن for مناسبة جدًا عندما نريد المرور على عناصر قائمة أو أرقام فهارس. استخدمنا range مع len حتى نمر على أسماء المنتجات وأسعارها بنفس رقم الفهرس.
تذكر القاعدة:
for index in range(len(list_name)):
استخدم index لقراءة العنصر
في الدرس القادم سنجعل المشروع أكثر احترافية بتجميع بيانات المنتج في شكل أفضل بدل استخدام قائمتين منفصلتين.
💬 التعليقات
لا توجد تعليقات بعد.
🚫 يجب تسجيل الدخول لإضافة تعليق. دخول / تسجيل