Lists and data abstraction · القوائم تجريد البيانات
Why a list?
- A program often needs many values at once, like a class of scores.
- One variable per value would be messy.
- A list holds many values under one name — a useful data abstraction.
لماذا قائمة؟
- يحتاج البرنامج غالبًا إلى قيم عديدة في آنٍ واحد، مثل صف من الدرجات.
- متغير واحد لكل قيمة سيكون فوضويًا.
- القائمة تحتفظ بقيم عديدة تحت اسم واحد — وهي تجريد بيانات مفيد.
What is a data abstraction?
- An abstraction hides detail so you can think about the whole, not the parts.
- A list lets you treat 1 value or 1000 values the same way.
- You write the same code no matter how long the list is.
ما هو تجريد البيانات؟
- التجريد يخفي التفاصيل حتى تتمكن من التفكير في الكل وليس الأجزاء.
- تسمح لك القائمة بمعاملة قيمة 1 أو قيم 1000 بنفس الطريقة.
- تكتب نفس الكود بغض النظر عن طول القائمة.
Make a list and read it
- Write items inside square brackets:
[10, 20, 30]. - Get one item by its index (its position). Python starts at
0. scores[0]is the first item;scores[-1]is the last item.
إنشاء قائمة وقراءتها
- اكتب العناصر داخل أقواس مربعة:
[10, 20, 30]. - احصل على عنصر واحد بناءً على فهرسه (موقعه). تبدأ بايثون من
0. scores[0]هو العنصر الأول؛scores[-1]هو العنصر الأخير.
scores = [10, 20, 30]
print(scores[0])
print(scores[-1])
print(len(scores))
Grow a list with append
scores.append(x)addsxto the end of the list.- The list can grow while the program runs.
len(scores)tells you how many items it now has.
توسيع القائمة باستخدام append
scores.append(x)يضيفxإلى نهاية القائمة.- يمكن للقائمة أن تتوسع أثناء تشغيل البرنامج.
- يخبرك
len(scores)بعدد العناصر التي تحتويها الآن.
scores = [10, 20]
scores.append(30)
print(scores)
print(len(scores))
Traverse (visit every item)
- To traverse a list means to go through every item, one by one.
for s in scores:gives you one item each pass — this is a for-each loop.- It is the clean way to process the whole list.
التجول (زيارة كل عنصر)
- يعني التجول في القائمة المرور عبر كل عنصر، واحدًا تلو الآخر.
for s in scores:يمنحك عنصرًا واحدًا في كل دورة — وهذا حلقة لكل عنصر.- إنه الطريقة النظيفة لمعالجة القائمة بأكملها.
scores = [10, 20, 30]
total = 0
for s in scores:
total = total + s
print(total)
In AP CSP pseudocode
- A list is the exam's list too — but CB lists are 1-indexed.
- So
aList[1]is the first element in CB, while Python's first isscores[0]. FOR EACH x IN listmatches Python'sfor x in list:.DISPLAY= print,←==.
في الكود الوهمي لـ AP CSP
- القائمة هي قائمة الامتحان أيضًا — لكن قوائم CB مؤشرتها تبدأ من 1.
- لذا فإن العنصر الأول في CB هو
aList[1]، بينما العنصر الأول في بايثون هوscores[0]. - يطابق
FOR EACH x IN listfor x in list:الخاص ببثون.DISPLAY= print,←==.
aList ← [10, 20, 30]
DISPLAY aList[1] ## the FIRST item (1-indexed!)
total ← 0
FOR EACH x IN aList
{
total ← total + x
}
DISPLAY total
Common mistakes
- Index a list from
0; the last item isa[-1]. - A list groups related values under one name.
أخطاء شائعة
- فهرس القائمة من
0؛ العنصر الأخير هوa[-1]. - تجمع القائمة القيم ذات الصلة تحت اسم واحد.
Now you try
- Build, grow, or traverse a list in each task.
- Press Check answer to test your code.
الآن جرب بنفسك
- قم بإنشاء قائمة أو توسيعها أو التجول فيها في كل مهمة.
- اضغط على تحقق من الإجابة لاختبار الكود الخاص بك.
A list of items, indexed · قائمة من العناصر، مؤشّرة
A list stores many values in order, each at an index from 0. · تخزن القائمة许多 values بشكل مترتب، كل واحد عند مؤشر من 0.
Start from the list colors = ["red", "green"]. Use .append(...) to add "blue" to the end, so the list becomes ["red", "green", "blue"]. · ابدأ من القائمة colors = ["red", "green"]. استخدم .append(...) لإضافة "blue" إلى النهاية، لتصبح القائمة ["red", "green", "blue"].
Click Run to see the output here. · اضغط تشغيل لرؤية المخرجات هنا.
nums is [4, 8, 15, 16, 23]. Traverse it with a for loop to add up every value, then print the total. (It should print 66.) · nums هي [4, 8, 15, 16, 23]. مرر عليها باستخدام حلقة for لجمع كل قيمة، ثم print المجموع الكلي. (يجب أن يطبع 66.)
Click Run to see the output here. · اضغط تشغيل لرؤية المخرجات هنا.
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. Store the first day in first and the last day in last using indexing. · days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. احفظ اليوم الأول في first واليوم الأخير في last باستخدام الفهرسة.
Click Run to see the output here. · اضغط تشغيل لرؤية المخرجات هنا.