0% found this document useful (0 votes)
17 views74 pages

Basics of Python

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

Uploaded by

bboulaaras19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views74 pages

Basics of Python

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

Uploaded by

bboulaaras19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 74

‫أساسيات لغة بايثون‪ :‬دليل شامل للمبتدئين‬

‫(مقدمة)‬
‫أهالً بك في عالم بايثون‪ ،‬لغة البرمجة القوية والمرنة التي ُتعتبر مثالية للمبتدئين‬
‫والمحترفين على حد سواء‪ .‬سواء كنت تطمح إلى تطوير تطبيقات الويب‪ ،‬تحليل‬
‫البيانات‪ ،‬بناء الذكاء االصطناعي‪ ،‬أو حتى أتمتة المهام اليومية‪ ،‬فإن بايثون هي‬
‫األداة المناسبة لك‪ .‬هذا الكتاب هو دليلك المبسّط والشامل لتعلم أساسيات هذه اللغة‬
‫الشيقة‪ ،‬حيث سنأخذك خطوة بخطوة من الصفر حتى تتمكن من كتابة برامجك‬
‫الخاصة بثقة‪.‬‬
‫(الفصل األول‪ :‬لماذا بايثون؟)‬
‫في هذا الفصل‪ ،‬سنتعرف على األسباب التي جعلت بايثون واحدة من أكثر لغات‬
‫البرمجة شعبية في العالم‪ .‬سنناقش‪:‬‬
‫سهولة التعلم‪ :‬تتميز بايثون ببساطة تركيبها وقراءتها‪ ،‬مما يجعلها مثالية‬ ‫​●‬
‫للمبتدئين الذين ليس لديهم خبرة سابقة في البرمجة‪.‬‬
‫تنوع االستخدامات‪ُ :‬تستخدم بايثون في مجاالت واسعة‪ ،‬من تطوير الويب‬ ‫​●‬
‫وتطبيقات سطح المكتب إلى تحليل البيانات والذكاء االصطناعي‪.‬‬
‫المجتمع الكبير والدعم‪ :‬تتمتع بايثون بمجتمع ضخم من المطورين الذين‬ ‫​●‬
‫يقدمون الدعم والمساعدة باستمرار‪ ،‬باإلضافة إلى وجود العديد من المكتبات‬
‫واألدوات الجاهزة لالستخدام‪.‬‬
‫المصدر المفتوح‪ :‬بايثون هي لغة مفتوحة المصدر‪ ،‬مما يعني أنها مجانية‬ ‫​●‬
‫ويمكن استخدامها وتعديلها بحرية‪.‬‬
‫(الفصل الثاني‪ :‬بيئة التطوير)‬
‫قبل أن نبدأ البرمجة‪ ،‬نحتاج إلى تجهيز بيئة التطوير الخاصة بنا‪ .‬سنتعلم في هذا‬
‫الفصل‪:‬‬
‫تنزيل وتثبيت بايثون‪ :‬سنشرح كيفية تنزيل أحدث إصدار من بايثون وتثبيته‬
‫على نظام التشغيل الخاص بك (ويندوز‪ ،‬ماك‪ ،‬أو لينكس)‪.‬‬
‫​● محرر األكواد‪ :‬سنتعرف على محرر األكواد‪ ،‬وهو البرنامج الذي نكتب فيه‬
‫أوامر بايثون‪ .‬سنرشح بعض المحررات الشائعة مثل ‪ VS Code‬و‬
‫‪.PyCharm‬‬
‫​● تشغيل أول برنامج‪ :‬سنكتب أول برنامج لنا بلغة بايثون‪ ،‬وهو برنامج‬
‫"‪ "!Hello, World‬الشهير‪ ،‬وسنتعلم كيفية تشغيله‪.‬‬
‫(الفصل الثالث‪ :‬المتغيرات وأنواع البيانات)‬
‫في هذا الفصل‪ ،‬سنتعرف على المفاهيم األساسية في البرمجة‪ ،‬وهي‪:‬‬
‫​● المتغيرات‪ :‬المتغير هو مكان في الذاكرة لتخزين البيانات‪ .‬سنتعلم كيفية‬
‫تعريف المتغيرات وإعطاءها قيمًا‪.‬‬
‫​● أنواع البيانات‪ :‬تأتي البيانات بأنواع مختلفة‪ ،‬مثل األرقام (صحيحة‬
‫وعشرية)‪ ،‬النصوص‪ ،‬والقيم المنطقية (صحيح أو خطأ)‪ .‬سنتعلم كيفية‬
‫التعامل مع هذه األنواع المختلفة‪.‬‬
‫​● العمليات الحسابية‪ :‬سنتعلم كيفية إجراء العمليات الحسابية األساسية (‪،- ،+‬‬
‫*‪ )/ ،‬على األرقام‪.‬‬
‫(الفصل الرابع‪ :‬التحكم في التدفق)‬
‫التحكم في التدفق هو ما يسمح لنا بتحديد ترتيب تنفيذ األوامر في البرنامج‪ .‬سنتعلم‬
‫في هذا الفصل‪:‬‬

‫​● الشروط‪ :‬سنستخدم عبارات ‪ if‬و ‪ else‬لتنفيذ أوامر معينة إذا تحقق شرط‬
‫معين‪.‬‬
‫​● الحلقات‪ :‬سنستخدم حلقات ‪ for‬و ‪ while‬لتكرار تنفيذ مجموعة من‬
‫األوامر‪.‬‬
‫(الفصل الخامس‪ :‬الدوال)‬
‫الدوال هي مجموعة من األوامر التي تنفذ مهمة معينة‪ .‬سنتعلم في هذا الفصل‪:‬‬
‫​● تعريف الدوال‪ :‬سنتعلم كيفية تعريف دوال جديدة وإعطائها اسمًا‪.‬‬
‫​● استدعاء الدوال‪ :‬سنتعلم كيفية استدعاء الدوال لتنفيذها‪.‬‬
‫​● البارامترات والقيم المعادة‪ :‬سنتعلم كيفية تمرير بيانات إلى الدوال وإرجاع‬
‫نتائج منها‪.‬‬
‫(الفصل السادس‪ :‬القوائم)‬
‫القوائم هي هياكل بيانات تسمح لنا بتخزين مجموعة من العناصر‪ .‬سنتعلم في هذا‬
‫الفصل‪:‬‬
‫​● إنشاء القوائم‪ :‬سنتعلم كيفية إنشاء قوائم جديدة وإضافة عناصر إليها‪.‬‬
‫​● الوصول إلى العناصر‪ :‬سنتعلم كيفية الوصول إلى عناصر القائمة باستخدام‬
‫الفهارس‪.‬‬
‫​● العمليات على القوائم‪ :‬سنتعلم بعض العمليات الشائعة التي يمكننا القيام بها‬
‫على القوائم‪ ،‬مثل إضافة عناصر‪ ،‬حذف عناصر‪ ،‬وترتيب العناصر‪.‬‬
‫(الفصل السابع‪ :‬الخطوات التالية)‬
‫بعد أن تعلمنا أساسيات بايثون‪ ،‬سنناقش في هذا الفصل الخطوات التالية التي يمكنك‬
‫اتخاذها لتطوير مهاراتك في البرمجة‪ ،‬مثل‪:‬‬
‫​● التعمق في المكتبات‪ :‬توجد العديد من المكتبات في القوية بايثون التي تسهل‬
‫عليك القيام بمهام معينة‪.‬‬
‫​● المشاريع العملية‪ :‬أفضل طريقة لتعلم البرمجة هي التطبيق العملي‪ .‬سنقترح‬
‫بعض المشاريع البسيطة التي يمكنك القيام بها‪.‬‬
‫​● المصادر التعليمية‪ :‬سنرشح بعض المصادر التعليمية األخرى التي يمكن أن‬
‫تساعدك في رحلتك لتعلم بايثون‪.‬‬
‫الفصل الثامن‪ :‬التعامل مع الملفات‬

‫سنتعلم في هذا الفصل كيفية التعامل مع الملفات‪ ،‬وهو أمر ضروري لقراءة وكتابة‬
‫البيانات‪ .‬سنتناول‪:‬‬
‫فتح وقراءة الملفات‪ :‬سنتعلم كيفية فتح الملفات بأوضاع مختلفة وقراءة‬ ‫​●‬
‫محتواها‪.‬‬
‫الكتابة واإلضافة إلى الملفات‪ :‬سنتعلم كيفية كتابة بيانات جديدة أو إضافتها‬ ‫​●‬
‫إلى ملف موجود‪.‬‬
‫إدارة الملفات‪ :‬سنتعلم كيفية استخدام عبارة ‪ with‬إلدارة الملفات بكفاءة‪.‬‬ ‫​●‬
‫التعامل مع األخطاء‪ :‬سنتعلم كيفية التعامل مع األخطاء المحتملة أثناء التعامل‬ ‫​●‬
‫مع الملفات‪.‬‬

‫الفصل التاسع‪ :‬التعامل مع االستثناءات‬

‫سنتعلم في هذا الفصل كيفية التعامل مع االستثناءات (األخطاء) التي قد تحدث أثناء‬
‫تنفيذ البرنامج‪ .‬سنتناول‪:‬‬

‫‪ try‬و ‪ :except‬سنتعلم كيفية استخدام هذه العبارات للتعامل مع‬ ‫​●‬


‫االستثناءات‪.‬‬
‫أنواع االستثناءات‪ :‬سنتعلم بعض أنواع االستثناءات الشائعة‪.‬‬ ‫​●‬
‫رفع االستثناءات‪ :‬سنتعلم كيفية رفع استثناءات مخصصة‪.‬‬ ‫​●‬
‫‪ :try...except...finally‬سنتعلم كيفية استخدام هذه العبارة‬ ‫​●‬
‫لضمان تنفيذ أوامر معينة‪.‬‬

‫الفصل العاشر‪ :‬الوحدات والحزم‬

‫سنتعلم في هذا الفصل كيفية تنظيم الكود في وحدات وحزم لتسهيل إعادة استخدامه‪.‬‬
‫سنتناول‪:‬‬
‫​● إنشاء واستخدام الوحدات‪ :‬سنتعلم كيفية إنشاء وحدات جديدة واستخدامها‪.‬‬
‫​● إنشاء واستخدام الحزم‪ :‬سنتعلم كيفية إنشاء حزم لتنظيم الوحدات‪.‬‬
‫​● __‪ :init__.py‬سنتعلم دور هذا الملف في الحزم‪.‬‬

‫الفصل الحادي عشر‪ :‬البرمجة الشيئية (‪ - )OOP‬مقدمة‬

‫سنتعلم في هذا الفصل مقدمة عن البرمجة الشيئية‪ ،‬وهي نموذج برمجي قوي‪.‬‬
‫سنتناول‪:‬‬
‫الكائنات والفئات‪ :‬سنتعلم مفهوم الكائنات والفئات وكيفية إنشائها‪.‬‬ ‫​●‬
‫الخصائص واألساليب‪ :‬سنتعلم كيفية تعريف الخصائص واألساليب‬ ‫​●‬
‫واستخدامها‪.‬‬
‫‪ :self‬سنتعلم دور الكائن ‪.self‬‬ ‫​●‬
‫الوراثة‪ :‬سنتعلم مفهوم الوراثة‪.‬‬ ‫​●‬
‫تعدد األشكال‪ :‬سنتعلم مفهوم تعدد األشكال‪.‬‬ ‫​●‬
‫أساسيات لغة بايثون‪ :‬دليل شامل للمبتدئين‬

‫(مقدمة)‬
‫أهالً بك في عالم بايثون‪ ،‬لغة البرمجة القوية والمرنة التي ُتعتبر مثالية للمبتدئين‬
‫والمحترفين على حد سواء‪ .‬سواء كنت تطمح إلى تطوير تطبيقات الويب‪ ،‬تحليل‬
‫البيانات‪ ،‬بناء الذكاء االصطناعي‪ ،‬أو حتى أتمتة المهام اليومية‪ ،‬فإن بايثون هي‬
‫األداة المناسبة لك‪ .‬هذا الكتاب هو دليلك المبسّط والشامل لتعلم أساسيات هذه اللغة‬
‫الشيقة‪ ،‬حيث سنأخذك خطوة بخطوة من الصفر حتى تتمكن من كتابة برامجك‬
‫الخاصة بثقة‪.‬‬
‫لماذا بايثون؟‬
‫قد تتساءل‪ ،‬لماذا اخترنا بايثون تحدي ًدا؟ هناك العديد من لغات البرمجة األخرى‪،‬‬
‫فلماذا تكتسب بايثون هذه الشعبية الواسعة؟ الجواب يكمن في بساطتها ومرونتها‬
‫وتنوع استخداماتها‪ .‬بايثون ليست مجرد لغة برمجة‪ ،‬بل هي فلسفة وأسلوب حياة في‬
‫عالم تطوير البرمجيات‪ .‬إنها لغة مصممة لتكون سهلة القراءة والكتابة‪ ،‬مما يجعلها‬
‫مثالية للمبتدئين الذين يخطون خطواتهم األولى في هذا المجال‪.‬‬
‫ما الذي يميز بايثون؟‬
‫​● سهولة التعلم‪ :‬تتميز بايثون ببساطة تركيبها وقراءتها‪ .‬تشبه كلماتها‬
‫ومصطلحاتها اللغة اإلنجليزية بشكل كبير‪ ،‬مما يجعل فهم األوامر والتعليمات‬
‫أسهل بكثير من اللغات األخرى‪ .‬ال تحتاج إلى حفظ قواعد معقدة أو تراكيب‬
‫غريبة‪ ،‬بل يمكنك التركيز على منطق البرنامج وهدفه‪.‬‬
‫​● تنوع االستخدامات‪ُ :‬تستخدم بايثون في مجاالت واسعة ج ًدا‪ ،‬تكاد ال تجد‬
‫مجااًل ال يمكن لبايثون أن تخدمه فيه‪ .‬من تطوير تطبيقات الويب وتطبيقات‬
‫سطح المكتب‪ ،‬مرورً ا بتحليل البيانات والذكاء االصطناعي‪ ،‬وصواًل إلى أتمتة‬
‫المهام اليومية والتحكم في األجهزة الذكية‪ .‬هذا التنوع يجعل بايثون خيارً ا‬
‫مثاليًا ألي شخص يرغب في تعلم البرمجة‪ ،‬بغض النظر عن اهتماماته‬
‫وأهدافه‪.‬‬
‫​● المجتمع الكبير والدعم‪ :‬تتمتع بايثون بمجتمع ضخم من المطورين حول‬
‫العالم‪ .‬هذا يعني أنك لن تكون وحي ًدا في رحلتك لتعلم بايثون‪ .‬هناك العديد من‬
‫المنتديات‪ ،‬المجموعات‪ ،‬والمواقع اإللكترونية التي تقدم الدعم والمساعدة‬
‫للمبرمجين من جميع المستويات‪ .‬إذا واجهتك مشكلة‪ ،‬فمن المؤكد أنك ستجد‬
‫شخصًا يساعدك في حلها‪.‬‬
‫​● المصدر المفتوح‪ :‬بايثون هي لغة مفتوحة المصدر‪ ،‬مما يعني أنها مجانية‬
‫تمامًا ويمكن ألي شخص استخدامها وتعديلها وتوزيعها‪ .‬هذا يجعلها خيارً ا‬
‫مثاليًا لألفراد والشركات على حد سواء‪ ،‬حيث ال توجد تكاليف ترخيص أو‬
‫حقوق ملكية‪.‬‬
‫​● المكتبات واألدوات‪ :‬تتوفر لبايثون العديد من المكتبات واألدوات الجاهزة‬
‫لالستخدام‪ ،‬مما يوفر عليك الكثير من الجهد والوقت‪ .‬هذه المكتبات تحتوي‬
‫على دوال وأوامر جاهزة لتنفيذ مهام معينة‪ ،‬مثل التعامل مع قواعد البيانات‪،‬‬
‫تحليل البيانات‪ ،‬إنشاء الرسوم البيانية‪ ،‬وغيرها الكثير‪.‬‬
‫في هذا الكتاب‪ ،‬سنركز على أساسيات بايثون التي تحتاجها لالنطالق في عالم‬
‫البرمجة‪ .‬سنبدأ بتجهيز بيئة التطوير‪ ،‬ثم سنتعلم المتغيرات وأنواع البيانات‪،‬‬
‫وسنتطرق إلى التحكم في التدفق‪ ،‬الدوال‪ ،‬القوائم‪ ،‬وغيرها من المفاهيم األساسية‪.‬‬
‫سنقدم لك أمثلة عملية وتمارين لتطبيق ما تعلمته‪ ،‬حتى تتمكن من بناء فهم قوي‬
‫ألساسيات بايثون‪ .‬هيا بنا نبدأ رحلتنا الشيقة في عالم بايثون!‬
‫إذن‪ ،‬باختصار‪ ،‬بايثون هي لغة برمجة قوية ومتنوعة وسهلة التعلم‪ ،‬تتمتع بمجتمع‬
‫كبير ودعم ممتاز‪ ،‬وهي مجانية ومفتوحة المصدر‪ .‬كل هذه الميزات تجعلها خيارً ا‬
‫مثاليًا للمبتدئين الذين يرغبون في تعلم البرمجة‪ ،‬وكذلك للمحترفين الذين يبحثون عن‬
‫لغة مرنة وفعالة إلنجاز مشاريعهم‪.‬‬
‫نظرة سريعة على استخدامات بايثون‪:‬‬
‫كما ذكرنا ساب ًقا‪ ،‬بايثون ُتستخدم في مجاالت واسعة ج ًدا‪ .‬دعونا نلقي نظرة سريعة‬
‫على بعض األمثلة‪:‬‬
‫تطوير الويب‪ُ :‬تستخدم بايثون في تطوير تطبيقات الويب باستخدام ُأطر عمل‬ ‫​●‬
‫مثل ‪ Django‬و ‪ .Flask‬هذه اُألطر توفر أدوات وميزات تسهل عملية بناء‬
‫مواقع الويب الديناميكية والتفاعلية‪.‬‬
‫تحليل البيانات‪ُ :‬تعتبر بايثون لغة قوية ج ًدا في مجال تحليل البيانات‪ .‬مكتبات‬ ‫​●‬
‫مثل ‪ NumPy‬و ‪ Pandas‬توفر أدوات متقدمة للتعامل مع البيانات‬
‫وتنظيفها وتحليلها‪.‬‬
‫الذكاء االصطناعي وتعلم اآللة‪ُ :‬تستخدم بايثون على نطاق واسع في مجال‬ ‫​●‬
‫الذكاء االصطناعي وتعلم اآللة‪ .‬مكتبات مثل ‪ TensorFlow‬و ‪PyTorch‬‬
‫توفر أدوات قوية لبناء نماذج الذكاء االصطناعي وتدريبها‪.‬‬
‫أتمتة المهام‪ :‬يمكن استخدام بايثون ألتمتة المهام اليومية المتكررة‪ ،‬مثل‬ ‫​●‬
‫إرسال رسائل البريد اإللكتروني‪ ،‬إدارة الملفات‪ ،‬وجلب البيانات من‬
‫اإلنترنت‪.‬‬
‫تطبيقات سطح المكتب‪ :‬يمكن استخدام بايثون لتطوير تطبيقات سطح المكتب‬ ‫​●‬
‫باستخدام مكتبات مثل ‪ PyQt‬و ‪.Tkinter‬‬
‫تطبيقات األلعاب‪ :‬يمكن استخدام بايثون لتطوير األلعاب باستخدام مكتبات مثل‬ ‫​●‬
‫‪.Pygame‬‬
‫هذه مجرد أمثلة قليلة من العديد من االستخدامات الممكنة لبايثون‪ .‬كل يوم‪ ،‬يكتشف‬
‫المطورون استخدامات جديدة ومبتكرة لهذه اللغة القوية‪.‬‬
‫هل بايثون مناسبة لي؟‬
‫السؤال األهم هو‪ ،‬هل بايثون مناسبة لك؟ الجواب هو نعم‪ ،‬على األرجح! إذا كنت‬
‫ترغب في تعلم البرمجة‪ ،‬أو إذا كنت تبحث عن لغة سهلة ومرنة إلنجاز مشاريعك‪،‬‬
‫فإن بايثون هي خيار ممتاز‪ .‬ال تحتاج إلى أي خبرة سابقة في البرمجة لتبدأ تعلم‬
‫بايثون‪ .‬كل ما تحتاجه هو الرغبة في التعلم والمتابعة‪.‬‬
‫في الفصول القادمة‪ ،‬سنبدأ في استكشاف أساسيات بايثون خطوة بخطوة‪ .‬سنتعلم‬
‫كيفية تثبيت بايثون‪ ،‬كتابة أول برنامج لنا‪ ،‬التعامل مع المتغيرات وأنواع البيانات‪،‬‬
‫والعديد من المفاهيم األساسية األخرى‪ .‬سنقدم لك أمثلة عملية وتمارين لتطبيق ما‬
‫تعلمته‪ ،‬حتى تتمكن من بناء فهم قوي ألساسيات بايثون‪ .‬استعد لالنطالق في رحلة‬
‫شيقة ومثمرة في عالم البرمجة مع بايثون!‬

‫الفصل الثاني‪ :‬بيئة التطوير)‬


‫اآلن‪ ،‬بعد أن تعرفنا على بايثون وأهميتها‪ ،‬حان الوقت لتجهيز بيئة التطوير الخاصة‬
‫بنا‪ .‬بيئة التطوير هي المكان الذي سنكتب فيه أوامر بايثون وننفذها‪ .‬سنقوم بتثبيت‬
‫بايثون‪ ،‬اختيار محرر أكواد مناسب‪ ،‬وكتابة وتشغيل أول برنامج لنا‪.‬‬
‫‪ .1‬تنزيل وتثبيت بايثون‪:‬‬
‫أول خطوة هي تنزيل أحدث إصدار من بايثون‪ .‬يمكنك زيارة الموقع الرسمي‬
‫لبايثون‪www.python.org :‬‬
‫في صفحة التنزيالت‪ ،‬اختر نظام التشغيل الخاص بك (ويندوز‪ ،‬ماك‪ ،‬أو لينكس)‪.‬‬
‫سيتم توجيهك إلى صفحة تحتوي على روابط التنزيل‪ .‬اختر أحدث إصدار مستقر‬
‫من بايثون (عاد ًة ما يكون موصى به)‪.‬‬
‫بعد تنزيل الملف‪ ،‬قم بتشغيله‪ .‬اتبع التعليمات التي تظهر على الشاشة إلتمام عملية‬
‫التثبيت‪ .‬تأكد من تحديد خيار "‪ "Add Python to PATH‬أثناء التثبيت‪ .‬هذا‬
‫الخيار سيسمح لك بتشغيل بايثون من سطر األوامر (‪ Terminal‬أو ‪Command‬‬
‫‪.)Prompt‬‬
‫‪ .2‬محرر األكواد‪:‬‬
‫محرر األكواد هو برنامج نستخدمه لكتابة أوامر بايثون‪ .‬هناك العديد من محررات‬
‫األكواد المتاحة‪ ،‬بعضها مجاني وبعضها مدفوع‪ .‬سنرشح لك بعض الخيارات‬
‫الشائعة والمناسبة للمبتدئين‪:‬‬
‫​● ‪ :)VS Code (Visual Studio Code‬محرر أكواد مجاني ومفتوح‬
‫المصدر من مايكروسوفت‪ .‬يتميز بواجهة مستخدم بسيطة وقوية‪ ،‬ويدعم‬
‫العديد من اللغات‪ ،‬بما في ذلك بايثون‪ .‬يحتوي ‪ VS Code‬على العديد من‬
‫اإلضافات التي تسهل عملية البرمجة‪ ،‬مثل اإلكمال التلقائي لألكواد وتصحيح‬
‫األخطاء‪.‬‬
‫​● ‪ :PyCharm‬محرر أكواد متخصص في بايثون‪ .‬يحتوي على العديد من‬
‫الميزات المتقدمة‪ ،‬مثل تصحيح األخطاء‪ ،‬إدارة المشاريع‪ ،‬والتحكم في‬
‫اإلصدارات‪ .‬يوجد إصدار مجاني (‪ )Community Edition‬مناسب‬
‫للمبتدئين‪.‬‬
‫​● ‪ :Sublime Text‬محرر أكواد قوي ومرن‪ .‬يتميز بواجهة مستخدم أنيقة‬
‫وسرعة األداء‪ .‬لكنه ليس مجانيًا‪ ،‬ولكنه يوفر فترة تجريبية مجانية‪.‬‬
‫​● ‪ :Atom‬محرر أكواد مجاني ومفتوح المصدر من ‪ .GitHub‬يشبه ‪VS‬‬
‫‪ Code‬في العديد من النواحي‪ ،‬ويدعم العديد من اللغات‪.‬‬
‫ننصحك بتجربة ‪ VS Code‬أو ‪( PyCharm‬اإلصدار المجاني) في البداية‪.‬‬
‫كالهما خيار ممتاز للمبتدئين‪ ،‬ويوفران العديد من الميزات التي تسهل عملية تعلم‬
‫بايثون‪.‬‬
‫‪ .3‬تشغيل أول برنامج‪:‬‬
‫بعد تثبيت بايثون واختيار محرر األكواد‪ ،‬حان الوقت لكتابة وتشغيل أول برنامج‬
‫لنا‪ .‬سنكتب برنامج "‪ "!Hello, World‬الشهير‪ ،‬الذي يطبع عبارة "‪Hello,‬‬
‫‪ "!World‬على الشاشة‪.‬‬

‫افتح محرر األكواد الذي اخترته‪ ،‬وأنشئ مل ًفا جدي ًدا باسم ‪ .hello.py‬اكتب‬
‫الكود التالي في الملف‪:‬‬
‫‪Python‬‬
‫‪)"!print("Hello, World‬‬

‫احفظ الملف‪ .‬اآلن‪ ،‬افتح سطر األوامر (‪ Terminal‬أو ‪)Command Prompt‬‬


‫وانتقل إلى المجلد الذي حفظت فيه الملف ‪ .hello.py‬يمكنك فعل ذلك باستخدام‬
‫األمر ‪ .)cd (Change Directory‬على سبيل المثال‪ ،‬إذا كان الملف موجو ًدا‬
‫في المجلد ‪ ،Documents/PythonProjects‬يمكنك االنتقال إليه‬
‫باستخدام األمر‪:‬‬
‫‪Bash‬‬
‫‪cd Documents/PythonProjects‬‬

‫بعد االنتقال إلى المجلد‪ ،‬قم بتشغيل البرنامج باستخدام األمر التالي‪:‬‬
‫‪Bash‬‬
‫‪python hello.py‬‬

‫إذا تم كل شيء بشكل صحيح‪ ،‬سترى العبارة "‪ "!Hello, World‬مطبوعة على‬
‫الشاشة‪ .‬تهانينا! لقد كتبت وشغلت أول برنامج لك بلغة بايثون!‬
‫في الفصل التالي‪ ،‬سنتعلم المزيد عن المتغيرات وأنواع البيانات في بايثون‪.‬‬

‫‪Gemini can make m‬‬

‫الفصل الثالث‪ :‬المتغيرات وأنواع البيانات)‬


‫في هذا الفصل‪ ،‬سنتعرف على مفهومين أساسيين في البرمجة‪ :‬المتغيرات وأنواع‬
‫البيانات‪ .‬سنشرح ما هي المتغيرات‪ ،‬وكيف نستخدمها لتخزين البيانات‪ ،‬وما هي‬
‫أنواع البيانات المختلفة التي يمكننا التعامل معها في بايثون‪.‬‬
‫‪ .1‬المتغيرات‪:‬‬
‫المتغير هو مكان في الذاكرة لتخزين البيانات‪ .‬يمكن تشبيهه بصندوق يحمل اسمًا‬
‫معي ًنا‪ ،‬ويمكننا وضع أي نوع من البيانات داخل هذا الصندوق‪ .‬عندما نريد استخدام‬
‫البيانات المخزنة في المتغير‪ ،‬فإننا نشير إلى اسم المتغير‪.‬‬
‫لتسمية المتغيرات في بايثون‪ ،‬هناك بعض القواعد التي يجب اتباعها‪:‬‬
‫يجب أن يبدأ اسم المتغير بحرف (‪ a-z‬أو ‪ )A-Z‬أو بشرطة سفلية (_)‪.‬‬ ‫​●‬
‫يمكن أن يحتوي اسم المتغير على حروف وأرقام وشرطات سفلية‪.‬‬ ‫​●‬
‫أسماء المتغيرات حساسة لحالة األحرف (‪ name‬يختلف عن ‪.)Name‬‬ ‫​●‬
‫ال يمكن استخدام الكلمات المحجوزة في بايثون كأسماء للمتغيرات (مثل ‪if،‬‬ ‫​●‬
‫‪ ،else، for‬وغيرها)‪.‬‬

‫لتعريف متغير في بايثون وإعطائه قيمة‪ ،‬نستخدم عالمة المساواة (=)‪ .‬على سبيل‬
‫المثال‪:‬‬
‫‪Python‬‬
‫‪"name = "John Doe‬‬
‫‪age = 30‬‬
‫‪height = 1.85‬‬
‫‪is_student = True‬‬
‫في هذا المثال‪ ،‬قمنا بتعريف أربعة متغيرات‪ ،name، age، height :‬و‬
‫‪ .is_student‬كل متغير يحمل قيمة مختلفة‪.‬‬

‫‪ .2‬أنواع البيانات‪:‬‬
‫تأتي البيانات بأنواع مختلفة‪ .‬في بايثون‪ ،‬هناك بعض أنواع البيانات األساسية التي‬
‫يجب أن تعرفها‪:‬‬
‫​● األرقام (‪ُ :)Numbers‬تستخدم لتمثيل األرقام‪ .‬هناك نوعان رئيسيان من‬
‫األرقام‪:‬‬
‫​○ األعداد الصحيحة (‪ :)Integers‬مثل ‪.3- ،2- ،1- ،3 ،2 ،1‬‬
‫​○ األعداد العشرية (‪ :)Floating-point numbers‬مثل ‪،3.14‬‬
‫‪.1.5- ،2.71‬‬
‫​● النصوص (‪ُ :)Strings‬تستخدم لتمثيل النصوص‪ُ .‬تكتب النصوص بين‬
‫عالمتي اقتباس مفردة (') أو مزدوجة (")‪ .‬مثل "‪Hello, World!"،‬‬
‫‪.''Python‬‬
‫​● القيم المنطقية (‪ُ :)Booleans‬تستخدم لتمثيل القيم الصحيحة أو الخاطئة‪.‬‬
‫هناك قيمتان منطقيتان فقط‪ True :‬و ‪.False‬‬

‫يمكننا معرفة نوع البيانات المخزنة في متغير باستخدام الدالة ‪ .)(type‬على‬


‫سبيل المثال‪:‬‬
‫‪Python‬‬
‫‪"name = "John Doe‬‬
‫‪ # ))print(type(name‬سيطبع <‪( >'class 'str‬نص)‬

‫‪age = 30‬‬
‫‪ # ))print(type(age‬سيطبع <‪( >'class 'int‬عدد صحيح)‬

‫‪height = 1.85‬‬
‫‪ # ))print(type(height‬سيطبع <‪( >'class 'float‬عدد عشري)‬

‫‪is_student = True‬‬
‫‪ # ))print(type(is_student‬سيطبع <‪( >'class 'bool‬قيمة منطقية)‬

‫‪ .3‬العمليات على البيانات‪:‬‬


‫يمكننا إجراء عمليات مختلفة على البيانات‪ ،‬مثل العمليات الحسابية على األرقام‪،‬‬
‫ودمج النصوص‪ ،‬وغيرها‪.‬‬
‫​● العمليات الحسابية‪ :‬يمكننا استخدام عوامل الجمع (‪ ،)+‬الطرح (‪ ،)-‬الضرب‬
‫(*)‪ ،‬القسمة (‪ ،)/‬والقوة (**) إلجراء العمليات الحسابية على األرقام‪.‬‬
‫​● دمج النصوص‪ :‬يمكننا استخدام عامل الجمع (‪ )+‬لدمج النصوص‪ .‬على سبيل‬
‫المثال‪:‬‬
‫‪Python‬‬
‫‪" ,greeting = "Hello‬‬
‫‪"name = "John Doe‬‬
‫‪message = greeting + name‬‬
‫‪ # )print(message‬سيطبع ‪Hello, John Doe‬‬

‫في الفصل التالي‪ ،‬سنتعلم المزيد عن التحكم في التدفق‪ ،‬وكيف نستخدم الشروط‬
‫والحلقات لتنفيذ أوامر معينة بنا ًء على شروط معينة‪.‬‬
‫الفصل الرابع‪ :‬التحكم في التدفق)‬
‫التحكم في التدفق هو مفهوم أساسي في البرمجة يسمح لنا بتحديد ترتيب تنفيذ‬
‫األوامر في البرنامج‪ .‬بدون التحكم في التدفق‪ ،‬سيتم تنفيذ األوامر سطرً ا بسطر من‬
‫األعلى إلى األسفل‪ .‬ولكن في كثير من األحيان‪ ،‬نحتاج إلى تنفيذ أوامر معينة بنا ًء‬
‫على شروط معينة‪ ،‬أو تكرار تنفيذ مجموعة من األوامر عدة مرات‪ .‬هنا يأتي دور‬
‫التحكم في التدفق‪.‬‬
‫في هذا الفصل‪ ،‬سنتعرف على نوعين رئيسيين من التحكم في التدفق‪ :‬الشروط‬
‫والحلقات‪.‬‬
‫‪ .1‬الشروط (‪:)Conditional Statements‬‬
‫ُتستخدم الشروط لتنفيذ أوامر معينة إذا تحقق شرط معين‪ .‬في بايثون‪ ،‬نستخدم‬
‫عبارات ‪ if‬و ‪( elif‬اختصار لـ "‪ )"else if‬و ‪ else‬لتحقيق ذلك‪.‬‬

‫​● عبارة ‪ُ :if‬تستخدم لتنفيذ أوامر معينة إذا كان الشرط صحيحً ا (‪.)True‬‬
‫الصيغة العامة لعبارة ‪ if‬هي‪:‬‬

‫‪Python‬‬
‫‪:if condition‬‬
‫‪ #‬أوامر يتم تنفيذها إذا كان الشرط صحيحً ا‬

‫​● عبارة ‪ُ :elif‬تستخدم إلضافة شروط إضافية‪ .‬إذا كان الشرط األول في‬
‫عبارة ‪ if‬خاطًئ ا (‪ ،)False‬يتم فحص الشرط في عبارة ‪ .elif‬يمكن أن‬
‫يكون لدينا أكثر من عبارة ‪ .elif‬الصيغة العامة لعبارة ‪ elif‬هي‪:‬‬
‫‪Python‬‬
‫‪:elif condition‬‬
‫‪ #‬أوامر يتم تنفيذها إذا كان الشرط صحيحً ا‬

‫​● عبارة ‪ُ :else‬تستخدم لتنفيذ أوامر معينة إذا كان جميع الشروط السابقة‬
‫خاطئة‪ .‬الصيغة العامة لعبارة ‪ else‬هي‪:‬‬

‫‪Python‬‬
‫‪:else‬‬
‫‪ #‬أوامر يتم تنفيذها إذا كانت جميع الشروط السابقة خاطئة‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪age = 20‬‬

‫‪:if age >= 18‬‬


‫‪"(print‬أنت بالغ")‬
‫‪:elif age >= 13‬‬
‫‪"(print‬أنت مراهق")‬
‫‪:else‬‬
‫‪"(print‬أنت طفل")‬

‫‪ .2‬الحلقات (‪:)Loops‬‬
‫ُتستخدم الحلقات لتكرار تنفيذ مجموعة من األوامر عدة مرات‪ .‬في بايثون‪ ،‬لدينا‬
‫نوعان رئيسيان من الحلقات‪ :‬حلقات ‪ for‬وحلقات ‪.while‬‬

‫​● حلقة ‪ُ :for‬تستخدم لتكرار تنفيذ أوامر معينة لعدد محدد من المرات‪ ،‬أو‬
‫للتكرار على عناصر مجموعة (مثل قائمة أو نص)‪ .‬الصيغة العامة لحلقة‬
‫‪ for‬هي‪:‬‬

‫‪Python‬‬
‫‪:for item in sequence‬‬
‫‪ #‬أوامر يتم تنفيذها لكل عنصر في المجموعة‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪"[ = fruits‬تفاح"‪" ,‬موز"‪" ,‬برتقال"]‬

‫‪:for fruit in fruits‬‬


‫‪)print(fruit‬‬
‫ً‬
‫شرطا معي ًنا‬ ‫​● حلقة ‪ُ :while‬تستخدم لتكرار تنفيذ أوامر معينة طالما أن‬
‫صحيحً ا‪ .‬الصيغة العامة لحلقة ‪ while‬هي‪:‬‬

‫‪Python‬‬
‫‪:while condition‬‬
‫‪ #‬أوامر يتم تنفيذها طالما أن الشرط صحيحً ا‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪i=0‬‬

‫‪:while i < 5‬‬


‫‪)print(i‬‬
‫‪i += 1‬‬

‫‪ break .3‬و ‪:continue‬‬

‫​● ‪ُ :break‬تستخدم للخروج من الحلقة بشكل كامل‪.‬‬


‫​● ‪ُ :continue‬تستخدم لتخطي التكرار الحالي واالنتقال إلى التكرار التالي‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:)for i in range(10‬‬
‫‪:if i == 5‬‬
‫‪ # break‬الخروج من الحلقة عند الوصول إلى ‪5‬‬
‫‪:if i % 2 == 0‬‬
‫‪ # continue‬تخطي األعداد الزوجية‬
‫‪)print(i‬‬

‫في الفصل التالي‪ ،‬سنتعلم عن الدوال‪ ،‬وكيف نستخدمها لتنظيم الكود وجعله أكثر‬
‫قابلية للقراءة وإعادة االستخدام‪.‬‬
‫الفصل الخامس‪ :‬الدوال)‬
‫الدوال هي مجموعة من األوامر التي تنفذ مهمة معينة‪ُ .‬تعتبر الدوال من أهم المفاهيم‬
‫في البرمجة‪ ،‬حيث تساعدنا على تنظيم الكود وجعله أكثر قابلية للقراءة وإعادة‬
‫االستخدام‪ .‬بدالً من كتابة نفس مجموعة األوامر عدة مرات‪ ،‬يمكننا تعريف دالة‬
‫واحدة تحتوي على هذه األوامر‪ ،‬ثم استدعاء هذه الدالة في أي مكان في البرنامج‪.‬‬
‫‪ .1‬تعريف الدوال‪:‬‬

‫لتعريف دالة في بايثون‪ ،‬نستخدم الكلمة المفتاحية ‪ ،def‬متبوعة باسم الدالة‪ ،‬ثم‬
‫قوسين ()‪ ،‬ثم نقطتين رأسيتين (‪ .):‬بعد ذلك‪ ،‬نكتب األوامر التي تنفذها الدالة داخل‬
‫مسافة بادئة‪ .‬الصيغة العامة لتعريف دالة هي‪:‬‬
‫‪Python‬‬
‫‪:)def function_name(parameters‬‬
‫‪ #‬أوامر يتم تنفيذها بواسطة الدالة‬
‫‪ # return value‬قيمة يتم إرجاعها بواسطة الدالة (اختياري)‬

‫​● ‪ :function_name‬اسم الدالة‪ .‬يجب أن يتبع نفس قواعد تسمية‬


‫المتغيرات‪.‬‬
‫​● ‪ :parameters‬البارامترات هي قيم يتم تمريرها إلى الدالة عند‬
‫استدعائها‪ .‬يمكن أن تحتوي الدالة على أي عدد من البارامترات‪ ،‬أو ال تحتوي‬
‫على أي بارامترات على اإلطالق‪.‬‬
‫​● ‪ :return value‬قيمة يتم إرجاعها بواسطة الدالة‪ .‬يمكن للدالة إرجاع‬
‫أي نوع من البيانات‪ ،‬أو ال ُترجع أي قيمة على اإلطالق‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:)def greet(name‬‬
‫‪"!" + message = "Hello, " + name‬‬
‫‪return message‬‬

‫‪:)def add(x, y‬‬


‫‪return x + y‬‬

‫‪ .2‬استدعاء الدوال‪:‬‬
‫الستدعاء دالة‪ ،‬نكتب اسم الدالة‪ ،‬متبوعًا بقوسين ()‪ ،‬وداخل القوسين نمرر القيم التي‬
‫نريد تمريرها كبارامترات للدالة‪ .‬على سبيل المثال‪:‬‬
‫‪Python‬‬
‫‪)"message = greet("John‬‬
‫‪ # )print(message‬سيطبع ‪!Hello, John‬‬

‫‪)sum = add(5, 3‬‬


‫‪ # )print(sum‬سيطبع ‪8‬‬
‫‪ .3‬البارامترات والقيم المعادة‪:‬‬
‫​● البارامترات‪ :‬تسمح لنا بتمرير بيانات إلى الدوال‪ .‬يمكن للدالة استخدام هذه‬
‫البيانات لتنفيذ مهمتها‪.‬‬
‫​● القيم المعادة‪ :‬تسمح لنا بإرجاع نتائج من الدوال‪ .‬يمكننا استخدام هذه النتائج‬
‫في أماكن أخرى في البرنامج‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:)def calculate_area(length, width‬‬
‫‪area = length * width‬‬
‫‪return area‬‬

‫‪)area = calculate_area(10, 5‬‬


‫‪"(print‬المساحة‪ # )area ,":‬سيطبع المساحة‪50 :‬‬

‫‪ .4‬نطاق المتغيرات (‪:)Scope‬‬


‫نطاق المتغير هو الجزء من البرنامج الذي يمكن فيه الوصول إلى المتغير‪ .‬في‬
‫بايثون‪ ،‬لدينا نوعان رئيسيان من نطاق المتغيرات‪:‬‬
‫​● المتغيرات المحلية (‪ :)Local Variables‬يتم تعريفها داخل الدالة‪ ،‬وال‬
‫يمكن الوصول إليها إال داخل تلك الدالة‪.‬‬
‫​● المتغيرات العامة (‪ :)Global Variables‬يتم تعريفها خارج أي دالة‪،‬‬
‫ويمكن الوصول إليها من أي مكان في البرنامج‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪ # global_variable = 10‬متغير عام‬

‫‪:)(def my_function‬‬
‫‪ # local_variable = 5‬متغير محلي‬
‫‪ # )print(global_variable‬يمكن الوصول إلى المتغير العام‬
‫‪ # )print(local_variable‬يمكن الوصول إلى المتغير المحلي‬

‫‪)(my_function‬‬
‫‪ # )print(global_variable‬يمكن الوصول إلى المتغير العام‬
‫‪ # )print(local_variable #‬ال يمكن الوصول إلى المتغير المحلي خارج‬
‫الدالة‬

‫الدوال تساعدنا على تقسيم البرنامج إلى أجزاء صغيرة ومنطقية‪ ،‬مما يجعل الكود‬
‫أسهل في القراءة والصيانة‪ .‬كما أنها تسمح لنا بإعادة استخدام الكود‪ ،‬مما يوفر علينا‬
‫الوقت والجهد‪ .‬في الفصل التالي‪ ،‬سنتعلم عن هياكل البيانات‪ ،‬مثل القوائم‪ ،‬وكيف‬
‫نستخدمها لتخزين مجموعات من البيانات‪.‬‬
‫(الفصل السابع‪ :‬المجموعات والقواميس)‬
‫باإلضافة إلى القوائم‪ ،‬توفر بايثون هياكل بيانات أخرى مفيدة‪ ،‬مثل المجموعات‬
‫(‪ )Sets‬والقواميس (‪ .)Dictionaries‬سنتعرف في هذا الفصل على هذه الهياكل‬
‫وكيفية استخدامها‪.‬‬
‫‪ .1‬المجموعات (‪:)Sets‬‬
‫المجموعة هي هيكل بيانات غير مرتب يحتوي على عناصر فريدة فقط‪ .‬ال يمكن أن‬
‫تحتوي المجموعة على عناصر مكررة‪ُ .‬تستخدم المجموعات غالبًا إلزالة العناصر‬
‫المكررة من البيانات‪ ،‬أو إلجراء عمليات رياضية على المجموعات (مثل االتحاد‬
‫والتقاطع)‪.‬‬
‫​● إنشاء المجموعات‪:‬‬

‫إلنشاء مجموعة‪ ،‬نكتب العناصر داخل أقواس معقوفة {}‪ ،‬ونفصل بينها بفواصل‬
‫‪.,‬‬

‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪}numbers = {1, 2, 3, 4, 5‬‬
‫‪"{ = fruits‬تفاح"‪" ,‬موز"‪" ,‬برتقال"}‬
‫‪}mixed_set = {1, "Hello", 3.14, True‬‬
‫‪ # )(empty_set = set‬مجموعة فارغة (مالحظة‪ُ }{ :‬تستخدم إلنشاء قاموس‬
‫فارغ)‬
‫​● العمليات على المجموعات‪:‬‬
‫توفر بايثون العديد من العمليات على المجموعات‪ ،‬مثل‪:‬‬
‫* **`‪ **:`)(add‬إضافة عنصر إلى المجموعة‪.‬‬
‫* **`‪ **:`)(remove‬حذف عنصر من المجموعة‪.‬‬
‫* **`‪ **:`)(discard‬حذف عنصر من المجموعة (إذا كان موجو ًدا)‪.‬‬
‫* **`‪ **:`)(clear‬حذف جميع العناصر من المجموعة‪.‬‬
‫* **`‪ **:`)(union‬إرجاع اتحاد المجموعتين‪.‬‬
‫* **`‪ **:`)(intersection‬إرجاع تقاطع المجموعتين‪.‬‬
‫* **`‪ **:`)(difference‬إرجاع الفرق بين المجموعتين‪.‬‬

‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪}set1 = {1, 2, 3‬‬
‫‪}set2 = {3, 4, 5‬‬

‫‪)set1.add(6‬‬
‫‪ # )print(set1‬سيطبع {‪}6 ,3 ,2 ,1‬‬
‫‪)set1.remove(2‬‬
‫‪ # )print(set1‬سيطبع {‪}6 ,3 ,1‬‬

‫‪ # ))print(set1.union(set2‬سيطبع {‪}6 ,5 ,4 ,3 ,1‬‬


‫‪ # ))print(set1.intersection(set2‬سيطبع {‪}3‬‬
‫‪ # ))print(set1.difference(set2‬سيطبع {‪}6 ,1‬‬

‫‪ .2‬القواميس (‪:)Dictionaries‬‬
‫القاموس هو هيكل بيانات يُخزن البيانات في شكل أزواج (مفتاح‪ :‬قيمة)‪ .‬يُستخدم‬
‫المفتاح للوصول إلى القيمة المرتبطة به‪ُ .‬تعتبر القواميس مفيدة ج ًدا لتخزين البيانات‬
‫التي تحتاج إلى الوصول إليها بسرعة باستخدام مفاتيح فريدة‪.‬‬
‫​● إنشاء القواميس‪:‬‬

‫إلنشاء قاموس‪ ،‬نكتب األزواج (مفتاح‪ :‬قيمة) داخل أقواس معقوفة {}‪ ،‬ونفصل بين‬
‫األزواج بفواصل ‪ .,‬يجب أن يكون المفتاح فري ًدا وغير قابل للتغيير (مثل نص أو‬
‫رقم)‪.‬‬
‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪person = {"name": "John Doe", "age": 30, "city": "New‬‬
‫‪}"York‬‬
‫‪ # }{ = empty_dict‬قاموس فارغ‬
‫​● الوصول إلى القيم‪:‬‬
‫يمكننا الوصول إلى قيمة معينة باستخدام المفتاح الخاص بها‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪person = {"name": "John Doe", "age": 30, "city": "New‬‬
‫‪}"York‬‬

‫‪ # )]"print(person["name‬سيطبع ‪John Doe‬‬


‫‪ # )]"print(person["age‬سيطبع ‪30‬‬

‫​● تعديل القيم‪:‬‬


‫يمكننا تعديل قيمة معينة عن طريق تعيين قيمة جديدة للمفتاح الخاص بها‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪person = {"name": "John Doe", "age": 30, "city": "New‬‬
‫‪}"York‬‬
‫‪person["age"] = 31‬‬
name': 'John Doe', 'age': 31, 'city':'{ ‫ سيطبع‬# )print(person
}''New York

:‫​● إضافة عناصر‬


.‫يمكننا إضافة عنصر جديد إلى القاموس عن طريق تعيين قيمة لمفتاح جديد‬
:‫مثال‬
Python
}person = {"name": "John Doe", "age": 30
"person["occupation"] = "Programmer
name': 'John Doe', 'age': 30,'{ ‫ سيطبع‬# )print(person
}''occupation': 'Programmer

:‫​● حذف عناصر‬

.del ‫يمكننا حذف عنصر من القاموس باستخدام الكلمة المفتاحية‬

:‫مثال‬
Python
person = {"name": "John Doe", "age": 30, "occupation":
}""Programmer
]"del person["occupation
‫‪ # )print(person‬سيطبع {'‪}name': 'John Doe', 'age': 30‬‬

‫​● العمليات على القواميس‪:‬‬


‫هناك العديد من العمليات التي يمكننا إجراؤها على القواميس‪ ،‬مثل‪:‬‬
‫* **`‪ **:`)(keys‬إرجاع قائمة بجميع المفاتيح‪.‬‬
‫* **`‪ **:`)(values‬إرجاع قائمة بجميع القيم‪.‬‬
‫* **`‪ **:`)(items‬إرجاع قائمة بجميع األزواج (مفتاح‪ :‬قيمة)‪.‬‬
‫* **`‪ **:`)(get‬إرجاع قيمة المفتاح المحدد (إذا كان موجو ًدا)‪ ،‬وإال إرجاع قيمة‬
‫افتراضية‪.‬‬

‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪}person = {"name": "John Doe", "age": 30‬‬

‫‪ # ))(print(person.keys‬سيطبع ‪)]'dict_keys(['name', 'age‬‬


‫‪ # ))(print(person.values‬سيطبع ‪)]dict_values(['John Doe', 30‬‬
‫‪ # ))(print(person.items‬سيطبع ‪dict_items([('name', 'John‬‬
‫‪)])Doe'), ('age', 30‬‬
‫‪ # ))"print(person.get("city", "Unknown‬سيطبع ‪( Unknown‬ألن‬
‫المفتاح "‪ "city‬غير موجود)‬

‫المجموعات والقواميس هما هيكال بيانات قويان يُكمالن القوائم‪ ،‬ويُستخدمان على‬
‫نطاق واسع في بايثون لتنظيم البيانات والوصول إليها بكفاءة‪ .‬في الفصل التالي‪،‬‬
‫سنناقش كيفية التعامل مع الملفات في بايثون‪.‬‬
‫الفصل الثامن‪ :‬التعامل مع الملفات)‬
‫يُعتبر التعامل مع الملفات جزءًا أساسيًا من البرمجة‪ .‬في كثير من األحيان‪ ،‬نحتاج‬
‫إلى قراءة بيانات من ملف‪ ،‬أو كتابة بيانات إلى ملف‪ .‬توفر بايثون أدوات قوية‬
‫وسهلة االستخدام للتعامل مع الملفات‪.‬‬
‫‪ .1‬فتح الملفات‪:‬‬

‫لفتح ملف في بايثون‪ ،‬نستخدم الدالة ‪ .)(open‬تأخذ هذه الدالة وسيطين‪ :‬اسم‬
‫الملف‪ ،‬ووضع الفتح‪ .‬وضع الفتح يحدد الطريقة التي سيتم بها فتح الملف (للقراءة‪،‬‬
‫للكتابة‪ ،‬أو لإلضافة)‪.‬‬
‫أمثلة ألوضاع الفتح‪:‬‬

‫​● "‪ :"r‬للقراءة فقط (الوضع االفتراضي)‪.‬‬


‫​● "‪ :"w‬للكتابة فقط (سيتم حذف محتوى الملف إذا كان موجو ًدا)‪.‬‬
‫​● "‪ :"a‬لإلضافة (سيتم إضافة البيانات إلى نهاية الملف)‪.‬‬
‫​● "‪ :"rb‬للقراءة فقط في الوضع الثنائي‪.‬‬
‫​● "‪ :"wb‬للكتابة فقط في الوضع الثنائي‪.‬‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪ # )"file = open("my_file.txt", "r‬فتح الملف للقراءة‬

‫‪ .2‬قراءة الملفات‪:‬‬
‫بعد فتح الملف‪ ،‬يمكننا قراءة محتواه باستخدام عدة طرق‪:‬‬
‫​● ‪ :)(read‬يقرأ جميع محتوى الملف كسلسلة نصية واحدة‪.‬‬
‫​● ‪ :)(readline‬يقرأ سطرً ا واح ًدا من الملف‪.‬‬
‫​● ‪ :)(readlines‬يقرأ جميع أسطر الملف ويُرجعها كقائمة من السالسل‬
‫النصية‪.‬‬
‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪)"file = open("my_file.txt", "r‬‬

‫‪ # )(content = file.read‬قراءة جميع المحتوى‬


‫‪)print(content‬‬

‫‪ # )(file.close‬إغالق الملف بعد االنتهاء من استخدامه‬

‫‪Python‬‬
‫‪)"file = open("my_file.txt", "r‬‬

‫‪ # )(line = file.readline‬قراءة سطر واحد‬


‫‪)print(line‬‬
‫‪ # )(lines = file.readlines‬قراءة جميع األسطر‬
‫‪)print(lines‬‬

‫‪)(file.close‬‬

‫‪ .3‬الكتابة إلى الملفات‪:‬‬

‫للكتابة إلى ملف‪ ،‬نفتح الملف في وضع الكتابة ("‪ "w‬أو "‪ ،)"a‬ثم نستخدم الدالة‬
‫‪ )(write‬لكتابة البيانات‪.‬‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪ # )"file = open("my_file.txt", "w‬فتح الملف للكتابة‬

‫‪ # )"file.write("Hello, World!\n‬كتابة نص إلى الملف‬


‫‪)"file.write("This is a new line.\n‬‬

‫‪)(file.close‬‬

‫‪ .4‬اإلضافة إلى الملفات‪:‬‬


‫إلضافة بيانات إلى نهاية ملف موجود‪ ،‬نفتح الملف في وضع اإلضافة ("‪.)"a‬‬

‫مثال‪:‬‬
‫‪Python‬‬
‫‪ # )"file = open("my_file.txt", "a‬فتح الملف لإلضافة‬

‫‪)"file.write("This line is appended.\n‬‬

‫‪)(file.close‬‬

‫‪ .5‬استخدام ‪:with‬‬

‫الطريقة المُثلى للتعامل مع الملفات هي استخدام عبارة ‪ .with‬تضمن هذه العبارة‬


‫إغالق الملف تلقائيًا حتى لو حدث خطأ أثناء التعامل معه‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:with open("my_file.txt", "r") as file‬‬
‫‪)(content = file.read‬‬
‫‪)print(content‬‬
‫‪ #‬ال حاجة إلغالق الملف يدويًا‪ ،‬سيتم إغالقه تلقائيًا‬

‫‪ .6‬التعامل مع األخطاء‪:‬‬
‫من المهم التعامل مع األخطاء التي قد تحدث أثناء التعامل مع الملفات‪ ،‬مثل عدم‬
‫وجود الملف‪ .‬يمكننا استخدام عبارات ‪ try‬و ‪ except‬للتعامل مع هذه‬
‫األخطاء‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:try‬‬
‫‪:with open("nonexistent_file.txt", "r") as file‬‬
‫‪)(content = file.read‬‬
‫‪)print(content‬‬
‫‪:except FileNotFoundError‬‬
‫‪"(print‬الملف غير موجود‪)".‬‬

‫التعامل مع الملفات هو مهارة أساسية في البرمجة‪ ،‬و ُتستخدم في العديد من‬


‫التطبيقات‪ ،‬مثل قراءة البيانات من ملفات التكوين‪ ،‬تخزين البيانات في ملفات‪،‬‬
‫ومعالجة النصوص‪ .‬هذا الفصل يغطي أساسيات التعامل مع الملفات في بايثون‪،‬‬
‫وهناك المزيد من الميزات المتقدمة التي يمكنك استكشافها في وثائق بايثون‪.‬‬
‫الفصل التاسع‪ :‬التعامل مع االستثناءات)‬
‫في عالم البرمجة‪ ،‬األخطاء واردة‪ .‬قد تحدث أخطاء أثناء تنفيذ البرنامج‪ ،‬مثل‬
‫محاولة قسمة عدد على صفر‪ ،‬أو الوصول إلى عنصر غير موجود في قائمة‪ ،‬أو‬
‫محاولة فتح ملف غير موجود‪ُ .‬تسمى هذه األخطاء باالستثناءات (‪.)Exceptions‬‬
‫من المهم التعامل مع االستثناءات بشكل صحيح حتى ال يتوقف البرنامج عن العمل‬
‫بشكل مفاجئ‪.‬‬

‫‪ try .1‬و ‪:except‬‬

‫ُتستخدم عبارات ‪ try‬و ‪ except‬للتعامل مع االستثناءات‪ .‬نضع الكود الذي قد‬


‫يسبب استثناء داخل كتلة ‪ .try‬إذا حدث استثناء‪ ،‬يتم االنتقال إلى كتلة ‪except‬‬
‫للتعامل مع هذا االستثناء‪.‬‬

‫الصيغة العامة لعبارة ‪ try‬و ‪ except‬هي‪:‬‬

‫‪Python‬‬
‫‪:try‬‬
‫‪ #‬الكود الذي قد يسبب استثناء‬
‫‪:except ExceptionType‬‬
‫‪ #‬الكود الذي يتم تنفيذه إذا حدث استثناء من النوع ‪ExceptionType‬‬

‫يمكن أن يكون لدينا أكثر من كتلة ‪ except‬للتعامل مع أنواع مختلفة من‬


‫االستثناءات‪ .‬يمكننا أيضًا استخدام كتلة ‪ else‬لتنفيذ كود معين إذا لم يحدث أي‬
‫استثناء‪ .‬وأخيرً ا‪ ،‬يمكننا استخدام كتلة ‪ finally‬لتنفيذ كود معين دائمًا‪ ،‬سواء‬
‫حدث استثناء أم ال‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:try‬‬
‫‪ # result = 10 / 0‬قد يسبب استثناء ‪ZeroDivisionError‬‬
‫‪:except ZeroDivisionError‬‬
‫‪"(print‬ال يمكن القسمة على صفر‪)".‬‬
‫‪:except TypeError‬‬
‫‪"(print‬نوع البيانات غير صحيح‪)".‬‬
‫‪:else‬‬
‫‪"(print‬لم يحدث أي استثناء‪)".‬‬
‫‪:finally‬‬
‫‪"(print‬سيتم تنفيذ هذا الكود دائمًا‪)".‬‬

‫‪ .2‬أنواع االستثناءات‪:‬‬
‫هناك العديد من أنواع االستثناءات في بايثون‪ ،‬مثل‪:‬‬

‫​● ‪ :ZeroDivisionError‬يحدث عند محاولة القسمة على صفر‪.‬‬


‫​● ‪ :TypeError‬يحدث عند استخدام نوع بيانات غير صحيح في عملية‬
‫معينة‪.‬‬
‫​● ‪ :IndexError‬يحدث عند محاولة الوصول إلى فهرس غير موجود في‬
‫قائمة‪.‬‬
‫​● ‪ :FileNotFoundError‬يحدث عند محاولة فتح ملف غير موجود‪.‬‬
‫​● ‪ :ValueError‬يحدث عند تمرير قيمة غير صحيحة إلى دالة‪.‬‬

‫يمكنك االطالع على قائمة كاملة بأنواع االستثناءات في وثائق بايثون‪.‬‬


‫‪ .3‬رفع االستثناءات‪:‬‬

‫يمكننا أيضًا رفع استثناءات يدويًا باستخدام الكلمة المفتاحية ‪ .raise‬يُستخدم هذا‬
‫عندما نريد إجبار حدوث استثناء معين في حالة معينة‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:)def divide(x, y‬‬
‫‪:if y == 0‬‬
‫‪"(raise ZeroDivisionError‬ال يمكن القسمة على صفر‪)".‬‬
‫‪return x / y‬‬

‫‪:try‬‬
‫‪)result = divide(10, 0‬‬
‫‪:except ZeroDivisionError as e‬‬
‫‪)print(e‬‬

‫‪:try...except...finally .4‬‬

‫ُتستخدم كتلة ‪ finally‬لتنفيذ كود معين دائمًا‪ ،‬سواء حدث استثناء أم ال‪ .‬يُستخدم‬
‫هذا غالبًا لتنظيف الموارد‪ ،‬مثل إغالق الملفات أو االتصاالت بقواعد البيانات‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:try‬‬
‫‪)"file = open("my_file.txt", "r‬‬
‫‪ ... #‬التعامل مع الملف ‪...‬‬
‫‪:except FileNotFoundError‬‬
‫‪"(print‬الملف غير موجود‪)".‬‬
‫‪:finally‬‬
‫‪if 'file' in locals() and file is not None: #check if the file‬‬
‫‪exists and is not none before closing‬‬
‫‪ # )(file.close‬إغالق الملف دائمًا‬

‫التعامل مع االستثناءات بشكل صحيح يجعل برامجنا أكثر موثوقية وقادرة على‬
‫التعامل مع األخطاء بشكل سلس‪ .‬يُعتبر فهم كيفية استخدام ‪ try‬و ‪ except‬و‬
‫‪ finally‬مهارة أساسية لكل مبرمج بايثون‪ .‬هذا الفصل يغطي أساسيات التعامل‬
‫مع االستثناءات‪ ،‬وهناك المزيد من التقنيات المتقدمة التي يمكنك استكشافها في‬
‫وثائق بايثون‪.‬‬
‫الفصل العاشر‪ :‬الوحدات والحزم)‬
‫مع نمو حجم مشاريعنا البرمجية‪ ،‬يصبح من الضروري تنظيم الكود وتقسيمه إلى‬
‫أجزاء صغيرة قابلة إلعادة االستخدام‪ .‬هنا يأتي دور الوحدات (‪)Modules‬‬
‫والحزم (‪.)Packages‬‬
‫‪ .1‬الوحدات (‪:)Modules‬‬
‫الوحدة هي ملف يحتوي على كود بايثون (دوال‪ ،‬متغيرات‪ ،classes ،‬إلخ)‪.‬‬
‫تسمح لنا الوحدات بتنظيم الكود وجعله أكثر قابلية للقراءة والصيانة‪ .‬كما أنها تسمح‬
‫لنا بإعادة استخدام الكود في مشاريع مختلفة‪.‬‬
‫​● إنشاء الوحدات‪:‬‬

‫إلنشاء وحدة‪ ،‬ببساطة نكتب كود بايثون في ملف بامتداد ‪ .py.‬اسم الملف هو اسم‬
‫الوحدة‪.‬‬

‫مثال‪ :‬لنفترض أن لدينا مل ًفا باسم ‪ my_module.py‬يحتوي على الكود التالي‪:‬‬

‫‪Python‬‬
‫‪:)def greet(name‬‬
‫‪"!" + return "Hello, " + name‬‬

‫‪:)def add(x, y‬‬


‫‪return x + y‬‬

‫​● استخدام الوحدات‪:‬‬


.import ‫ نستخدم الكلمة المفتاحية‬،‫الستخدام وحدة في برنامجنا‬

:‫مثال‬
Python
import my_module

)"message = my_module.greet("John
!Hello, John ‫ سيطبع‬# )print(message

)sum = my_module.add(5, 3
8 ‫ سيطبع‬# )print(sum

.from ‫يمكننا أيضًا استيراد أسماء معينة من الوحدة باستخدام الكلمة المفتاحية‬

:‫مثال‬
Python
from my_module import greet

)"message = greet("Jane
!Hello, Jane ‫ سيطبع‬# )print(message
‫أو استيراد كل شيء من الوحدة‪:‬‬
‫‪Python‬‬
‫‪* from my_module import‬‬

‫‪)"message = greet("David‬‬
‫‪)sum = add(10, 20‬‬
‫‪ # )print(message‬سيطبع ‪!Hello, David‬‬
‫‪ #‬سيطبع ‪30‬‬ ‫‪)print(sum‬‬

‫‪ .2‬الحزم (‪:)Packages‬‬
‫الحزمة هي طريقة لتنظيم الوحدات ذات الصلة معًا‪ .‬الحزمة هي مجلد يحتوي على‬
‫ملف خاص باسم __‪( init__.py‬قد يكون فار ًغا)‪ .‬يمكن أن تحتوي الحزمة‬
‫على وحدات فرعية وحزم فرعية أخرى‪.‬‬
‫​● إنشاء الحزم‪:‬‬

‫إلنشاء حزمة‪ ،‬نقوم بإنشاء مجلد يحتوي على ملف __‪ .init__.py‬يمكننا‬
‫وضع وحدات بايثون داخل هذا المجلد‪.‬‬

‫مثال‪ :‬لنفترض أن لدينا حزمة باسم ‪ my_package‬تحتوي على مجلد فرعي‬


‫باسم ‪ utils‬يحتوي على الوحدة ‪.my_module.py‬‬
:‫​● استخدام الحزم‬
.‫ نستخدم اسم الحزمة واسم الوحدة‬،‫الستخدام وحدة داخل حزمة‬
:‫مثال‬
Python
import my_package.utils.my_module

)"message = my_package.utils.my_module.greet("Sarah
!Hello, Sarah ‫ سيطبع‬# )print(message

:‫أو‬
Python
from my_package.utils.my_module import greet

)"message = greet("Mike
!Hello, Mike ‫ سيطبع‬# )print(message

:init__.py__ .3
‫ملف __‪ init__.py‬هو ملف خاص في كل حزمة‪ .‬يُستخدم لتهيئة الحزمة‪.‬‬
‫يمكن أن يكون فار ًغا‪ ،‬أو يمكن أن يحتوي على كود يتم تنفيذه عند استيراد الحزمة‪.‬‬
‫يمكننا أيضًا استخدام __‪ init__.py‬لجعل بعض الوحدات أو الدوال أو‬
‫‪ classes‬متاحة مباشرة عند استيراد الحزمة‪ ،‬بداًل من االضطرار الستيرادها من‬
‫الوحدات الفرعية‪.‬‬
‫مثال‪:‬‬

‫في ملف ‪:my_package/utils/__init__.py‬‬

‫‪Python‬‬
‫‪ # from .my_module import greet, add‬جعل ‪ greet‬و ‪ add‬متاحة‬
‫مباشرة‬

‫ثم في ملف آخر‪:‬‬


‫‪Python‬‬
‫‪import my_package.utils‬‬

‫‪ # )"message = my_package.utils.greet("Lisa‬يمكن الوصول إلى‬


‫‪ greet‬مباشرة‬
‫‪)print(message‬‬
‫الوحدات والحزم تساعدنا على تنظيم الكود وجعله أكثر قابلية إلعادة االستخدام‬
‫والصيانة‪ .‬يُعتبر استخدام الوحدات والحزم جزءًا أساسيًا من تطوير مشاريع بايثون‬
‫الكبيرة‪ .‬هذا الفصل يقدم مقدمة إلى الوحدات والحزم‪ ،‬وهناك المزيد من الميزات‬
‫المتقدمة التي يمكنك استكشافها في وثائق بايثون‪.‬‬
‫الفصل الحادي عشر‪ :‬البرمجة الشيئية (‪ - )OOP‬مقدمة)‬
‫البرمجة الشيئية (‪ )Object-Oriented Programming - OOP‬هي نموذج‬
‫برمجي يعتمد على مفهوم "الكائنات" (‪ ،)Objects‬وهي عبارة عن كتل من‬
‫البيانات والكود التي تعمل على هذه البيانات‪ُ .‬تعتبر ‪ OOP‬من أقوى وأكثر النماذج‬
‫البرمجية استخدامًا‪ ،‬حيث تساعد على تنظيم الكود وجعله أكثر قابلية إلعادة‬
‫االستخدام والتوسع‪.‬‬
‫‪ .1‬الكائنات (‪:)Objects‬‬
‫الكائن هو مثيل لفئة (‪ .)Class‬الفئة هي مخطط أو نموذج للكائنات‪ .‬تحتوي‬
‫الكائنات على بيانات ( ُتسمى خصائص أو سمات ‪ )Attributes -‬وكود يعمل على‬
‫هذه البيانات (يُسمى أساليب أو دوال ‪.)Methods -‬‬

‫مثال‪ :‬لنفترض أن لدينا فئة باسم ‪( Car‬سيارة)‪ .‬يمكن أن تحتوي الكائنات من هذه‬
‫الفئة على خصائص مثل ‪( color‬اللون)‪( model ،‬الموديل)‪speed ،‬‬
‫(السرعة)‪ ،‬وأساليب مثل ‪( )(start‬تشغيل)‪( )(stop ،‬إيقاف)‪،‬‬
‫‪( )(accelerate‬تسريع)‪.‬‬

‫‪ .2‬الفئات (‪:)Classes‬‬
‫الفئة هي مخطط أو نموذج إلنشاء الكائنات‪ .‬تحدد الفئة الخصائص واألساليب التي‬
‫ستحتوي عليها الكائنات من تلك الفئة‪.‬‬
‫​● تعريف الفئات‪:‬‬

‫لتعريف فئة في بايثون‪ ،‬نستخدم الكلمة المفتاحية ‪.class‬‬

‫مثال‪:‬‬
‫‪Python‬‬
:class Car
)Constructor( ‫ دالة البناء‬# :)def __init__(self, color, model
self.color = color
self.model = model
self.speed = 0

:)def start(self
)".‫("السيارة تعمل‬print

:)def accelerate(self, increment


self.speed += increment
)self.speed ,":‫("السرعة‬print

:‫​● إنشاء الكائنات‬


.)( ‫ نستخدم اسم الفئة متبوعًا بقوسين‬،‫إلنشاء كائن من فئة‬
:‫مثال‬
Python
)"Toyota" ,"‫("أحمر‬my_car = Car
‫‪"(another_car = Car‬أزرق"‪)"Honda" ,‬‬

‫‪ .3‬الخصائص (‪ )Attributes‬واألساليب (‪:)Methods‬‬


‫​● الخصائص‪ :‬هي البيانات التي يحتوي عليها الكائن‪ .‬يتم تعريفها داخل دالة‬
‫البناء __‪.)(__init‬‬
‫​● األساليب‪ :‬هي الدوال التي تعمل على بيانات الكائن‪ .‬يتم تعريفها داخل الفئة‪.‬‬
‫مثال (تابع)‪:‬‬
‫‪Python‬‬
‫‪ # )(my_car.start‬استدعاء أسلوب ‪)(start‬‬
‫‪ # )my_car.accelerate(50‬استدعاء أسلوب ‪)(accelerate‬‬
‫‪ # )print(my_car.color‬الوصول إلى خاصية ‪color‬‬

‫‪:self .4‬‬

‫الوسيط ‪ self‬هو وسيط إلزامي في جميع أساليب الفئة‪ .‬يشير ‪ self‬إلى الكائن‬
‫الحالي الذي يتم استدعاء األسلوب عليه‪.‬‬

‫‪ .5‬دالة البناء __‪:)(__init‬‬

‫دالة البناء __‪ )(__init‬هي دالة خاصة يتم استدعاؤها تلقائيًا عند إنشاء كائن‬
‫جديد من الفئة‪ُ .‬تستخدم هذه الدالة لتهيئة خصائص الكائن‪.‬‬
‫‪ .6‬الوراثة (‪:)Inheritance‬‬
‫الوراثة هي آلية تسمح لنا بإنشاء فئات جديدة ( ُتسمى الفئات المشتقة أو‬
‫‪ )subclasses‬ترث خصائص وأساليب فئات موجودة ( ُتسمى الفئات األساسية أو‬
‫‪ .)superclasses‬تسمح لنا الوراثة بتجنب تكرار الكود وإضافة خصائص‬
‫وأساليب جديدة إلى الفئات المشتقة‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪ class ElectricCar(Car): # ElectricCar‬ترث من ‪Car‬‬
‫‪:)def __init__(self, color, model, battery_capacity‬‬
‫‪ # )super().__init__(color, model‬استدعاء دالة البناء للفئة‬
‫األساسية‬
‫‪self.battery_capacity = battery_capacity‬‬

‫‪:)def charge(self‬‬
‫‪"(print‬جاري شحن البطارية‪)".‬‬

‫‪ .7‬تعدد األشكال (‪:)Polymorphism‬‬


‫تعدد األشكال هو مفهوم يسمح لنا باستخدام كائنات من فئات مختلفة بطريقة موحدة‪.‬‬
‫يمكننا استدعاء نفس األسلوب على كائنات من فئات مختلفة‪ ،‬وسيقوم كل كائن بتنفيذ‬
‫األسلوب بطريقته الخاصة‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪"(cars = [Car‬أحمر"‪"(Toyota"), ElectricCar" ,‬أزرق"‪Tesla"," ,‬‬
‫‪])100‬‬

‫‪:for car in cars‬‬


‫‪ # )(car.start‬كل كائن سينفذ ‪ )(start‬بطريقته الخاصة‬

‫البرمجة الشيئية هي نموذج برمجي قوي ومرن‪ ،‬و ُتستخدم على نطاق واسع في‬
‫تطوير التطبيقات الكبيرة والمعقدة‪ .‬هذا الفصل يقدم مقدمة إلى ‪ ،OOP‬وهناك‬
‫المزيد من المفاهيم والميزات المتقدمة التي يمكنك استكشافها في وثائق بايثون‪.‬‬
‫الفصل الثاني عشر‪ :‬مكتبات بايثون القياسية)‬
‫بايثون ال تأتي فقط مع اللغة األساسية‪ ،‬بل أيضًا مع مجموعة واسعة من المكتبات‬
‫القياسية (‪ )Standard Libraries‬التي توفر وظائف جاهزة لالستخدام في‬
‫مختلف المجاالت‪ .‬هذه المكتبات تسهل علينا الكثير من العمل وتوفر حلواًل لمشاكل‬
‫شائعة‪ .‬في هذا الفصل‪ ،‬سنستعرض بعضًا من أهم مكتبات بايثون القياسية‪.‬‬

‫‪( os .1‬نظام التشغيل)‪:‬‬

‫توفر مكتبة ‪ os‬وظائف للتعامل مع نظام التشغيل‪ ،‬مثل التعامل مع الملفات‬


‫والمجلدات‪ ،‬تشغيل األوامر‪ ،‬والحصول على معلومات عن النظام‪.‬‬
‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪import os‬‬

‫‪ #‬الحصول على المسار الحالي‬


‫‪)(current_path = os.getcwd‬‬
‫‪)print(current_path‬‬

‫‪ #‬إنشاء مجلد‬
‫‪)"os.mkdir("new_directory #‬‬
‫‪ #‬حذف مجلد‬
‫‪)"os.rmdir("new_directory #‬‬

‫‪ #‬قائمة الملفات والمجلدات في مسار معين‬


‫‪)"."(files = os.listdir‬‬
‫‪)print(files‬‬

‫‪ #‬تغيير اسم ملف أو مجلد‬


‫‪)"os.rename("old_name.txt", "new_name.txt #‬‬

‫‪( sys .2‬النظام)‪:‬‬

‫توفر مكتبة ‪ sys‬وظائف للتعامل مع بيئة بايثون‪ ،‬مثل الوصول إلى وسائط سطر‬
‫األوامر‪ ،‬التعامل مع المدخالت والمخرجات القياسية‪ ،‬والخروج من البرنامج‪.‬‬
‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪import sys‬‬

‫‪ #‬وسائط سطر األوامر‬


‫‪arguments = sys.argv‬‬
‫‪)print(arguments‬‬

‫‪ #‬الخروج من البرنامج‬
‫‪)(sys.exit #‬‬

‫‪( math .3‬الرياضيات)‪:‬‬

‫توفر مكتبة ‪ math‬دوال رياضية متقدمة‪ ،‬مثل الدوال المثلثية‪ ،‬اللوغاريتمات‪،‬‬


‫والجذور التربيعية‪.‬‬
‫أمثلة‪:‬‬
‫‪Python‬‬
‫‪import math‬‬

‫‪ #‬الجذر التربيعي‬
‫‪)square_root = math.sqrt(25‬‬
‫‪)print(square_root‬‬

‫‪ #‬الدوال المثلثية‬
)sine = math.sin(math.pi / 2
)print(sine

‫ اللوغاريتم‬#
)logarithm = math.log(10
)print(logarithm

:)‫ (األرقام العشوائية‬random .4

.‫ دوال لتوليد أرقام عشوائية‬random ‫توفر مكتبة‬

:‫أمثلة‬
Python
import random

1 ‫ و‬0 ‫ رقم عشوائي بين‬#


)(random_number = random.random
)print(random_number

‫ عدد صحيح عشوائي بين نطاق معين‬#


)random_integer = random.randint(1, 10
)print(random_integer

‫ اختيار عنصر عشوائي من قائمة‬#


]my_list = [1, 2, 3, 4, 5
)random_element = random.choice(my_list
)print(random_element

:)‫ (التاريخ والوقت‬datetime .5

.‫ للتعامل مع التاريخ والوقت‬datetime classes ‫توفر مكتبة‬

:‫أمثلة‬
Python
import datetime

‫ التاريخ والوقت الحالي‬#


)(now = datetime.datetime.now
)print(now
‫ تنسيق التاريخ والوقت‬#
)"formatted_date = now.strftime("%Y-%m-%d %H:%M:%S
)print(formatted_date

‫ العمليات على التاريخ والوقت‬#


)(today = datetime.date.today
)tomorrow = today + datetime.timedelta(days=1
)print(tomorrow

:)json (JSON .6

JSON (JavaScript Object ‫ وظائف للتعامل مع بيانات‬json ‫توفر مكتبة‬


‫ هو تنسيق بيانات شائع االستخدام لتبادل البيانات بين‬Notation). JSON
.‫التطبيقات‬
:‫أمثلة‬
Python
import json

JSON ‫ تحويل قاموس إلى‬#


}person = {"name": "John Doe", "age": 30
)json_data = json.dumps(person
)print(json_data

‫ إلى قاموس‬JSON ‫ تحويل‬#


)data = json.loads(json_data
)print(data

:)‫ (التعبيرات النمطية‬re .7

Regular( ‫ وظائف للتعامل مع التعبيرات النمطية‬re ‫توفر مكتبة‬


‫ ُتستخدم التعبيرات النمطية للبحث عن أنماط معينة في‬.)Expressions
.‫النصوص‬
:‫أمثلة‬
Python
import re

".text = "This is a sample text


‫‪ #‬البحث عن كلمة "‪"sample‬‬
‫‪)match = re.search("sample", text‬‬
‫‪:if match‬‬
‫‪)"!print("Found match‬‬

‫‪ #‬استبدال كلمة "‪ "sample‬بكلمة "‪"example‬‬


‫‪)new_text = re.sub("sample", "example", text‬‬
‫‪)print(new_text‬‬

‫هذه مجرد أمثلة قليلة من العديد من مكتبات بايثون القياسية‪ .‬توفر هذه المكتبات‬
‫وظائف جاهزة لالستخدام في مختلف المجاالت‪ ،‬مما يجعل تطوير تطبيقات بايثون‬
‫أسرع وأسهل‪ .‬ننصحك باستكشاف المزيد من المكتبات القياسية في وثائق بايثون‪،‬‬
‫حيث ستجد العديد من األدوات القوية التي يمكن أن تساعدك في مشاريعك‪.‬‬
‫(الفصل الثالث عشر‪ :‬مكتبات بايثون الخارجية)‬
‫باإلضافة إلى مكتبات بايثون القياسية‪ ،‬هناك العديد من المكتبات الخارجية‬
‫(‪ )External Libraries‬التي يمكننا استخدامها لتوسيع قدرات بايثون‪ .‬هذه‬
‫المكتبات ُتطوّ رها مجتمعات المطورين‪ ،‬وتوفر وظائف متخصصة في مجاالت‬
‫مختلفة‪ ،‬مثل تحليل البيانات‪ ،‬تعلم اآللة‪ ،‬تطوير الويب‪ ،‬وغيرها‪ .‬في هذا الفصل‪،‬‬
‫سنستعرض بعضًا من أهم مكتبات بايثون الخارجية‪.‬‬

‫‪( NumPy .1‬التحليل العددي)‪:‬‬

‫ُتعتبر ‪ NumPy‬مكتبة أساسية في مجال التحليل العددي باستخدام بايثون‪ .‬توفر‬


‫‪ NumPy‬دعمًا للمصفوفات متعددة األبعاد‪ ،‬باإلضافة إلى العديد من الدوال‬
‫الرياضية واإلحصائية التي تعمل على هذه المصفوفات بكفاءة عالية‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪import numpy as np‬‬

‫‪ #‬إنشاء مصفوفة‬
‫‪)]array = np.array([1, 2, 3, 4, 5‬‬

‫‪ #‬العمليات على المصفوفات‬


‫‪ # )mean = np.mean(array‬المتوسط الحسابي‬
‫‪ # )std = np.std(array‬االنحراف المعياري‬
‫‪ #‬العمليات الحسابية على المصفوفات‬
‫‪ # array = array * 2‬ضرب كل عنصر في ‪2‬‬

‫‪( Pandas .2‬تحليل البيانات)‪:‬‬

‫ُتعتبر ‪ Pandas‬مكتبة قوية ج ًدا في مجال تحليل البيانات‪ .‬توفر ‪Pandas‬‬


‫هياكل بيانات مرنة مثل ‪( DataFrame‬جدول البيانات) و ‪( Series‬سلسلة‬
‫البيانات)‪ ،‬والتي تسهل التعامل مع البيانات وتنظيفها وتحليلها‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪import pandas as pd‬‬

‫‪ #‬إنشاء ‪DataFrame‬‬
‫‪}]data = {'Name': ['John', 'Jane', 'David'], 'Age': [25, 30, 28‬‬
‫‪)df = pd.DataFrame(data‬‬

‫‪ #‬قراءة بيانات من ملف ‪CSV‬‬


‫‪)"df = pd.read_csv("data.csv #‬‬
‫‪ #‬عرض البيانات‬
‫‪)print(df‬‬

‫‪ #‬تحليل البيانات‬
‫‪)(mean_age = df['Age'].mean‬‬
‫‪)print(mean_age‬‬

‫‪( Matplotlib .3‬الرسوم البيانية)‪:‬‬

‫ُتعتبر ‪ Matplotlib‬مكتبة شائعة ج ًدا إلنشاء رسوم بيانية في بايثون‪ .‬توفر‬


‫‪ Matplotlib‬مجموعة واسعة من األدوات إلنشاء رسوم بيانية مختلفة‪ ،‬مثل‬
‫الرسوم الخطية‪ ،‬الشريطية‪ ،‬الدائرية‪ ،‬والتوزيعات االحتمالية‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪import matplotlib.pyplot as plt‬‬

‫‪]x = [1, 2, 3, 4, 5‬‬


‫‪]y = [2, 4, 1, 5, 3‬‬
‫ رسم خط‬# )plt.plot(x, y
)"plt.xlabel("X-axis
)"plt.ylabel("Y-axis
)"plt.title("Sample Plot
)(plt.show

:)‫ (تعلم اآللة‬Scikit-learn .4

‫ توفر‬.‫ مكتبة قوية في مجال تعلم اآللة‬Scikit-learn ‫ُتعتبر‬


‫ العديد من الخوارزميات واألدوات الجاهزة لالستخدام في‬Scikit-learn
.‫ والتجميع‬،‫ االنحدار‬،‫ مثل التصنيف‬،‫مهام تعلم اآللة المختلفة‬
:‫مثال‬
Python
from sklearn.linear_model import LinearRegression

‫ إنشاء نموذج انحدار خطي‬#


)(model = LinearRegression
‫‪ #‬تدريب النموذج‬
‫‪ # ]]X = [[1], [2], [3‬البيانات‬
‫‪ # ]y = [2, 4, 6‬النتائج‬
‫‪)model.fit(X, y‬‬

‫‪ #‬التنبؤ‬
‫‪)]]prediction = model.predict([[4‬‬
‫‪)print(prediction‬‬

‫‪( Requests .5‬التعامل مع الويب)‪:‬‬

‫ُتستخدم مكتبة ‪ Requests‬إلرسال طلبات ‪ HTTP‬إلى خوادم الويب‪ُ .‬تعتبر هذه‬


‫المكتبة مفيدة ج ًدا لجلب البيانات من واجهات برمجة التطبيقات (‪ )APIs‬والتفاعل‬
‫مع خدمات الويب‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪import requests‬‬

‫‪ #‬إرسال طلب ‪GET‬‬


)"response = requests.get("https://www.google.com

‫ الحصول على حالة االستجابة‬#


status_code = response.status_code
)print(status_code

‫ الحصول على محتوى االستجابة‬#


content = response.content
)print(content

:)XML ‫ و‬HTML ‫ (تحليل‬Beautiful Soup .6

.XML ‫ و‬HTML ‫ لتحليل مستندات‬Beautiful Soup ‫ُتستخدم مكتبة‬


.‫ُتعتبر هذه المكتبة مفيدة ج ًدا الستخراج البيانات من مواقع الويب‬
:‫مثال‬
Python
from bs4 import BeautifulSoup

""" = html
‫<‪>html‬‬
‫<‪>head><title>Sample Page</title></head‬‬
‫<‪>body><h1>Hello, World!</h1></body‬‬
‫<‪>html/‬‬
‫"""‬

‫‪)"soup = BeautifulSoup(html, "html.parser‬‬

‫‪title = soup.title.string‬‬
‫‪ # )print(title‬سيطبع ‪Sample Page‬‬
‫‪h1 = soup.h1.string‬‬
‫‪ # )print(h1‬سيطبع ‪!Hello, World‬‬
‫هذه مجرد أمثلة قليلة من العديد من مكتبات بايثون الخارجية‪ .‬هناك العديد من‬
‫المكتبات األخرى المتخصصة في مجاالت مختلفة‪ ،‬مثل تطوير األلعاب‪ ،‬معالجة‬
‫الصور‪ ،‬معالجة الصوت‪ ،‬وغيرها‪ .‬ننصحك باستكشاف هذه المكتبات والتعرف‬
‫عليها‪ ،‬حيث ستساعدك في تطوير تطبيقات بايثون أكثر قوة وفعالية‪ .‬يمكن تثبيت‬
‫هذه المكتبات باستخدام أداة ‪ .)pip (Python Package Installer‬على سبيل‬
‫المثال‪ ،‬لتثبيت مكتبة ‪ ،NumPy‬يمكنك تشغيل األمر التالي في سطر األوامر‪:‬‬

‫‪Bash‬‬
‫‪pip install num‬‬
‫الفصل الرابع عشر‪ :‬أفضل الممارسات في بايثون)‬
‫كتابة كود نظيف وفعال وقابل للصيانة أمر بالغ األهمية في عالم البرمجة‪ .‬في هذا‬
‫الفصل‪ ،‬سنتناول بعض أفضل الممارسات التي تساعدك على كتابة كود بايثون عالي‬
‫الجودة‪.‬‬
‫‪ .1‬اتباع دليل أسلوب ‪:PEP 8‬‬
‫‪ PEP 8‬هو دليل أسلوب رسمي للغة بايثون‪ .‬يوصي هذا الدليل بقواعد واضحة‬
‫لتنسيق الكود‪ ،‬مثل المسافات البادئة‪ ،‬طول األسطر‪ ،‬تسمية المتغيرات والدوال‪،‬‬
‫وغيرها‪ .‬اتباع ‪ PEP 8‬يجعل كودك أكثر قابلية للقراءة واالتساق مع كود‬
‫المبرمجين اآلخرين‪.‬‬
‫أمثلة من ‪:PEP 8‬‬
‫استخدم أربع مسافات بادئة لكل مستوى‪.‬‬ ‫​●‬
‫طول السطر يجب أال يتجاوز ‪ 79‬حر ًفا‪.‬‬ ‫​●‬
‫استخدم أسماء ذات معنى للمتغيرات والدوال‪.‬‬ ‫​●‬
‫اترك سطرين فارغين بين الدوال‪.‬‬ ‫​●‬
‫ضع تعليقات لتوضيح الكود‪.‬‬ ‫​●‬
‫‪ .2‬استخدام أسماء ذات معنى‪:‬‬
‫يجب أن تكون أسماء المتغيرات والدوال والفئات واضحة وذات معنى‪ ،‬بحيث تعكس‬
‫الغرض من استخدامها‪ .‬تجنب استخدام أسماء قصيرة ج ًدا أو عامة ج ًدا‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪ #‬أسماء جيدة‬
‫‪"user_name = "John Doe‬‬
‫‪)calculate_average(numbers‬‬

‫‪ #‬أسماء سيئة‬
‫‪"n = "John Doe‬‬
‫‪)avg(nums‬‬

‫‪ .3‬كتابة تعليقات توضيحية‪:‬‬


‫التعليقات تساعد على فهم الكود وشرح المنطق وراءه‪ .‬اكتب تعليقات لتوضيح‬
‫األجزاء المعقدة من الكود‪ ،‬أو لشرح الغرض من دالة معينة‪ .‬لكن تجنب اإلفراط في‬
‫التعليقات‪ ،‬فالكود الجيد يشرح نفسه بنفسه إلى حد كبير‪.‬‬
‫مثال‪:‬‬
‫‪Python‬‬
‫‪:)def calculate_area(length, width‬‬
‫"""‬
‫حساب مساحة المستطيل‪.‬‬

‫البارامترات‪:‬‬
‫‪ :length‬طول المستطيل‪.‬‬
‫‪ :width‬عرض المستطيل‪.‬‬

‫القيمة المعادة‪:‬‬
‫مساحة المستطيل‪.‬‬
‫"""‬
‫‪return length * width‬‬

‫‪ .4‬استخدام الدوال لتنظيم الكود‪:‬‬


‫قسّم الكود إلى دوال صغيرة وواضحة‪ ،‬بحيث تقوم كل دالة بمهمة محددة‪ .‬هذا يجعل‬
‫الكود أكثر قابلية للقراءة والصيانة وإعادة االستخدام‪.‬‬
‫‪ .5‬تجنب تكرار الكود (‪:)DRY - Don't Repeat Yourself‬‬
‫إذا وجدت نفسك تكتب نفس الكود عدة مرات‪ ،‬فقم بتحويله إلى دالة أو فئة قابلة‬
‫إلعادة االستخدام‪ .‬هذا يوفر عليك الوقت والجهد‪ ،‬ويجعل الكود أكثر اتسا ًقا‪.‬‬
‫‪ .6‬اختبار الكود‪:‬‬
‫اختبر الكود الخاص بك بشكل دوري للتأكد من أنه يعمل بشكل صحيح‪ .‬اكتب‬
‫اختبارات وحدة (‪ )Unit Tests‬لتغطية جميع الحاالت المحتملة‪.‬‬
‫‪ .7‬استخدام أدوات فحص الكود (‪:)Linters‬‬
‫توجد العديد من األدوات التي تساعد على فحص الكود والتحقق من مطابقته لمعايير‬
‫الجودة‪ ،‬مثل ‪ pylint‬و ‪ .flake8‬استخدم هذه األدوات للكشف عن األخطاء‬
‫المحتملة وتحسين جودة الكود‪.‬‬
‫‪ .8‬قراءة كود جيد‪:‬‬
‫أفضل طريقة لتعلم كتابة كود جيد هي قراءة كود جيد‪ .‬ابحث عن مشاريع مفتوحة‬
‫المصدر مكتوبة بلغة بايثون‪ ،‬وحاول فهم الكود وكيف تم تنظيمه‪.‬‬
‫‪ .9‬الممارسة المستمرة‪:‬‬
‫البرمجة مهارة تتطلب الممارسة المستمرة‪ .‬كلما مارست كتابة الكود‪ ،‬كلما أصبحت‬
‫أفضل فيه‪.‬‬
‫‪ .10‬طلب المراجعة‪:‬‬
‫اطلب من مبرمجين آخرين مراجعة الكود الخاص بك‪ .‬يمكنهم تقديم مالحظات‬
‫واقتراحات لتحسين الكود‪.‬‬
‫اتباع هذه الممارسات سيساعدك على كتابة كود بايثون نظيف وفعال وقابل للصيانة‪.‬‬
‫تذكر أن كتابة كود جيد هي عملية مستمرة‪ ،‬وتحتاج إلى التعلم والممارسة‬
‫المستثمرين‪.‬‬

‫نتمنى لك التوفيق في رحلتك لتعلم بايثون‪ .‬استخدم هذه المصادر لتطوير مهاراتك‪،‬‬
‫وستصل بالتأكيد إلى هدفك‪ .‬تذكر أن التعلم عملية مستمرة‪ ،‬وال تتوقف أب ًدا عن‬
‫البحث عن المعرفة الجديدة‪.‬‬

You might also like