الوحدة التمهيدية — أساسيات Python والرياضيات
الأساس الذي تفترضه بقية المواضيع: Python (NumPy وPandas والبرمجة الكائنية) والرياضيات خلف التعلم الآلي — الاحتمالات والإحصاء والجبر الخطي والتحسين.
في هذه الصفحة
- شرح كل قسم
- تمارين تفاعلية بعد كل قسم
- بطاقات سؤال وجواب تُقلب
- اختبار على الموضوع كامل
- سيناريوهات ومصطلحات في آخر الصفحة
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) بتمارينها وبطاقاتها تُفتح بالاشتراك.
اللي يبقى مقفلًا في هذا الموضوع:
- 2. البرمجة الكائنية في Python
- 3. NumPy والحوسبة المتّجهة
- 4. Pandas ومعالجة البيانات
- 5. الاحتمالات والإحصاء للتعلم الآلي
- 6. الجبر الخطي
- 7. التحسين والانحدار التدرّجي
الاشتراك يفتح هذا في المواضيع الثمانية كلها — كل الأقسام، وبنك الأسئلة الكامل، وتمارين السيناريوهات والمصطلحات، والاختبار الشامل.
افتح كل المحتوىتدريب إضافي على هذا الموضوع
الاثنان يسحبان من كل الأقسام أعلاه، بترتيب عشوائي جديد كل مرة.