الدرس 9 من 10

الدوال المدمجة

هدف الدرس

أجب عن أسئلة البيانات في سطر

01

الشرح

كثير من الحلقات تُكتب لتجيب عن سؤال واحد، مثل: هل يوجد عنصر يحقّق الشرط؟ وهل تحقّقه كل العناصر؟ وما أكبرها؟ وكم مجموعها؟ ولكل سؤال من هذه دالة مدمجة في Python تجيب عنه في سطر يُقرأ كالسؤال نفسه.

الدالة any() تُرجع True إذا تحقّق الشرط في عنصر واحد على الأقل، وall() تُرجعها إذا تحقّق في كل العناصر، وكلتاهما تتوقّف بمجرّد أن تعرف الجواب. وmax(items, key=...) تُرجع العنصر الذي له أكبر مفتاح وليس المفتاح نفسه، كما في sorted.

وتمرّر إليها تعبيرًا مولّدًا (generator expression) مثل sum(n * n for n in nums)، وهو يشبه القائمة المختصرة لكن بلا أقواس مربّعة، فيُنتج القيم واحدة بعد أخرى دون أن يبني قائمة في الذاكرة.

وانتبه إلى الحالات الحدّية، فـ all([]) تُرجع True لأنه لا يوجد عنصر يخالف الشرط، وmax([]) ترفع الخطأ ValueError، فإذا كانت القائمة قد تكون فارغة فمرّر default= إلى max وmin.

02

المطلوب

احسب من products دون أي حلقة: total_stock وهو مجموع الكميات، وhas_out هل نفد منتج (أي كميته صفر)، وall_priced هل كل الأسعار موجبة، وpriciest وهو المنتج الأغلى كاملًا، وcheapest_name وهو اسم المنتج الأرخص.

الفحوص

6 فحوص
  1. المتغيّر total_stock هو مجموع الكميات
  2. قيمة has_out تقول إن منتجًا نفد
  3. قيمة all_priced تقول إن كل الأسعار موجبة
  4. المتغيّر priciest هو المنتج الأغلى كاملًا وليس سعره
  5. المتغيّر cheapest_name هو اسم الأرخص
  6. الحلّ بالدوال المدمجة والتعبيرات المولّدة دون حلقة أو قائمة مؤقّتة
main.py
المخرجاتPython (Pyodide)

نحمّل بيئة Python الآن. يحدث هذا مرّة واحدة فقط، ثم يحفظها متصفّحك.

–/6

يبدأ الفحص حين تجهز البيئة.

تجد 6 فحوص في بطاقة «المطلوب».