د. محمد الصقر
د. محمد الصقر

@MohAlsagr

41 تغريدة 100 قراءة Oct 26, 2019
١-
بجرب اعمل تغريدات تعليمية عن لغة البايثون وبشوف هل تويتر ممكن يكون منصة لتعلم لغة برمجة. في هذا التورتوريال راح نبدا من الصفر وبدمج معرفتي مع افضل الشروحات للغة البايثون من النت. اذا حابب تعرف وتتعلم البابثون راح تكون السلسة تحت هذه التغريدة وستمون على عدة ايااااااام حبة حبة.
٢- بايثون لغة مهمة وسهله و متعددة الاستخدامات وبدأت مؤخرا تكون لغة منافسة للجافا ومتوقع ان تتجاوزها. تستخدم اللغة في المواقع وتستخدم ايضا كلغة تعليمية في الجامعات وتعتبر الاميز ايضا في تحليل البيانات و تستخدم كلغة " باك اند". من اشهر المواقع المكتوبة ببايثون قوقل وانستقرام.
٣-
كباقي اللغات تحتاج الى بيئة تطوير تمكنك من كتابة واختبار الكود. في هذه السلسلة سنستخدم jupyter nootbook.
لتحميل جيبيتور نوتبوك:
١-anaconda.org
2- download anaconda
3- اختار نظام التشغيل
4- حمل بايثون 3 ونصبه.
افتح anaconda navigator لكتابة اول برنامج.
4-
راح تفتح لك النافذة الي في الصورة تحت اختر منها جيبتور نوتبوك كالصورة. تاكد من اقفال المتصفح قبل الضغط. بعدها راح يفتح لك شيئيتن وهما صفحة ويب عنونها localhost وهذي الصفحة هي واجهتنا الي بنستخدمها لكتابة البرامج و لوحة اوامر خطية ماعليك منها ولكن لاتقفلها مهمتا الربط بالسيرفر
5-
*خلونا نسمي صفحة الويب الي بتكتب بها البرنامج " الواجهه"
* الان اترك الواجهه و ارجع لسطح المكتب واعمل مجلد اسمه " I love python "
*ارجع للواجهه واختار مجلد سطح المكتب راح تلقى داخلة مجلد " I love python" افتحه
* مثل ما في الصورة تحت : رح لليمين واضغط new ---> python 3
6-
مثل الصورة. وهنا تقدر تكتب اول برنامج. الان تعلمنا جيبتور نوتبوك واصبحنا مستعدين لاول برنامج.
المرة القادمة راح نبدا نتعرف على البايثون اكثر
ولكن لماذا جيبتور نوتبوك؟
١- سهل
٢- جيد للباحثين وكتابة الخوارزميات
٣- رائع للتعلم
٤: ممتاز لعلماء البيانات
ولكن ليس لكتابة تطبيق كامل.
7-
الصورة توضح بعض خصائص جيبيتور. دعونا نختار اسم للبرنامج اولا. وعليك معرفة ان جيبتور يتبع طريقة الخلايا او cells ويمكنك من التحكم بهذه الخلايا من خلال تعديلها وتغيير نوعها. نوع الخلية الاول كود وهذا غالبا ماسيستخدم والثاني markdown وهذا يجعل البيئة افضل واكثر مرونه وسنرى امثلة
8-
لكتابة اول برنامج انسخ مافي الصورة. في هذا البرنامج تم طباعة Hello Twitter. وفي الصورة ايضا وضح الفرق بين خلية الكود التي يكتب فيها البرنامج والمارك داون التي نكتب فيها النصوص (قبل وبعد التنفيذ). وهذا مهم جدا كما سيتبع. ومن الان سنستخدم خاصية المارك لشرح اكواد البايثون :)
9-
قبل الدخول في مفاهيم البايثون سؤال ترفيهي:
C = 1
D = 2
C = D
D = C
ماهي قيمة D ؟
10-
الجواب ٢
قيمة C الاولية ١ وقيمة D هي ٢
بعد ذلك تم اسناد قيمة D وهي ٢ الى C فتحولت القيمة الى ٢
وفي اخر سطر اسندت قيمة C الجديدة الى D. فاصبحت قيم C و D تساوي ٢
المستفاد:
١- هناك تسلسل في تنفيذ الاوامر سطر بسطر
٢- هناك متغيرات وهم C و D
3- هناك قيم يمكن اسنادها للمتغيرات
11-
فاصل مو مهم مرة.
الصورة تحت لنفس البرنامج ولكن بلغة ++C
والنتيجة طبعا واحدة. ولكن ال syntax او الطريقة والكلمات المستخدمة لعمل البرنامج تختلف من لغة الى لغة. مثلا في بايثون استخدمنا print للطباعة بينما في ++C استخدمنا كلمة cout مع رمزين >> لاعطاء امر طباعة. شكل بايثون اسهل!
12-
مايكون الـ syntax "سينتاكس" هو مجموعة من الكلمات المحجوزة والدوال "functions" مسبقة التعريف وبعض القواعد العامة. في الصورة ادناه الكلمات المحجوزة في بايثون والتي لايمكن استخدامها لتعريف متغير. كما ان هذه الكلمات وبايثون بصفة عامة case sensitive اي الحرف الصغير والكبير مختلفة
13-
هناك دوال مسبقة التعريف لتنفيذ امر معين مثل () print وهناك دوال انت تعرفها وتسميها او متغير, كلاس ,او اوبجكت (سناتي لشرحها). ومايهمنا هو قواعد التسمية:
١: يمكن استخدام مجموعة من الحروف الصغيرة والكبيرة مع الارقام من ٠-٩ مع "ـ"
٢: لايمكن استخدام الرموز الخاصة مثل !, @, #, $
14-
في الصورة امثلة للتغريدة السابقة وهنا الشرح لكل خلية:
١: عرفنا متغير واسندنا القيمة ١ له وهذا صحيح والمتغير حرف v صغير
٢: خطا لاننا عرفنا متغير رمز خاص هو ٪ وهي تسمية خاطئة
٣: كتبنا Print وحرف P كبير وهذا غلط المفروض صغير print
٤: متغيرين نفس الحرف كبير وصغير اصبحوا مختلفين
15-
الصورة ادناه مهمة تلخص وتجمع اهم المفاهيم بشرح كامل وهي التغريدة الاخيرة في المتغيرات والطباعة. بعد هذه التغريدة وماسبقها يفترض انك قادرعلى تعريف متغيرات وطباعتها في سياق مفهوم وبالطبع اصبحت اكثر فهما لجوبيتور. القادم سيكون عن مفاهيم اعمق في البرمجة عموما والبايثون خصوصا
16-
والآن مع السؤال الترفيهي في بايثون:
'4' = n
مانوع المتغير n ؟
17 -
الجواب هو متغير نصي
بغض النظر عن كون مابداخل ' ' هو رقم
الا ان بايثون سيستخدمه على شكل نص لايمكن اجراء عمليات حسابية عليه
بمعنى اخر عند تعريف تعريف متغير واسناد قيمة له بين علامتين " " او ' ' فانه يتحول الى نص
وهذا يستشف من التغريدات السابقة حين طبعنا نصا باستخدام العلامتين
18-
الان تعلمنا سويا جوبيتور وطريقة الطباعة في بايثون وتعريف المتغيرات والتي لايشترط فيها تعريف نوع المتغير مسبقا كمعظم اللغات. ولكن كنا نسند بانفسنا قيمة للمتغير مثل الرقم ٤ او "Hello twitter" وهذا ليس كل شي. فكيف نجعل مستخدم البرنامج هومن يدخل قيمة المتغير كعمره او وزنه او اسمه
19-
الشرح في الصورة مع امثلة
تكلمت عن طريقة اسناد قيمة للمتغير من مستخدم البرنامج عوضا عن المبرمج الي هو انت. الان بتطبيق هالامثلة راح تظهر لك خانات لتدخل قيم قبل تنفيذ البرنامج وهذا ممتع جدا للمبتدئين
كما تكلمت عن موضوع مهم وهو ان كل المدخلات تعتبرها بايثون نص. وعملنا حل شيق.
20-
والآن مع السؤال الترفيهي:
تتوقع ممكن نستخدم الطريقة التالية لتحويل الرقم المدخل من نص الى رقم؟
x = int ( input ( "enter a number : " )
21-
الجواب السابق: نعم ممكن
الان سننتقل الى الجمل الشرطية والتي من خلالها تستطيع عمل برنامج اقوى بحيث تفرض شروط معينة لتنفيذ بعض الاوامر. مثلا اذا كانت الدرجة اعلى من ٦٠ فاكتب ان الطالب ناجح اما ان كانت اقل من ذلك فاطبع الطالب لم ينجح. الصورة ادنا توضح وتشرح الجمل الشرطية.
22-
للمبتدئين: كلمة int اللي ذكرتها في التغريدات السابقة هي اختصار integer ومعناها عدد صحيح.
سؤال ترفيهي:
اذا كان الشرط كالتالي:
If a >0
ومعنى الشرط بالعربي " اذا كان a اكبر من صفر"
فان else لهذا الشرط تعني:
23-
جواب السؤال السابق هو صفر وجميع الاعداد السالبة.
الآن سنتحدث عن الـ functions "فانكشون" او الدوال
الفنكشن هي مجموعة من التعليمات تعرف مرة واحدة فقط ومن ثم تستدعيها كل مرة تحتاجها. مثلا فنكشن لحساب الجذر التربيعي تعرفها وتستدعيها من خلال سطر واحد فقط بدل من تكرار الكود كل مرة
24-
شرح للفانكشن في بايثون
25-
المزيد عن الفنشكن مع دمج لمفاهيم سابقة.
الدروس القادمة ستزداد عمقا وتتطلب فهم كامل لما سبق..وفي نفس الوقت تزداد تشويقا ومتعة. سنتكلم عن المصفوفات والحلقات التكرارية ومن ثم البرمجة الشيئية او الكائنية ان جاز التعبير. وفي الوقت المناسب سنقوم بعمل برنامج كامل.
26-
الآن من السؤال:
ماناتج العملية الحسابية التالية؟
(2 * 2+1+2)
27-
ماهي المصفوفات؟ هي طريقة من خلالها يتم تعريف متغير خاص يحتوي اكثر من قيمة خلاف المتغيرات العادية الي تكلمنا عليها سابقا والتي تحوي متغير واحد فقط. مثلا:
letters = ["a", "b", "c"]
لكل عنصر في المصفوفة رقم(عنوان) خاص يبدا تصاعديا من 0
a عنوانه 0
b عنوانه 1
c عنوانه 2
وهكذا..
28-
اهم طرق ومفاهيم التعامل مع المصفوفات من طباعة واضافة وحذف بالامثلة في الصورة.
29-
المزيد عن المصفوفات في الصورة
١: تغيير قيمة عنصر في المصفوفة
٢: تبديل قيم
30-
فاصل:
هذا هو مخترع لغة البايثون Guido van Rossum
"جويدو فان روسوم"
الجنسية: هولندي
يعيش امريكا (كاليفورنيا) وعمل في قوقل وانتقل الى Dropbox عام ٢٠١٣
عمره :٦٢ سنه
تخرج من جامعة امستردام وعمل في عدة معاهد بحثية.
31-
سنتحدث الان عن الحلقات التكرارية او for loop
هي مفهوم برمجي يمكنك من تنفيذ اوامر برمجية انت تحددها مثلا "اطبع مرحبا" لعدد من المرات انت كمبرمج بشكل مباشر او غير مباشر تحددها مثلا ١٠٠ مرة
شكلها المجرد:
for x in range (y): do the following
ترجمة: بينما x في المدى y قم بالتالي
32-
للحلقة التكرارية for loop بلوك يليها ويكون تابع لها بترك اربع خانات. هذا البلوك سيتم تنفيذه عدد حلقات التكرار المعرف. يمكنك استخدام هذا المفهوم لتقليل اعداد السطور البرمجية و للمرور فوق المصفوفات كبيرة الحجم واجراء عمليات معينة سواء حسابية او "فلترة" لها. في الصورة شرح اومثلة
33-
الآن مع السؤال:
:(1,5) for i in range
print ("hi")
كم مرة ستطبع "هاي" في الكود السابق؟
34-
هناك نوع اخر من الحلقات التكرارية اسمة while loop او "وايل لوب"
هذا المفهوم البرمجي سيكرر الكود الخاص بالحلقة التكرارية طالما لايزال الشرط فعال او true
يتكون هيكل الوايل لوب من كلمة while و شرط (مثلا i<5) ومن ثم التعليمات التابعة للوايل لوب وهي الاسطر التالية ذات الاربع خانات
35-
شرح مفصل عن while loop مع مثال وايضا حل للسؤال السابق في الصورة ادناه.
36-
فاصل بس هالمرة مهم شوي.
for loop اسرع في التنفيذ من while loop
الاثبات في الصورة ولاهو شرط الآن تتعمق وتفهم كيف انحسب وليش اسرع ويكفي ان تعلم من الاسرع لو كانت التعليمات المنفذه زي بعض.
37-
اخر مفهومين سنتحدث عنها قبل البرمجة الشيئية (الجزء ٢) هو الديكشنري dictionary و التبل tuple.
- الديكشنري: يتكون من key اوعنصر رئيسي مرتبط بقيمة او value و يفصل بينهم بـ : والكل بين {} اقواس متعرجة
التبل: قريب جيدا من المصفوفة ولكن يعرف ب( ) خلاف المصفوفة [ ] ولايمكن تعديله
38-
هنا اكواد تشرح اهم استخدامات ومفاهيم الديكشنري.
39-
الدرس الاخير في الجزء الاول والمفاهيم البرمجية الرئيسية وهو عن التبل. وطريقة التعامل معها.
40-
لنعمل برنامج كامل سويا!
تخيل ان استاذ في الجامعة يريد برنامج ليساعده على ادخال درجات شعبه وتحويلها الى تقدير.
هذا مثال على البرنامج في الصورة مع الشرح.
اذا استطعت فهمه وكتابته بنفسك مرة اخرى فانت في اول طريق البرمجة. هنا جمعت تقريبا كل المفاهيم التي شرحتها في صورة وقصة واحده.
41-
اربعين تغريده غطيت فيها الجزء الاول من بايثون وهو الاساسيات البرمجية لبايثون. الجزء الثاني تحبون:
نتعمق بالبرمجة ونتكلم عن البرمجة الشيئية object oriented programming
او نبحر في علم البيانات والبايثون

جاري تحميل الاقتراحات...