Python / القوائم والمصفوفات

القوائم مع التكرار

استخدم حلقة for مع القائمة لتحسب المجموع والمتوسط، وتعدّ القيم التي تحقق شرطًا، وتجد أكبر قيمة بنفسك، وتبني قائمة جديدة بـ append. منهج البكالوريا

المجموع والمتوسط

Python
marks = [78, 92, 85, 64, 90]
total = 0
for mark in marks:
    total += mark
print(total)
print(total / len(marks))
وحدة التحكم
409
81.8
total += mark اختصار لـ total = total + mark. ابدأ المجموع بـ 0 قبل الحلقة، واطبعه بعدها بدون إزاحة، وإلا طُبع في كل دورة.

العدّ بشرط

لعدّ القيم التي تحقق شرطًا نستخدم عدّادًا يبدأ من 0 ويزيد 1 داخل if داخل الحلقة:

Python
record_list = ["absent", "present", "present", "absent", "present"]
count = 0
for day in record_list:
    if day == "present":
        count = count + 1
print(count)
وحدة التحكم
3

وإذا احتجنا رقم الترتيب نستخدم range(len(...))؛ فيعمل البرنامج مهما تغيّر عدد القيم:

Python
body_temp_list = [36.1, 36.4, 37.2, 36.5, 37.0]
for i in range(len(body_temp_list)):
    if body_temp_list[i] >= 37.0:
        print("Day " + str(i + 1) + ": Caution!")
وحدة التحكم
Day 3: Caution!
Day 5: Caution!

أكبر قيمة بنفسك

الدالة max() تفعل ذلك، لكن فكرتها مهمة: نحتفظ بـ«أفضل قيمة حتى الآن» ونقارن بها كل قيمة؛ فإذا وجدنا أكبر منها استبدلناها:

Python
marks = [78, 92, 85, 64, 90]
biggest = marks[0]
for mark in marks:
    if mark > biggest:
        biggest = mark
print(biggest)
وحدة التحكم
92

بناء قائمة جديدة بـ append

نبدأ بقائمة فارغة [] ونضيف إلى آخرها بـ .append(value). هكذا نجمع القيم التي تحقق الشرط في قائمة:

Python
marks = [78, 45, 85, 30, 90]
passed = []
for mark in marks:
    if mark >= 50:
        passed.append(mark)
print(passed)
print(len(passed))
وحدة التحكم
[78, 85, 90]
3
عند البحث عن أكبر أو أصغر قيمة ابدأ بأول قيمة في القائمة marks[0] وليس بـ 0؛ فلو كانت كل القيم سالبة لكان الناتج 0 وهو غير موجود في القائمة.

تدريبات

1أكمل الفراغتدريب المنهج

أكمل الفراغين باستخدام len(body_temp_list) بدل كتابة العدد 14، ليُطبع متوسط درجات الحرارة مقرّبًا لرقم عشري واحد: 36.5.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
body_temp_list = [36.1, 36.4, 36.6, 36.5, 36.7, 36.0, 36.2, 36.8, 36.6, 36.5, 36.9, 36.4, 36.7, 37.0]
total = 0
for i in range(___):
    total = total + body_temp_list[i]
print(round(___, 1))
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2اكتب البرنامجتدريب المنهج

مرّ على كل قيم body_temp_list، واطبع Watch out! لكل قيمة تساوي 37.0 أو أكثر.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
body_temp_list = [36.1, 36.4, 36.6, 36.5, 36.7, 36.0, 36.2, 36.8, 37.1, 36.5, 36.9, 36.4, 36.7, 37.2]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3اكتب البرنامجتدريب المنهج

عُدّ أيام الغياب: زد count بمقدار 1 كلما كانت القيمة "absent"، ثم اطبع count بعد الحلقة.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
record_list = ["absent", "present", "present", "present", "absent", "present", "absent", "present", "present", "present", "absent", "present", "present", "absent"]
count = 0
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4اكتب البرنامجتدريب المنهج

اطبع 85 or above مرة لكل درجة في mark_list تساوي 85 أو أكثر.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
mark_list = [48, 55, 74, 85, 63, 57, 91]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5اكتب البرنامجتدريب إضافي

أقل درجات الحرارة في 6 ليالٍ شتوية محفوظة في temps. أوجد أصغر قيمة بدون استخدام min()، واطبع Lowest: -2.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
temps = [3, -1, 4, 0, -2, 5]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

من قائمة الأسعار prices ابنِ قائمة جديدة cheap فيها الأسعار الأقل من 100 فقط باستخدام append، ثم اطبعها (الناتج [45, 80, 15]).

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
prices = [45, 120, 80, 300, 15]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • المجموع: total = 0 قبل الحلقة، وtotal += x داخلها، والمتوسط total / len(list).
  • العدّ: عدّاد يبدأ من 0 ويزيد داخل if داخل for.
  • أكبر قيمة: ابدأ بـ list[0] واستبدلها كلما وجدت أكبر منها.
  • new = [] ثم new.append(x) لبناء قائمة جديدة.