كورس تعلم لغة بايثون
ان كنت تبحث عن أفضل كورس لتعلم لغة بايثون فهذه قائمة بدروس الكورس كامل شامل .
ما هي لغة بايثون ؟ Python تكتب بايثون باللغة العربية و هي لغة برمجة عالية المستوى إبتكرها Guido Van Rossum أثناء عمله في مركز أبحاث Centrum Wiskunde & Informatica عام 1986. عام 1991 تم نشر أول إصدار منها لتصبح في متناول الجميع. إستمر تطوير هذه اللغة و إضافة الكثير من المزايا عليها في كل إصدار جديد منها إلى يومنا هذا حتى اصبحت إحدى أهم لغات العصر و التي يمكن إستخدامها لبناء برامج سطح المكتب, تطبيقات الويب, الألعاب, سكريبتات إلخ..
تهئية بيئة تطوير برامج بلغة بايثون
تهئية بيئة تطوير برامج بلغة بايثون ›طريقة عمل البرنامج المكتوب بلغة بايثون ›تجهيز بيئة العمل للبرمجة بلغة بايثون ›أول برنامج بلغة بايثون طريقة عمل البرنامج المكتوب بلغة بايثون بشكل عام نقوم بإنشاء ملف إمتداده .py لنضع فيه الأوامر التي سنكتبها بلغة بايثون.
أنواع المتغيرات في بايثون
مفهوم المتغيرات في بايثون متغير: تعني variable في اللغة الإنجليزية. الآن, نريدك أن تفهم المتغيرات على أنها فقط أماكن يتم حجزها في الذاكرة لتخزين البيانات أثناء تشغيل البرنامج. في بايثون, المبرمج غير مسؤول عن تحديد أنواع المتغيرات التي يعرّفها في برنامجه.
العوامل في بايثون
مفهوم العوامل في بايثون عامل: تعني operator في اللغة الإنجليزية, و العامل عبارة عن رمز له معنى محدد في بايثون. يمكننا تصنيف العوامل في بايثون إلى 7 مجموعات أساسية و هي: Arithmetic Operators Comparison Operators Logical Operators Bitwise Operators Assignment Operators Membership Operators Identity Operators
أمثله وشرح العوامل التي تستخدم للتعامل مع الـ Bits في بايثون هنا مجموعه أمثلة لكل عامل من العوامل التي تستخدم للتعامل مع الـ Bits في بايثون .
العوامل التي تستخدم لإعطاء قيم للمتغيرات في بايثون
العوامل التي تستخدم لإعطاء قيم للمتغيرات في بايثون ›العامل = (Basic Assign) ›العامل += (Add and Assign) ›العامل -= (Susbtract and Assign) ›العامل *= (Multiply and Assign) ›العامل ** (Exponent and Assign) ›العامل /= (Divide and Assign) ›العامل //= (Floor Divide and Assign) ›العامل %= (Modulo and Assign) ›العامل <<= (Left shift and Assign) ›العامل >>= (Right shift and Assign) ›العامل &= (Bitwise and Assign) ›العامل |= (Bitwise exclusive OR and Assign
العوامل التي تستخدم في وضع شروط منطقية
العوامل التي تستخدم لوضع شروط منطقية في بايثون ›العامل and (Logical AND Operator) ›العامل or (Logical OR Operator) ›العامل not (Logical NOT Operator)
العوامل التي تستخدم في المقارنات في بايثون
العوامل التي تستخدم للمقارنة في بايثون ›العامل == (Equal To Operator) ›العامل != (Not Equal To Operator) ›العامل > (Greater Than Operator) ›العامل < (Less Than Operator) ›العامل >= (Greater Than or Equal To Operator) ›العامل <= (Less Than or Equal To Operator)
الشروط في بايثون
مفهوم الشروط في بايثون شروط: تعني conditions في اللغة الإنجليزية. و نستخدم الشروط لتحديد طريقة عمل البرنامج. كما أنه يمكنك وضع العدد الذي تريده من الشروط في البرنامج الواحد, تستطيع وضع الشروط بداخل بعضها البعض أيضاً. لا تقلق ستفهم كل شيء من الأمثلة.
الحلقات في بايثون
مفهوم الحلقات في بايثون حلقة: تعني Loop في اللغة الإنجليزية. نستخدم الحلقات لعدم تكرار نفس الكود عدة مرات, إذاً أي كود نريده أن يتنفذ عدة مرات, نقوم بكتابته داخل حلقة فتقوم هي بإعادة تنفيذ الكود قدر ما شئنا ضمن شروط معينة نقوم نحن بتحديدها.
الأعداد في بايثون
مفهوم الأعداد في بايثون في البداية, أعداد تعني numbers في اللغة الإنجليزية. في هذا الدرس ستتعرف على أنواع الأعداد و الدوال الجاهزة في بايثون للتعامل معها. معلومة تقنية المتغيرات العددية في بايثون تعتبر كلها Immutable, و هذا يعني أنك عندما تقوم بتعريف أي متغير و تعطيه قيمة عددية فإن هذه القيمة يحجز لها مكان في الذاكرة. لكن إذا قمت بإعطاء قيمة جديدة لهذا المتغير فإنه سيتم حذف القيمة القديمة من الذاكرة و إنشاء مكان جديد في الذاكرة و وضع القيمة الجديدة فيه لأنه لا يمكن تعديل نفس القيمة في نفس المكان في الذاكرة.
النصوص في بايثون
مفهوم النصوص في بايثون في عالم البرمجة, نقول للنص "String" سواء كان يتألف من حرف واحد, كلمة, جملة أو نص كبير جداً. و من هذا المنطلق نستنتج أن النص عبارة عن سلسلة من الأحرف ليس لها حجم محدد. في بايثون تم إنشاء الكلاس أو النوع str خصيصاً لتخزين القيم النصية. معلومة تقنية النوع str يعتمد على الترميز Unicode و هذا يعني أنك لن تواجه أي مشكلة عند التعامل مع نصوص عربية, إنجليزية, فرنسية إلخ.. المتغيرات النصية في بايثون ( التي نوعها str ) تعتبر Immutable. و هذا يعني أنك عندما تقوم بتعريف أي متغير تخزن فيه نص, فإن هذه النص سيحجز له مكان في الذاكرة مهما كان حجمه. و إذا قمت بإعطاء قيمة جديدة لهذا المتغير فإنه سيتم حذف القيمة القديمة من الذاكرة و إنشاء مكان جديد في الذاكرة و وضع القيمة الجديدة فيه لأنه لا يمكن تعديل نفس القيمة في نفس المكان في الذاكرة.
الكلاس list في بايثون
مفهوم الكلاس list في بايثون الـ list عبارة عن مصفوفة ليس لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و يمكنك تبديل قيمها متى شئت. طريقة تعريف list لتعريف list نستخدم الرمز [ ]. بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين. و يمكنك تحديد نوع و عدد العناصر التي تريد وضعها فيه فقط.
الكلاس tuple في بايثون
مفهوم الكلاس tuple في بايثون الـ tuple عبارة عن مصفوفة لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و لا يمكن تبديل قيمها. طريقة تعريف tuple لتعريف tuple نستخدم الرمز ( ). بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين. و يمكنك تحديد نوع و عدد العناصر التي تريد وضعها فيه فقط.
الكلاس set في بايثون
مفهوم الكلاس set في بايثون الـ set عبارة عن مصفوفة ليس لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد, و لا يمكن تبديل أو حذف قيمها بشكل مباشر. كما أنه لا يمكنها أن تحتوي على قيم مكررة. أي إذا وضعت فيها نفس القيمة مرتين فإنه سيتم تخزين قيمة واحدة فيها و ليس قيمتين. النوع set لا يحافظ على الترتيب الذي تم فيه إدخال العناصر لأنه لا يضيف رقم Index لكل عنصر كما يفعل النوع list و النوع tuple. لذلك لا تستغرب إذا قمت بتخزين مجموعة قيم بداخل set ثم حاولت عرضها. لأنك في كل مرة ستقوم فيها بتشغيل البرنامج من جديد ستتبدل أماكن القيم. طريقة تعريف set لتعريف set نستخدم الرمز { }. بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.
الكلاس dict في بايثون
مفهوم الكلاس dict في بايثون في البداية, كلمة dict إختصار لكلمة dictionary و التي تعني قاموس أو معجم. الـ dict عبارة عن جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي القيم ( Values ) الخاصة بكل عنصر. كل عنصر يتم إضافته في dict يجب إعطاؤه قيمتين. الأولى تمثل المفتاح ( Key ) و الثانية تمثل قيمته ( Value ). المفاتيح تستخدم للوصول إلى القيم, لهذا لا يمكن وجود عنصرين في الـ dict عندهم نفس المفتاح. إذاً, كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في الـ dict. طريقة تعريف dict لتعريف dict نستخدم الرمز { } . بداخل هذا الرمز يمكنك تمرير العناصر بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين. لا تنسى أن كل عنصر يجب أن يملك قيمتين, الأولى تمثل المفتاح و الثانية تمثل القيمة. بين كل مفتاح و قيمة نضع الرمز : .
الدوال في بايثون
مفهوم الدوال في بايثون دالة: تعني Method او Function في اللغة الإنجليزية, و هي عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها. كما أن بايثون تحتوي على مجموعة كبيرة جداً من الدوال الجاهزة التي سبق أن إستخدامنا بعضها مثل الدوال print() و min() و max() و غيرهم من الدوال التي تطرقنا إليها في دروس سابقة. مصطلحات تقنية الدوال الجاهزة في بايثون, يقال لها Built-in Functions. الدوال التي يقوم المبرمج بتعريفها, يقال لها User-defined Functions
التعامل مع الـ Module في بايثون
مفهوم الـ Module في بايثون كلمة Module يقال لها موديول في العربية, و تعني ملف بايثون عادي يحتوي على مجموعة متغيرات, دوال و كلاسات يمكنك تضمينها في برنامجك. إذاً أي ملف إمتداده .py يمثل Module في بايثون. فكرة الـ Module هي جعل الكود متاح لإعادة الإستخدام, حيث أن وضع الكود في ملف خاص يتيح لك نقله و إستخدامه في برامجك كلما إحتجت إليه. بالإضافة ذلك, فإنها تساعدك في تنظيم مشاريعك, فمثلاً في حال كنت تبني برنامج, موقع أو لعبة إلخ.. فإنك ستجد أن تقسيم المشروع الواحد إلى مجموعة Modules أمر ضروري جداً لأنه سيسهل عليك كثيراً تطويره و صيانته في المستقبل.
التاريخ و الوقت في بايثون
مقدمة بايثون تحتوي على أكثر من مويدويل جاهز للتعامل مع التاريخ, الوقت و التقويم بكل سهولة. في هذا الدرس ستتعلم طريقة الإستفادة من الموديول datetime و الموديول calendar لعرض التاريخ, الوقت و التقويم بالشكل الذي تحتاجه. الموديول datetime في بايثون الموديول datetime يحتوي على مجموعة كلاسات فيها دوال جاهزة للتعامل مع التاريخ و الوقت. date: يحتوي على مجموعة دوال خاصة للتعامل مع التاريخ. time: يحتوي على مجموعة دوال خاصة للتعامل مع الوقت. datetime: يحتوي على مجموعة دوال خاصة للتعامل مع التاريخ و الوقت. timedelta: يحتوي على مجموعة دوال خاصة لحساب الفرق بدقة بين تاريخ و آخر. timezone: يحتوي على مجموعة دوال خاصة لحساب فرق التوقيت بين تاريخ و آخر على حسب المنطقة الزمنية لكل تاريخ.
2- تعلم برمجة الكائنات في بايثون
الكلاس و الكائن في بايثون
مفهوم الكلاس في بايثون الكلاس عبارة عن حاوية تستطيع أن تضع بداخلها متغيرات, مصفوفات, دوال إلخ.. لتعريف كلاس جديد نكتب class, ثم نضع له إسم, ثم نضع نقطتين.
الوراثة في بايثون
مفهوم الوراثة في بايثون في البداية, كلمة وراثة تعني تضمين محتوى كلاس في كلاس آخر. في بايثون, الكلاس يمكنه أن يرث من كلاس آخر حتى يحصل على الدوال و المتغيرات الموجودة فيه. إذاً فكرة الوراثة بسيطة لكن فائدتها قوية جداً. فمثلاً إذا كنت تريد إنشاء كلاس جديد و لاحظت أنه يوجد كلاس جاهز يحتوي على كودات قد تفيدك يمكنك استغلالها بدل كتابتها من الصفر, أي يمكنك جعل الكلاس الذي قمت بتعريفه يرث هذا الكلاس, و بعدها يمكنك إستخدام جميع المتغيرات و الدوال التي ورثها الكلاس الجديد من الكلاس الجاهز. لجعل الكلاس يرث من كلاس آخر, نضع بعد إسم الكلاس قوسين و بداخلهما إسم الكلاس الذي نريده أن يرث منه. في حال كان الكلاس يرث من أكثر من كلاس, يجب وضع فاصلة بين كل كلاسَين نضعهما بين القوسين. مصطلحات تقنية الوراثة تسمى Inheritance في اللغة الإنجليزية. الكلاس الذي يرث من كلاس آخر يقال له الكلاس الإبن, و يسمى Subclass و يقال له أيضاً ( Derived Class, Extended Class أو Child Class ). الكلاس الذي يورّث محتوياته لكلاس آخر يسمى الكلاس الأب, و يسمى Superclass و يقال له أيضاً ( Base Class أو Parent Class ).
مفهوم الـ Overriding في بايثون
مفهوم الـ Overriding في بايثون في الدرس السابق, شاهدت كيف أن الكلاس الإبن ( Subclass ) يرث كل المتغيرات و الدوال الموجودة في الكلاس الأب ( Superclass ). و تعلمت أيضاً طريقة تطبيق مبدأ إخفاء البيانات من أجل ضمان أن لا يحدث تضارب في أسماء المتغيرات و الدوال الموجودة في الكلاس الإبن و الكلاس الأب. مبدأ إخفاء البيانات يتيح لنا الوصول للأشياء الموجودة في الكائن سواء أصلها من الكلاس الإبن أو الكلاس الأب. Override: تعني تعريف الدالة التي ورثها الكلاس الإبن من الكلاس الأب من جديد, هذه الدالة الجديدة تكون مشابهة للدالة الموروثة من حيث الشكل فقط, أي لها نفس الإسم و النوع و عدد الباراميترات, لكن محتواها مختلف. إذاً, الهدف الحقيقي من الـ Overriding هو إتاحة الفرصة للكلاس الإبن لأن يعرف الدوال حسب حاجته. في دروس لاحقة, سنرث من كلاسات جاهزة في بايثون, و نفعل Override للدوال الموجودة فيها لكي تناسب التطبيقات التي سنقوم ببنائها.
الدوال الثابتة في بايثون
مفهوم الدوال الثابتة في بايثون الدالة الثابتة ( Static Method ) عبارة عن دالة يمكن الوصول إليها مباشرةً من الكلاس الذي يحتويها بدون الحاجة إلى إنشاء كائن منه. إذاً الفكرة الأساسية من تعريف الدالة كدالة ثابتة هي جعل الدالة قابلة للإستدعاء بشكل مباشر من الكلاس الموضوعة بداخله. أهم شيء عليك معرفته هو أن الدوال الثابتة مصممة للتعامل مع الكلاس الموضوعة فيه بشكل عام و ليس مع الكائنات المنشئة من هذا الكلاس بشكل خاص. كما أنه حتى إن تم إستدعاء الدوال الثابتة من كائن من هذا الكلاس, فإنه لن يتم التعامل مع هذه الدالة بشكل خاص بالنسبة للكائن بل سيبقى كأنك تستدعيها بشكل مباشر من الكلاس. و بما أن الدوال الثابتة هي دوال غير مصممة للتعامل مع الكائنات بشكل خاص, فلهذا السبب لا يمكن أبداً وضع الكلمة self بداخل دالة ثابتة.
التجريد في بايثون
مفهوم التجريد في بايثون التجريد ( Abstraction ) أسلوب مهم جداً في البرمجة و يتم إعتماده بشكل عام لتسهيل كتابة الأوامر على المبرمج و تنظيم عمله, فهو يجعله قادراً على تنفيذ ما يريد دون الحاجة إلى معرفة كافة التفاصيل التي تم فيها ذلك, و بالتالي جعله يتعامل مع الأشياء بسطحية بدل أن يغوص في معرفة تفاصيل الكودات المعقدة. فمثلاً إذا كنت تنوي بناء تطبيق فيه واجهة مستخدم و هذا التطبيق يحتوي على زر معين, عند النقر على هذا الزر يتم إرسال رسالة إلكترونية إلى صاحب التطبيق. في هذه الحالة لن يكون عليك القلق بتاتاً حول الطريقة التي سيتم فيها ربط الكود الذي يسمح بإرسال الرسالة بالزر الموجود في واجهة المستخدم, لأن مطوري واجهة المستخدم يطلبوا منك تعريف دالة لها شكل معين و وضع الكود الخاص بإرسال الرسالة فيها, و من ثم تمرير هذه الدالة إلى الكائن الذي يمثل الزر الذي يظهر في واجهة المستخدم. عندها سيتم تنفيذ الكود الموجود في الدالة في كل مرة يتم فيها النقر على الزر. إذاً التجريد هو أسلوب يقضي بتعريف دوال مجرّدة ( Abstract Methods ) في الكلاس الأب و إجبار الكلاس الإبن على أن يفعل Override لهذه الدوال بالشكل الذي يناسبه. و بالتالي عندما تنشئ كلاس يرث من كلاس فيه دوال مجرّدة سيظهر أمامك تحذير ينبهك أنك يجب أن تفعل Override لهذه الدوال حتى لا يظهر لك خطأ وقت التشغيل. مصطلحات تقنية الكلاس العادي يقال له Concrete Class. الكلاس المعرف ككلاس مجرّد يقال له Abstract Class. الدالة المعرفة كدالة مجرّدة يقال لها Abstract Method أو Function Method.
تعدد الأشكال في بايثون
مفهوم تعدد الأشكال في بايثون تعدد الأشكال أو بوليمورفيزم ( Polymorphism ) هو مجرد أسلوب في كتابة الكود يقصد منه بناء دالة تنفذ أوامر مختلفة على حسب الكائن الذي نمرره لها عند إستدعاءها. في العادة تعدد الأشكال يكون مرتبط بشكل أساسي بالوراثة حيث تكون الدالة مبنية على أساس الكلاس الأب, و لكننا عند إستدعاءها نمرر لها كائن من إحدى الكلاسات التي ترث منه. إذاً, تعدد الأشكال يمكن أن يتحقق بأشكال مختلفة على حسب الكود الذي تبنيه أو تستخدمه. و أحياناً تجد نفسك تستخدم نفس الدالة مع مصفوفة أو مع نص, فتجد أن طريقة عمل هذه الدالة و ما ترجعه لك يختلف تماماً على حسب نوع الكائن الذي تمرره لها.
3- برمجة متقدمة لغة بايثون
مقدمة في الدروس السابقة, كنا نكتب الكود ثم نقوم بتجربته فيتنفذ كما هو, بمعنى أننا كنا أصلاً نعرف ما سيظهر عند تشغيل الكود لأننا كنا نقوم بتحديد قيم المتغيرات قبل تشغيل البرنامج. في هذا الدرس ستتعلم كيف تنشئ برنامح يتفاعل مع المستخدم, حيث أنك عندما تقوم بتشغيله سيطلب من المستخدم إدخال بيانات, و بعد إدخالها سيقوم البرنامج بمعالجتها و فعل شيء معين بها.
الـIterators في بايثون Python
مفهوم الـ Iterator في بايثون الـ Iterator عبارة عن كائن يحتوي على عدد محدد من القيم التي يتم تخزينها بالترتيب وراء بعضها البعض حيث أنك عندما تريد الوصول إلى القيم التي فيه فإنك تستطيع الوصول إلى قيمه الواحدة تلو الأخرى بنفس الترتيب الذي تم تخزينهم فيه. فعلياً, كلما وصلت إلى قيمة فيه تصبح قادر على الوصول إلى القيمة التالية الموضوعة بعدها مباشرةً. معلومة تقنية الـ Iterator في بايثون عبارة عن كائن يطبق بروتوكول يقال له Iterator Protocol. هذا البروتوكول يتم تطبيقه من خلال إستدعاء الدالتين المجهزتين لذلك: __iter__() و __next__(). و بالتالي تستطيع إنشاء Iterator بنفسك إذا فعلت Override لهاتين الدالتين بشكل صحيح في حال أردت ذلك.
التعابير النمطية في بايثون Python
مفهوم التعابير النمطية في بايثون في البداية, التعابير النمطية يقال لها Regular Expressions أو RegEx و هي عبارة عن نصوص تحتوي على أحرف و رموز لها معاني محددة. للدقة أكثر, كل حرف أو رمز نضعه في هذا النص يعني شيء معين. إذاً, التعابير النمطية تستخدم بهدف البحث في النصوص بطريقة سهلة جداً بدل الحاجة إلى كتابة خوارزميات معقدة من أجل الوصول إلى النتيجة المرجوة. و بالتالي يمكنك إستغلال التعابير النمطية في حال أردت البحث في النص عن شيء محدد بهدف إجراء تعديل أو تحديث عليه. من أشهر الإستخدامات للتعابير النمطية هي عندما تطلب من المستخدم إدخال بريده الإلكتروني و إدخال كلمة سر. عندها تجد أنك أثناء كتابة البريد الإلكتروني و كلمة المرور فإنه يظهر لك تنبيهات في حال لم تقم بإدخال بريد إلكتروني صحيح أو كلمة سر لها شكل معين. فمثلاً تجد أنه يطلب منك وضع كلمة سر تتألف من ثمانية أحرف على الأقل و يجب أن تحتوي على حرف كبير, حرف صغير, رقم و رمز.
الملفات في بايثون Python
معالجة الملفات في بايثون التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات على مختلف انواعها ( مثل txt - jpg - mp4 ). في هذا الدرس ستتعلم كيف تقرأ محتوى ملف, كيف تنشئ نسخة منه, كيف تعدل محتواه, كيف تحذفه إلخ..
مدير الحزم PIP في بايثون
مفهوم الـ PIP في بايثون في أي مشروع تبنيه بلغة بايثون فإنك على الأرجح ستقوم باستخدام كلاسات و دوال جاهزة قام ببناءها مطورون آخرون حتى لا تضيع وقتك في بناء كل شيء من الصفر. في هذا الدرس ستتعلم كيف تقوم بتضمين أكواد جاهزة في مشاريعك بكل سهولة بالإعتماد على أداة إسمها PIP بالإضافة إلى فعل ذلك بشكل مباشر من برنامج PyCharm. الآن, بما أنك شخص واحد من ضمن ملايين الأشخاص الذين قرروا إستخدام لغة بايثون في بناء مشاريعهم, فهذا يعني أن مطورين كثر قاموا حتماً ببناء أكواد جاهزة و نشرها مجاناً حتى يستفيد منها باقي المطورين مع الإستمرار في تحديث هذه الأكواد حتى تظل تتوافق مع التحديثات المستمرة للغة بايثون و لمعالجة أي ثغرات في هذه الأكواد. المطور الذي يعمل بطريقة إحترافية, يقوم في العادة ببناء الموديول بنفس الطريقة التي تعلمتها سابقاً. أي يقوم بإنشاء ملف بايثون و بداخله يقوم بتعريف الكلاسات و الدوال إلخ.. و طبعاً لا شيء يمنع المطور من أن يقوم بإنشاء أكثر من موديول, أو أن يقوم بتضمين موديول آخر في الموديول الذي يقوم بتطويره. عندما يقوم المطور بتجميع الملفات التي يعدّها في مجلد واحد لجعلها قابلة للتحميل و التضمين بسهولة فإن هذا المجلد يقال له حزمة ( Package ). الأداة PIP تساعدك في تحميل و تضمين أي حزمة تريد في مشاريعك بكل سهولة بدل أن تضطر إلى أن تبحث عنهم بنفسك في النت. معلومة تقنية إبتداءاً من الإصدار 3.4 من لغة بايثون, أصبحت الأداة PIP يتم تنصيبها عنك بشكل تلقائي أثناء تنصيب لغة بايثون. أي إذا كنت تستخدم هذا الإصدار أو إصدار أعلى من لغة بايثون, فلا حاجة لأن تقوم بتحميلها, بل و بإمكانك إستخدامها فوراً. في حال كنت تستخدم إصدار قديم من لغة بايثون, فهذا هو الموقع الرسمي pypa.io لتحميل هذه الأداة. في هذا الموقع أيضاً ستجد الخطوات التي يجب إتباعها لتحميلها و تنصيبها بشكل صحيح على الحاسوب.
قواعد البيانات في بايثون Python
مقدمة في أغلب التطبيقات التجارية التي ستقوم ببنائها مستقبلاً ستقوم حتماً بالتعامل مع قواعد البيانات لتخزين المعلومات بشكل مرتب و منظم. هناك أنواع عديدة من قواعد البيانات, و كل نوع منهم له موديول خاص و جاهز للتعامل معه. في هذا الدرس ستتعلم كيف تتعامل مع قواعد بيانات MySQL من تطبيقاتك التي تطورها بلغة بايثون. معلومة تقنية قواعد بيانات MySQL تعتبر أحد أشهر أنواع قواعد البيانات المجانية التي يستخدمها المطورون و لهذا تم اعتمادها في الشرح. كما أننا سنفترض أنك قمت مسبقاً بتنصيب قواعد بيانات MySQL على جهازك لأننا في هذا الدرس سنشرح طريقة التعامل معها فقط.
تعدد المهام في بايثون Python
مفهوم تعدد المهام في بايثون عندما تستخدم هاتفك أو حاسوبك, ترى أنه يمكنك تشغيل عدة برامج مع بعض في وقت واحد, كل برنامج شغال في الذاكرة يعتبر Process, فمثلاً إذا قمت بتشغيل خمسة برامج مع بعض فهذا يعني أن نظام التشغيل ينظم عمل خمسة Processes مع بعض. آلية تشغيل عدة برامج مع بعض تسمى Multiprocessing. من جهة اخرى, في البرنامج الواحد يمكنك تنفيذ عدة أوامر مع بعض و جعل المستخدم يشعر كأنها تتنفذ في وقت واحد, فمثلاً في حال كنت تلعب لعبة مثل لعبة كرة القدم, تجد أنه هناك عدة أشياء تحدث في وقت واحد, فمثلاُ عند تشغيل اللعبة تسمع عدة أصوات ( مثل أغنية حماسية, صوت المعلق, صوت المشجعين, صوت صفارة الحكم في حال وقع خطأ إلخ.. ), بالإضافة إلى أنه يمكنك تحريك اللاعب و مشاهدة توقيت المبارة و الكثير من التفاصيل الأخرى التي تحدث كلها في نفس الوقت لتصنع لك لعبة رائعة. هذه الآلية تسمى Multithreading, لأن كل جزء شغال في البرنامج يكون عبارة عن مجموعة أوامر موضوعة بداخل Thread خاص. إذاً نستخدم آلية Multithreading لجعل البرنامج قادر على تنفيذ عدة أوامر مع بعض و كأنها تتنفذ في وقت واحد, و هذا ما سنتعلمه في هذا الدرس.