اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

لا،  ليس كذلك، فالدالة ()sum في لغة بايثون يمكن استخدامها أيضا مع أنواع البيانات الأخرى مثل tuples و sets وحتى strings.

ففي حالة الاستخدام مع القوائم، تقوم الدالة ()sum بجمع جميع القيم في القائمة. على سبيل المثال:

arr = [1, 2, 3, 4, 5]
total = sum(arr)
print(total)  # Output: 15

ومع ذلك، إذا كانت القائمة تحتوي على أنواع بيانات غير قابلة للجمع، فستحدث خطأ. بهذا الشكل:

arr = [1, 2, 'a', 4, 5]
total = sum(arr)  # يؤدي إلى خطأ TypeError

بشكل عام، يمكن استخدامها مع أي نوع من البيانات يتم دعمه للعملية الحسابية للجمع، وهذا يتضمن الأرقام وبعض أنواع البيانات الأخرى مثل الـ tuples التي تحتوي على أرقام.

  • 0
نشر
بتاريخ 6 دقائق مضت قال ياسر مسكين:

لا،  ليس كذلك، فالدالة ()sum في لغة بايثون يمكن استخدامها أيضا مع أنواع البيانات الأخرى مثل tuples و sets وحتى strings.

ففي حالة الاستخدام مع القوائم، تقوم الدالة ()sum بجمع جميع القيم في القائمة. على سبيل المثال:

arr = [1, 2, 3, 4, 5]
total = sum(arr)
print(total)  # Output: 15

ومع ذلك، إذا كانت القائمة تحتوي على أنواع بيانات غير قابلة للجمع، فستحدث خطأ. بهذا الشكل:

arr = [1, 2, 'a', 4, 5]
total = sum(arr)  # يؤدي إلى خطأ TypeError

بشكل عام، يمكن استخدامها مع أي نوع من البيانات يتم دعمه للعملية الحسابية للجمع، وهذا يتضمن الأرقام وبعض أنواع البيانات الأخرى مثل الـ tuples التي تحتوي على أرقام.

جزاك الله كل خير

شكراا جداا

  • 0
نشر

بل قادرة على حساب مجموع أي نوع من البيانات لكن بشرط أن تكون تلك البيانات قابلة للتكرار، وتلك البيانات هي:

  • قوائم (lists) سواء كانت تحتوي على أرقام أو سلاسل نصية أو كائنات أخرى.
  • أزواج (tuples) مثل قوائم البيانات، يمكن للدالة sum() حساب مجموع عناصر أي زوج.
  • مفردات (dictionaries) بينما لا يمكن حساب مجموع مفردة مباشرةً، يمكن تحويلها إلى قائمة أو زوج قبل استخدام الدالة sum().
  • مولدات (generators) لحساب مجموع القيم دون الحاجة إلى تخزينها في الذاكرة.

وتسمح الدالة sum() بتحديد قيمة افتراضية يتم إضافتها إلى مجموع العناصر، وذلك مفيد في الحالات التي تريد فيها حساب مجموع العناصر مع إضافة قيمة ثابتة، كالتالي:

sum([1, 2, 3], 5)  # سيُرجع 11

أيضًا تُتيح لك استبعاد القيم الفارغة مع مُرشِّح (filter) لاستبعاد القيم الفارغة من الحساب، كالتالي:

sum(filter(None, [1, None, 2, 3]))  # سيُرجع 6

أو استخدام تعبيرات lambda  لتطبيق وظيفة على كل عنصر قبل حساب مجموعها:

sum(list(map(lambda x: x**2, [1, 2, 3])))  # سيُرجع 14

أو دمج الدالة sum() مع وظائف أخرى لبناء تعبيرات معقدة، كالآتي:

max(sum(x) for x in my_list)  # سيُرجع أكبر مجموع لعناصر في قائمة my_list
  • 0
نشر
بتاريخ 15 ساعة قال Mustafa Suleiman:

بل قادرة على حساب مجموع أي نوع من البيانات لكن بشرط أن تكون تلك البيانات قابلة للتكرار، وتلك البيانات هي:

  • قوائم (lists) سواء كانت تحتوي على أرقام أو سلاسل نصية أو كائنات أخرى.
  • أزواج (tuples) مثل قوائم البيانات، يمكن للدالة sum() حساب مجموع عناصر أي زوج.
  • مفردات (dictionaries) بينما لا يمكن حساب مجموع مفردة مباشرةً، يمكن تحويلها إلى قائمة أو زوج قبل استخدام الدالة sum().
  • مولدات (generators) لحساب مجموع القيم دون الحاجة إلى تخزينها في الذاكرة.

وتسمح الدالة sum() بتحديد قيمة افتراضية يتم إضافتها إلى مجموع العناصر، وذلك مفيد في الحالات التي تريد فيها حساب مجموع العناصر مع إضافة قيمة ثابتة، كالتالي:

sum([1, 2, 3], 5)  # سيُرجع 11

أيضًا تُتيح لك استبعاد القيم الفارغة مع مُرشِّح (filter) لاستبعاد القيم الفارغة من الحساب، كالتالي:

sum(filter(None, [1, None, 2, 3]))  # سيُرجع 6

أو استخدام تعبيرات lambda  لتطبيق وظيفة على كل عنصر قبل حساب مجموعها:

sum(list(map(lambda x: x**2, [1, 2, 3])))  # سيُرجع 14

أو دمج الدالة sum() مع وظائف أخرى لبناء تعبيرات معقدة، كالآتي:

max(sum(x) for x in my_list)  # سيُرجع أكبر مجموع لعناصر في قائمة my_list

شكرااا جدا لحضرتك 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...