{getToc} $title={محتوى المقال}
مرحبًا بك في درس جديد من سلسلة بايثون بالمثال على موقع بايثون العرب. في هذا المقال سنتعلم مثالًا عمليًا مهمًا جدًا لكل مبتدئ، وهو حساب مجموع الأرقام في قائمة Python باستخدام طريقتين: دالة sum() الجاهزة، والحل اليدوي باستخدام for loop.
هذا المثال يبدو بسيطًا، لكنه من التمارين الأساسية التي تساعدك على فهم القوائم، الحلقات، المتغيرات، وطريقة التفكير البرمجي. ستقابله كثيرًا في مسائل مثل حساب مجموع الدرجات، مجموع الأسعار، مجموع المصاريف، مجموع الكميات، أو أي بيانات رقمية مخزنة داخل قائمة.
في هذا الدرس لن نكتفي بكتابة الكود فقط، بل سنشرح لماذا يعمل الكود، ومتى تستخدم sum()، ومتى يكون استخدام for loop أفضل، وما الأخطاء الشائعة التي يجب أن تنتبه لها.
الخلاصة السريعة: استخدمsum()عندما تريد جمع الأرقام بسرعة، واستخدمfor loopعندما تريد فهم طريقة الجمع خطوة بخطوة أو إضافة شروط أثناء الجمع. {alertInfo}
لماذا يعتبر هذا المثال مهمًا للمبتدئين؟
عندما تتعلم Python، ستتعامل كثيرًا مع القوائم Lists. والقائمة غالبًا تحتوي على مجموعة بيانات، مثل أرقام، أسماء، أسعار، درجات، أو قيم يتم إدخالها من المستخدم. ومن أكثر العمليات التي نحتاجها مع القوائم: حساب المجموع.
هذا المثال يساعدك على فهم عدة أفكار في وقت واحد:
- كيف نخزن أكثر من رقم داخل قائمة واحدة.
- كيف نستخدم دالة جاهزة مثل
sum(). - كيف نمر على عناصر القائمة باستخدام
for loop. - كيف نستخدم متغيرًا مثل
totalلتجميع الناتج النهائي. - كيف نقرأ الأخطاء البسيطة عند وجود نصوص داخل قائمة أرقام.
إذا كنت ما زلت في بداية تعلم القوائم، أنصحك بمراجعة درس أساسيات بايثون 16: شرح Lists في Python للمبتدئين قبل متابعة هذا المثال. وإذا كنت تريد تقوية فهمك للحلقات، يمكنك أيضًا قراءة درس أساسيات بايثون 12: شرح Loops في Python.
فكرة المثال: ماذا نريد أن نفعل؟
لنفترض أن لدينا قائمة أرقام بهذا الشكل:
numbers = [10, 20, 30, 40]
المطلوب هو جمع كل هذه الأرقام للحصول على الناتج النهائي:
10 + 20 + 30 + 40 = 100
إذن نحن نريد من Python أن تمر على عناصر القائمة وتحسب لنا المجموع النهائي. ويمكن عمل ذلك بطريقتين: إما باستخدام دالة جاهزة، أو باستخدام حلقة.
الطريقة الأولى: حساب مجموع عناصر القائمة باستخدام sum()
أسهل طريقة لحساب مجموع الأرقام في قائمة Python هي استخدام الدالة الجاهزة sum(). هذه الدالة تستقبل مجموعة قابلة للتكرار مثل القائمة، ثم تجمع العناصر الرقمية الموجودة فيها وتعيد الناتج.
numbers = [10, 20, 30, 40]
total = sum(numbers)
print(total)
الناتج:
100
لاحظ أن الكود قصير وواضح. أنشأنا قائمة اسمها numbers، ثم استخدمنا sum(numbers) لحساب المجموع، وبعد ذلك طبعنا الناتج.
يمكنك الرجوع إلى توثيق Python الرسمي لدالة sum لمعرفة طريقة عملها بشكل رسمي.
معلومة مهمة: الدالةsum()مناسبة لجمع الأرقام، لكنها ليست الطريقة الصحيحة لدمج النصوص. إذا أردت دمج النصوص، استخدمjoin()بدلًا منها. {alertWarning}
شرح كود sum خطوة بخطوة
لنقسم الكود السابق إلى أجزاء صغيرة حتى يكون واضحًا:
numbers = [10, 20, 30, 40]
هذا السطر ينشئ قائمة تحتوي على أربعة أرقام.
total = sum(numbers)
هذا السطر يحسب مجموع عناصر القائمة ويخزن الناتج داخل المتغير total.
print(total)
هذا السطر يطبع قيمة المجموع على الشاشة.
الطريقة الثانية: حساب المجموع باستخدام for loop
رغم أن sum() هي الطريقة الأسرع، إلا أن استخدام for loop مهم جدًا للمبتدئ، لأنه يوضح لك كيف تتم عملية الجمع فعليًا. بدل أن تجعل Python تجمع القائمة مباشرة، أنت هنا ستقول لها: مرّي على كل رقم، وأضيفيه إلى المجموع.
numbers = [10, 20, 30, 40]
total = 0
for number in numbers:
total += number
print(total)
الناتج:
100
كيف يعمل الكود خطوة بخطوة؟
في البداية كتبنا:
total = 0
بدأنا من صفر لأننا لم نجمع أي رقم بعد. بعد ذلك تبدأ الحلقة بالمرور على كل عنصر داخل القائمة:
for number in numbers:
وفي كل دورة من الحلقة يتم تنفيذ هذا السطر:
total += number
وهذا معناه:
total = total + number
| الدورة | قيمة number | قيمة total بعد الجمع |
|---|---|---|
| الأولى | 10 | 0 + 10 = 10 |
| الثانية | 20 | 10 + 20 = 30 |
| الثالثة | 30 | 30 + 30 = 60 |
| الرابعة | 40 | 60 + 40 = 100 |
بعد انتهاء الحلقة تصبح قيمة total تساوي 100، وهي نفس نتيجة sum().
متى أستخدم sum ومتى أستخدم for loop؟
الطريقتان صحيحتان، لكن ليستا متساويتين في كل حالة. sum() ممتازة عندما تريد جمع كل الأرقام مباشرة. أما for loop فهي أفضل عندما تريد إضافة شرط أو تنفيذ عملية إضافية أثناء المرور على القائمة.
| الطريقة | متى تستخدمها؟ | الميزة |
|---|---|---|
sum() |
عندما تريد حساب مجموع كل الأرقام مباشرة | مختصرة وواضحة وسهلة القراءة |
for loop |
عندما تريد فهم المنطق أو إضافة شرط أثناء الجمع | تعطيك تحكمًا أكبر في العملية |
قاعدة للمبتدئ: تعلم الحل باستخدامfor loopحتى تفهم الفكرة، ثم استخدمsum()في الكود العملي عندما تريد حلًا مختصرًا ونظيفًا. {alertSuccess}
مثال عملي: حساب مجموع درجات طالب
لنفترض أن لدينا قائمة درجات طالب في عدة اختبارات، ونريد حساب مجموع الدرجات:
grades = [85, 90, 78, 92]
total = sum(grades)
print("مجموع الدرجات:", total)
الناتج:
مجموع الدرجات: 345
هذا المثال عملي جدًا؛ لأن القوائم في بايثون تستخدم كثيرًا لتخزين الدرجات، الأسعار، الكميات، أو أي بيانات رقمية.
مثال عملي: جمع أرقام بشرط معين
الآن لنفترض أننا لا نريد جمع كل الأرقام، بل نريد جمع الأرقام الأكبر من 10 فقط. هنا يصبح استخدام for loop أفضل؛ لأننا نحتاج إلى شرط داخل الحلقة.
numbers = [5, 12, 8, 20, 3]
total = 0
for number in numbers:
if number > 10:
total += number
print(total)
الناتج:
32
لأن الأرقام الأكبر من 10 هي 12 و 20، ومجموعهما يساوي 32. إذا أردت فهم الشروط أكثر، راجع درس
شرح if و else في Python.
هل يمكن استخدام sum مع قائمة فارغة؟
نعم، إذا استخدمت sum() مع قائمة فارغة، فإن النتيجة ستكون صفرًا:
numbers = []
print(sum(numbers))
الناتج:
0
وهذه نقطة مفيدة، لأنك في بعض الحالات قد تتعامل مع قائمة لم تتم إضافة عناصر إليها بعد، ومع ذلك لن يظهر خطأ عند استخدام sum().
خطأ شائع: محاولة جمع قائمة تحتوي على نصوص
من أشهر الأخطاء عند المبتدئين أن تكون القائمة تحتوي على رقم مكتوب كنص، مثل "30" بدل 30.
numbers = [10, 20, "30"]
print(sum(numbers))
هذا الكود قد يسبب خطأ؛ لأن بايثون لا تجمع رقمًا مع نص مباشرة. الحل هو تحويل النص إلى رقم باستخدام int() إذا كان النص يحتوي على رقم صالح.
numbers = [10, 20, "30"]
fixed_numbers = []
for number in numbers:
fixed_numbers.append(int(number))
print(sum(fixed_numbers))
الناتج:
60
تنبيه مهم: لا تستخدمint()إلا إذا كنت متأكدًا أن النص يحتوي على رقم قابل للتحويل، مثل"30". أما النصوص مثل"Python"فلن تتحول إلى رقم. {alertWarning}
مثال: حساب مجموع أسعار المنتجات
لنفترض أنك تكتب برنامجًا بسيطًا لحساب مجموع أسعار منتجات:
prices = [15, 30, 45, 10]
total = sum(prices)
print("مجموع الأسعار:", total)
الناتج:
مجموع الأسعار: 100
هذا مثال بسيط لكنه قريب من الاستخدامات الواقعية. ويمكنك تطويره لاحقًا ليحسب الضريبة، الخصم، أو متوسط السعر.
ربط الدرس بدروس بايثون السابقة
هذا المثال يعتمد على أكثر من فكرة أساسية في Python:
- استخدام القوائم
Listلتخزين أكثر من قيمة. - استخدام
for loopللمرور على عناصر القائمة. - استخدام الدالة الجاهزة
sum()لتسهيل عملية الجمع. - استخدام المتغير
totalلتخزين الناتج النهائي. - استخدام
int()لتحويل النصوص الرقمية إلى أرقام عند الحاجة.
ولمزيد من التدرّب، يمكنك قراءة هذه المقالات من بايثون العرب:
- أساسيات بايثون 16: شرح Lists في Python للمبتدئين
- أساسيات بايثون 12: شرح Loops في Python للمبتدئين
- بايثون بالمثال 8: إيجاد أكبر وأصغر رقم في قائمة Python
- تشغيل بايثون أون لاين بدون تثبيت
- أفضل المصادر المجانية لتعلم بايثون للمبتدئين
تمرين بسيط لك
جرّب كتابة برنامج يحسب مجموع المصاريف اليومية الموجودة في القائمة التالية:
expenses = [3, 5, 2, 10, 4]
المطلوب:
- احسب المجموع باستخدام
sum(). - احسب المجموع مرة أخرى باستخدام
for loop. - اطبع الناتج النهائي.
الحل باستخدام sum():
expenses = [3, 5, 2, 10, 4]
total = sum(expenses)
print("مجموع المصاريف:", total)
الحل باستخدام for loop:
expenses = [3, 5, 2, 10, 4]
total = 0
for expense in expenses:
total += expense
print("مجموع المصاريف:", total)
الناتج في الحالتين:
مجموع المصاريف: 24
الخلاصة
تعلمنا في هذا الدرس كيف نحسب مجموع الأرقام في قائمة Python باستخدام طريقتين مهمتين: الطريقة الأولى باستخدام الدالة الجاهزة sum()، وهي الطريقة الأسهل والأقصر، والطريقة الثانية باستخدام for loop، وهي الطريقة الأفضل لفهم منطق الجمع والتكرار خطوة بخطوة.
إذا كنت مبتدئًا، لا تحفظ الكود فقط. حاول أن تفهم لماذا بدأنا المتغير total من صفر، وكيف يتم تحديثه في كل دورة من الحلقة. هذه الفكرة ستساعدك لاحقًا في مسائل كثيرة مثل حساب المتوسط، إيجاد أكبر رقم، إيجاد أصغر رقم، وعدّ العناصر التي تحقق شرطًا معينًا.
خلاصة الدرس: استخدمsum()للحل المختصر، واستخدمfor loopعندما تريد فهم العملية أو التحكم بها. {alertSuccess}
أسئلة شائعة مع إجاباتها
ما وظيفة دالة sum في Python؟
دالة sum() تستخدم لحساب مجموع عناصر قابلة للتكرار مثل القائمة، بشرط أن تكون العناصر قابلة للجمع كأرقام.
هل دالة sum تعمل مع أي قائمة في بايثون؟
لا تعمل مع أي قائمة بشكل مطلق. هي مناسبة للقوائم التي تحتوي على أرقام. إذا كانت القائمة تحتوي على نصوص، فقد يظهر خطأ لأن النصوص لا تُجمع مثل الأرقام.
ما الفرق بين sum و for loop في حساب المجموع؟
الدالة sum() مختصرة وسريعة وتناسب الجمع المباشر، أما for loop فتساعدك على فهم طريقة الجمع خطوة بخطوة وتسمح لك بإضافة شروط أثناء العملية.
هل يمكن حساب مجموع قائمة فارغة؟
نعم، عند استخدام sum([]) تكون النتيجة 0، لأن القائمة لا تحتوي على أي أرقام ليتم جمعها.
متى أستخدم for loop بدل sum؟
استخدم for loop عندما تريد تنفيذ شرط أثناء الجمع، مثل جمع الأرقام الأكبر من قيمة معينة، أو عندما تريد فهم طريقة التكرار والتجميع بشكل أوضح.
هل هذا المثال مهم للمبتدئين؟
نعم، لأنه يجمع بين القوائم، الحلقات، المتغيرات، والدوال الجاهزة. وهذه مفاهيم أساسية ستحتاجها في أغلب برامج Python البسيطة.



