كل الشروحات
M0وحدة تأسيسية

الوحدة التمهيدية — أساسيات Python والرياضيات

الأساس الذي تفترضه بقية المواضيع: Python (NumPy وPandas والبرمجة الكائنية) والرياضيات خلف التعلم الآلي — الاحتمالات والإحصاء والجبر الخطي والتحسين.

في هذه الصفحة

  1. شرح كل قسم
  2. تمارين تفاعلية بعد كل قسم
  3. بطاقات سؤال وجواب تُقلب
  4. اختبار على الموضوع كامل
  5. سيناريوهات ومصطلحات في آخر الصفحة

1. أساسيات Python

Python هي اللغة اللي كل أدوات التعلم الآلي مكتوبة فيها. لازم تقراها بارتياح قبل ما يصير أي شي ثاني له معنى.

Python فيها أنواع بيانات أساسية بتشوفها على طول. الـ list مجموعة مرتّبة تقدر تغيّرها: ‎[1, 2, 3]‎. والـ tuple تشبهها بس ما تقدر تغيّرها بعد ما تنشئها: ‎(1, 2, 3)‎. والـ dict تخزّن أزواج مفتاح وقيمة: ‎{"age": 30}‎. والـ set تحفظ قيم فريدة بلا ترتيب.

الفرق بين الـ list والـ tuple أهم مما يبدو. لأن الـ tuple ما تتغيّر، Python تقدر تستخدمها كمفتاح في القاموس. والـ list ما تنفع كمفتاح.

الدوال تُعرَّف بـ def. والمعاملات ممكن يكون لها قيم افتراضية، وتقدر تمرّرها بالاسم. والدالة ترجّع قيمة بـ return — ولو نسيت return، ترجّع لك None بصمت.

الـ list comprehension هي الاختصار اللي بتقراه في كل مكان: ‎[x * 2 for x in numbers if x > 0]‎. اقراها كذا: «خذ كل x في numbers، خلّه إذا كان موجب، وأعطني x ضرب اثنين».

وفيه فخ يقع فيه الكل تقريبًا: المعاملات الافتراضية القابلة للتغيير. لما تكتب ‎def f(items=[])‎، القائمة هذي تُنشأ مرة وحدة وتتشارك بين كل الاستدعاءات. استخدم ‎def f(items=None)‎ وأنشئ القائمة جوّه بدالها.

وفخ ثاني: الإسناد ما ينسخ. ‎b = a‎ يخلّي b يشير لنفس قائمة a، فتغيير وحدة يغيّر الثنتين. استخدم ‎a.copy()‎ لنسخة سطحية، أو ‎copy.deepcopy()‎ لما تكون القائمة فيها قوائم ثانية.

تخيّلها كذا

تخيّل الـ list سبورة — أي أحد يجي ويعدّل عليها. والـ tuple نفس المعلومات بس مطبوعة ومغلّفة: تقدر تقراها، بس ما حد يقدر يغيّرها. وهذا بالضبط ليش Python تثق بالـ tuple كمفتاح وترفض الـ list: المفتاح لازم يثبت.

المجموعات الأربع الأساسية
النوعمرتّبة؟قابلة للتغيير؟تكرار؟
listنعمنعمنعم
tupleنعملانعم
dictنعم (حسب الإدخال)نعممفاتيح فريدة
setلانعملا

نقاط أساسية للحفظ

  • الـ list قابلة للتغيير والـ tuple لا — ولهذا الـ tuple وحدها تنفع كمفتاح قاموس.
  • الـ set تخزّن قيم فريدة وما لها ترتيب.
  • لا تستخدم معامل افتراضي قابل للتغيير مثل ‎def f(x=[])‎ — استخدم None بداله.
  • ‏‎b = a‎ ما ينسخ؛ يشير لنفس الكائن.

مصطلحات مهمة

Mutable / Immutable
كائن يمكن تعديله في مكانه مقابل كائن لا يمكن تغييره بعد إنشائه.
List
تسلسل مرتّب قابل للتعديل — الحاوية الافتراضية في Python.
Tuple
تسلسل مرتّب غير قابل للتعديل، ويصلح مفتاحًا في القاموس.
Dictionary
ربط بين مفتاح وقيمة، ويُبحَث فيه بالمفتاح بسرعة شبه فورية.
List comprehension
تعبير مختصر يبني قائمة من عنصر قابل للتكرار في سطر واحد.

تمرّن على هذا القسم

0 / 6

بطاقات مراجعة سريعة

1 / 4

هذي معاينة مجانية

فتحنا لك القسم الأول عشان تشوف بالضبط كيف مكتوبة الشروحات. وبقية أقسام هذا الموضوع (6) بتمارينها وبطاقاتها تُفتح بالاشتراك.

اللي يبقى مقفلًا في هذا الموضوع:

  1. 2. البرمجة الكائنية في Python
  2. 3. NumPy والحوسبة المتّجهة
  3. 4. Pandas ومعالجة البيانات
  4. 5. الاحتمالات والإحصاء للتعلم الآلي
  5. 6. الجبر الخطي
  6. 7. التحسين والانحدار التدرّجي

الاشتراك يفتح هذا في المواضيع الثمانية كلها — كل الأقسام، وبنك الأسئلة الكامل، وتمارين السيناريوهات والمصطلحات، والاختبار الشامل.

افتح كل المحتوى

تدريب إضافي على هذا الموضوع

الاثنان يسحبان من كل الأقسام أعلاه، بترتيب عشوائي جديد كل مرة.