أخر الاخبار

تعلم البرمجة مع بايثون 3

كتاب تعلم البرمجة مع بايثون 3

تعلم البرمجة مع بايثون 3

بايثون Python هي لغة برمجة مفتوحة المصدر و تُعتبَر من اللغات الأكثر شهرة و أستخداما و ذات مستوى حماية عالي.

هنالك عدد كبير من لغات البرمجة، ولكل منها مزاياه وعيوبه. يجب علينا أن نختار لغة واحدة. عندما بدأنا بالتفكير في هذه المسألة خلال إعدادنا لمنهاج جديد لخيار العلوم والمعلوماتية، تراكمت خبراتنا الشخصية الطويلة في البرمجة بـ Visual Basic (مايكروسوفت) وفي كلاريون (Topspeed). ولقد جربنا أيضا قليلا من دلفي (Borland). ولذلك كان من الطبيعي أننا استخدمنا في البداية لغة واحدة أو أكثر من هذه اللغات. وكان أمام هذه اللغات إذا أردنا استخدامها كأدوات أساسية لتعلـم البرمجة العامة اثنان من العوائق الرئيسية:

1 - ترتبط ببيئات برمجية (معناها برامج) خاصة. وهذا يعني أنه يجب على المدرسة ليس فقط أن تكون على استعداد لشـراء ترخيص لاستخدام مثل هذه البرامج لكل محطـة عمـل (والتي يمكن أن تكون مكلفة)، ولكـن حـتى بالنسبة للطلاب الذين يرغبون في استخدام المهارات البرمجية في أماكن أخرى خارج المدرسة، وهذا الأمر لا يمكن أن نتقبله. وثمـة عيـب آخر خطير وهو أن هذه المنتجات تحتوي على "صناديق سوداء" أي أننا لا نستطيع أن نعرف محتواها، ووثائقها ستكون ناقصة وغير مؤكدة.

2 - هذه اللغات مرتبطة بنظام تشغيل واحد وهو ويندوز. فهي ليست "محمولة" على أنظمة تشغيل أخرى (يونكس، ماك، إلخ). وهذا لا يتناسب مع مشروعنا التعليمي الذي يهدف إلى تعليم عام (وبالتالي متنوع) حيث يتم تسليط الضوء على الثوابت الحاسوبية إلى أقصى حد ممكن.

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

من ناحية أخرى، فإن الممارسة الحديثة لهذه اللغة تستخدم على نطاق واسع مولدات التطبيقات وأدوات الدعم المتطورة الأخرى مثل C++Builder و Kdevelop إلخ. ويمكن لهذه البيئات أن تكون فعالة جدا في أيدي المبرمجين ذوي الخبرة، لكنها تقدم العديد من الأدوات المعقدة كثيرا جدا، وهي صعبة على المستخدم المبتدئ والذي من الواضح لا يتقنها. ولذلك سيكون في نظره أنه قد يخفي الآليات الأساسية للغة نفسها. سوف نترك سي وسي بلس بلس لوقت لاحق. في بداية تعلمنا البرمجة، يبدو من الأفضل أن نستخدم لغة عالية المستوى، وأقل تقييدًا، وتكوين الجمل أكثر قابلية للقراءة. بعد أن فحصنا وواجهنا عدة لغات مثل Perl و Tcl/tk، قررنا أخيرا أن نعتمد على بيثون، لغة حديثة وشعبيتها متزايدة.

و تُعتبَر لغة بايثون من اللغات السائدة في العالم مع نهضة الذكاء ألاصطناعي و تُعتبَر أيضأ لغة متعددة الاستخدامات “Multi-usable language“. فيمكن برمجة مواقع الإنترنت أو الدخول في عالم البيانات و الذكاء ألاصطناعي و حتى الألعاب و الروبوتات, فعلياً يمكن فعل كل شيئ من خلال بايثون.

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

تم تطوير لغة بايثون سنة 1989 من قبل غيدو فان روسم و عدد كبير من المتطوعين و المساهمين.

مميزات لغة بايثون

سوف نقوم بوضع المميزات الرئيسية لبيثون مع بعض تفاصيلها:

  1. لغة بيثون لغة محمولة، وليس فقط على مختلف أنظمة يونكس، ولكن حتى أنظمة تشغيل: ماك، BeOS، NexTStep MS-DOS ومختلف إصدارات ويندوز. وهنالك مترجم جديد، يدعى JPython، تم كتابته بالجافا ويولد كودبايت جافا. 
  2. بيثون مجانية، ولكن يمكنك استخدامها في المشاريع التجارية دون قيود.
  3. بيثون مناسبة لسكريبتات من 10 أسطر إلى المشاريع المعقدة التي تحتوي على عشرات الآلاف من الأسطر.
  4. تكوين جمل بيثون بسيط جدا، ويعمل جنبا إلى جنب مع أنواع البيانات المتقدمة (القوائم والقواميس)، والتي تصنع برامج مدمجة جدا وقابلة للقراءة. وللمقارنة، برنامج بيثون غالبا ما يكون أقصر من 3 إلى 5 مرات من برنامج سي أو سي بلس بلس (أو حتى الجافا) أو ما يعادلها، ووقت تطوير من 5 إلى 10 مرات أقصر وسهل جدا في الصيانة.
  5. بيثون تدير الموارد بنفسها (الذاكرة، واصفات الملفات) دون تدخل من قبل المبرمج عن طريق آليـة عـد المراجع (مشابهة لجامعي القمامة، لكن مختلفة).
  6. لا توجد مؤشرات واضحة في بيثون.
  7. بيثون متعددة الخيوط (اختياري).

اصدارات لغة بايثون

ويجب تعديل البرامج للتكيف مع النسخ الجديدة التي من شأنها أن تصبح غير متوافقة مع تلك السابقة. والأمثلة في هذا الكتاب تطورت على مدى فترة طويلة نسبيا من الزمن: بعض تم تطويره ببيثون 1.5.2، ثم ببيثون 1.6، 2.0، 2.1ـ 2.2، 2.3 و 2.4، إلخ. وهـم بحاجة إلى تغيير قبـل أن يتكيفوا لبيثون 3.

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

إذن قم بتثبيت أحدث إصدار بيثون متاح على نظام التشغيل الخاص بك (بعض الأمثلة لدينا تتطلب الإصدار 3.1 أو أحـدث)، واستمتع! ولكن، إذا كنت بحاجة إلى تحليل سكريبتات مقدمة للإصدار السابق، لاحظ وجود أدوات تحويل (انظر خاصـة للسكريبت 2to3.py)، والتي موجودة على الإنترنت في موقعنا http://inforef.be/swi/python.htm للإصدار السابق من هذا النص، والتي تم تكييفها للإصدارات السابقة من بيثون، ودائما تستطيع التحميل مجانا.

بايثون Python هي لغة برمجة قوية وسهلة التعلم وتستخدم في مجموعة متنوعة من التطبيقات مثل تطوير الويب وعلوم البيانات والذكاء الاصطناعي وغيرها.

إليك خطة تعلم بسيطة يمكنك اتباعها لبدء تعلم البرمجة باستخدام Python 3:

  1. تثبيت Python: قم بتنزيل وتثبيت Python 3 من الموقع الرسمي لـ Python (python.org) واتبع التعليمات الموجودة هناك لتثبيته على نظام التشغيل الخاص بك.
  2. محرر النصوص: قم بتثبيت محرر نصوص يتناسب مع احتياجاتك. بعض المحررات الشهيرة هي Visual Studio Code وPyCharm وAtom وSublime Text. اختر المحرر الذي يعجبك ويساعدك في الكتابة وتنسيق الشفرة.
  3. أساسيات Python: ابدأ بفهم أساسيات اللغة. تعلم حول أنواع البيانات المختلفة في Python مثل الأعداد والسلاسل والقوائم والقواميس. تعلم أيضًا عن التعابير والعمليات الحسابية الأساسية.
  4. الهياكل التحكم: تعلم كيفية استخدام الهياكل التحكم في Python مثل الشروط (if-else) والحلقات (for وwhile) للتحكم في تنفيذ الشفرة بشكل مختلف استنادًا إلى الظروف.
  5. الدوال والموديلات: تعلم كيفية تعريف الدوال الخاصة بك واستخدامها في البرنامج. تعلم أيضًا حول استيراد الموديولات واستخدامها لتوسيع قدرات Python من خلال توفير المزيد من الدوال والوظائف المساعدة.
  6. العمل مع الملفات: تعلم كيفية قراءة البيانات من ملفات نصية وكتابة البيانات إلى ملفات. هذا سيساعدك في التعامل مع ملفات CSV وملفات النص العادية وغيرها.
  7. المفاهيم المتقدمة: بمجرد أن تكون مرتاحًا مع الأساسيات، يمكنك استكشاف المزيد من المفاهيم المتقدمة في Python مثل الاستثناءات والمكتبات القياسية والتعامل مع قواعد البيانات والواجهات البرمجية للتطبيقات (API).
  8. المشاريع العملية: قم ببناء بعض المشاريع العملية المبنية على ما تعلمته. يمكنك مثلاً بناء تطبيق ويب بسيط أاو بناء برنامج لحساب متوسط ​​الدرجات أو تنفيذ تحليل بيانات بسيط. هذه المشاريع ستساعدك في تطبيق المفاهيم التي تعلمتها وتعزيز فهمك العملي للبرمجة باستخدام Python.
  9. المصادر التعليمية: هناك العديد من المصادر المفيدة على الإنترنت التي يمكنك الاستفادة منها لتعلم Python. يمكنك قراءة الكتب التعليمية، ومشاهدة دروس الفيديو، وحل التحديات والمشاريع التدريبية. بعض المواقع الشهيرة لتعلم Python تشمل Codecademy وCoursera وedX وReal Python.
  10. الممارسة العملية: لا تنسى أهمية الممارسة العملية. قم بكتابة الشفرة بانتظام وحاول حل التحديات البرمجية. يمكنك أيضًا المشاركة في منتديات المجتمع ومشاركة الأسئلة والمشاكل التي تواجهها لتتعلم من تجارب الآخرين وتحسين مهاراتك.

ما هي المشاريع العملية التي يمكنني بناؤها لتطبيق ما تعلمته في Python؟

هنا بعض الأفكار لمشاريع عملية يمكنك بناؤها لتطبيق ما تعلمته في Python:

  1. تطبيق ويب بسيط: قم ببناء تطبيق ويب بسيط باستخدام إطار عمل ويب مثل Django أو Flask. يمكنك إنشاء صفحات ويب متعددة وعرض المعلومات من قاعدة بيانات، مثل مدونة شخصية أو قائمة مهام.
  2.  الروبوت المتحدث: قم ببناء روبوت متحدث يستجيب لأوامر المستخدم باستخدام مكتبة مثل NLTK لمعالجة اللغة الطبيعية. يمكنك برمجة الروبوت للإجابة على أسئلة بسيطة، إجراء حوارات أساسية، أو تنفيذ مهام محددة. 
  3. تطبيق تويتر البسيط: قم ببناء تطبيق يستخدم واجهة برمجة التطبيقات (API) لتويتر لعرض تغريدات معينة أو البحث عن تغريدات تحتوي على كلمات مفتاحية محددة. يمكنك أيضًا تنفيذ وظائف مثل التغريد أو المتابعة لحساب معين.
  4.  تطبيق إدارة المهام: قم ببناء تطبيق يسمح للمستخدم بإدارة مهامهم اليومية. يمكنك تصميم واجهة بسيطة لإضافة وتعديل وحذف المهام، وتنظيمها في قوائم أو فئات.
  5.  محول الوحدات: قم ببناء برنامج يقوم بتحويل الوحدات بين مختلف القياسات مثل المسافة، الوزن، الزمن، والحجم. يمكنك تصميم واجهة المستخدم للسماح للمستخدم بإدخال القيم وتحويلها بناءً على الوحدات المحددة.
  6.  تطبيق توقعات الطقس: قم ببناء تطبيق يستخدم API لتوقعات الطقس لعرض الحالة الجوية الحالية والتوقعات الجوية المستقبلية لموقع محدد. يمكنك أيضًا إضافة ميزات مثل تنبيهات الطقس وعرض الرسوم البيانية للتغيرات الجوية.

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

كيف يمكن البدء في بناء تطبيق ويب باستخدام Django؟

بالطبع! إليك خطوات بسيطة للبدء في بناء تطبيق ويب باستخدام Django:

تثبيت Django: قم بتثبيت Django على جهاز الكمبيوتر الخاص بك باستخدام أداة إدارة الحزم مثل pip. يمكنك تنفيذ الأمر التالي في موجه الأوامر:

pip install django
```

إنشاء مشروع Django: بعد تثبيت Django، قم بإنشاء مشروع جديد باستخدام الأمر التالي:

django-admin startproject projectname
```
حيث projectname هو اسم المشروع الذي ترغب في إنشائه. ستنشئ Django هيكل ملفات ومجلدات أساسي للمشروع.

إنشاء تطبيق Django: انتقل إلى مجلد المشروع الذي تم إنشاؤه وقم بإنشاء تطبيق Django جديد باستخدام الأمر التالي:

python manage.py startapp appname
```
حيث appname هو اسم التطبيق الذي ترغب في إنشائه. ستنشئ Django مجلدًا جديدًا بنفس الاسم وتكوين ملفات الأساس للتطبيق.

تعريف النماذج: قم بتعريف نماذج البيانات التي ستستخدمها في تطبيقك داخل ملفات models.py في التطبيق الجديد الذي أنشأته. يمكنك تعريف الحقول والعلاقات بين النماذج بواسطة فئات Python.

إنشاء قواعد البيانات: قم بتطبيق التغييرات على قاعدة البيانات باستخدام الأمر التالي:

python manage.py makemigrations
python manage.py migrate
```
ستقوم هذه الأوامر بإنشاء الجداول المطابقة في قاعدة البيانات وتطبيق أي تغييرات جديدة تم إجراؤها على النماذج.

تعريف العرض (Views): قم بتعريف الوظائف التي ستتم تنفيذها عندما يتم استدعاء عناوين URL محددة في التطبيق. يمكنك تعريف العرض باستخدام دوال Python داخل ملف views.py في التطبيق.

تعريف النماذج (Templates): قم بتعريف القوالب HTML التي سيتم استخدامها لتنسيق وعرض المحتوى في التطبيق. يمكنك إنشاء مجلد templates داخل مجلد التطبيق وإنشاء ملفات HTML داخله.

تعريف عناوين URL: قم بتعريف عناوين URL التي ستستخدمها لربط العرض والقوالب. يمكنك تعريف عناوين URL باستخدام ملف urls.py في المشروع الأساسي.

تشغيل الخادم التطويري: قم بتشغيل الخادم التطويري الذي يقدمه Django باستخدام الأمر التالي:

python manage.py runserver
```
ستقوم Django بتشغيل خادم التطوير المحلي وتقديم التطبيق على عنوان URL محدد.

ابدأ في تطوير التطبيق: الآن يمكنك البدء في تطوير المزيد من العروض والقوالب وتنفيذ المزيد من الوظائف وفقًا لاحتياجات تطبيقك.

هذه هي خطوات عامة للبدء في بناء تطبيق ويب باستخدام Django. يمكنك استكشاف المزيد من تفاصيل Django ومفاهيمها من خلال الوثائق الرسمية لـ Django.

هل يمكنك أن تشرح لي كيفية تعريف العلاقات بين النماذج في Django؟

بالطبع! في Django، يمكنك تعريف العلاقات بين النماذج باستخدام حقول العلاقة. هناك عدة أنواع من حقول العلاقة التي يمكنك استخدامها في Django:

One-to-One (واحد-إلى-واحد): تستخدم هذه العلاقة لتعريف علاقة واحد إلى واحد بين نموذجين، حيث يكون لكل نموذج مثيل واحد فقط للنموذج الآخر. يمكنك تعريف هذا النوع من العلاقة باستخدام حقل OneToOneField.

Many-to-One (عديد-إلى-واحد): تستخدم هذه العلاقة لتعريف علاقة عديد إلى واحد بين نموذجين، حيث يمكن أن يكون لكل نموذج عدة مثيلات من النموذج الآخر. يمكنك تعريف هذا النوع من العلاقة باستخدام حقل ForeignKey.

Many-to-Many (عديد-إلى-عديد): تستخدم هذه العلاقة لتعريف علاقة عديد إلى عديد بين نموذجين، حيث يمكن لكل نموذج أن يكون له عدة مثيلات من النموذج الآخر، والعكس بالمثل. يمكنك تعريف هذا النوع من العلاقة باستخدام حقل ManyToManyField.

لتعريف العلاقات بين النماذج، يمكنك استخدام هذه الحقول في تعريف النماذج نفسها. على سبيل المثال، إذا كان لديك نموذجين يمثلان مستخدمين ومجموعات المستخدمين، يمكنك تعريف العلاقة بينهما كما يلي:

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)

class Group(models.Model):
    name = models.CharField(max_length=100)
    members = models.ManyToManyField(User)

في هذا المثال، تم تعريف نموذجين هما User و Group. النموذج Group يحتوي على حقل members من نوع ManyToManyField يشير إلى النموذج User. هذا يعني أن كل مجموعة يمكن أن تحتوي على عدة مستخدمين، وكل مستخدم يمكن أن ينتمي إلى عدة مجموعات.

يمكنك استخدام العلاقات للوصول إلى الكائنات المرتبطة من خلال العلاقة. على سبيل المثال، إذا كان لديك مثيل من النموذج Group، يمكنك الوصول إلى جميع أعضاء المجموعة المرتبطين بها كما يلي:

group = Group.objects.get(id=1)  # افترض أن لديك مثيل من النموذج Group بالمعرف 1
members = group.members.all()    # الوصول إلى جميع أعضاء المجموعة
طرق تعريف العلاقات في Django متعددة وتعتمد على الحالة الخاصة بالتطبيق الذي تقوم ببنائه. فيما يلي بعض الأمثلة على كيفية تعريف العلاقات بين النماذج في Django:

1. العلاقة One-to-One (واحد-إلى-واحد):
تُستخدم هذه العلاقة عندما يكون لكل نموذج مثيل واحد فقط للنموذج الآخر. يمكنك تعريفها باستخدام حقل `OneToOneField`، على سبيل المثال:

```python
from django.db import models

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # مجالات أخرى للملف الشخصي

class User(models.Model):
    # مجالات المستخدم

العلاقة Many-to-One (عديد-إلى-واحد):

تُستخدم هذه العلاقة عندما يكون لكل نموذج عدة مثيلات من النموذج الآخر، بينما يكون للنموذج الآخر مثيل واحد فقط. يمكنك تعريفها باستخدام حقل ForeignKey، على سبيل المثال:

from django.db import models

class Article(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    # مجالات أخرى للمقال

class Author(models.Model):
    # مجالات المؤلف

العلاقة Many-to-Many (عديد-إلى-عديد):

تُستخدم هذه العلاقة عندما يمكن لكل نموذج أن يكون له عدة مثيلات من النموذج الآخر، والعكس بالمثل. يمكنك تعريفها باستخدام حقل ManyToManyField، على سبيل المثال:

from django.db import models

class Product(models.Model):
    categories = models.ManyToManyField(Category)
    # مجالات أخرى للمنتج

class Category(models.Model):
    # مجالات التصنيف

هذه بعض الأمثلة البسيطة لكيفية تعريف العلاقات بين النماذج في Django. يمكنك استكشاف المزيد من العلاقات والخيارات المتاحة في وثائق Django الرسمية لتعرف المزيد.

Saja Alsadig
بواسطة : Saja Alsadig
من السودان مبرمجة مواقع ويب و تطبيقات أندرويد اتقن لغات "html, css, php, js" بالإضافة للتعامل مع اندرويد ستوديو و بناء التطبيقات, مهتمة بمجال التقنية منذ الصغر و كان لدي شقف كبير للدخول بالجامعه بقسم البرمجة و دخلته في عام 2013 و تعلمت كل شيئ ضمن الجامعة و خارجها من التعليم الذاتي و اتمنى أن أكون عند حسن ظن الجميع و إيصال الأمانة لكم.
تعليقات




    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -