مشاهدة النسخة كاملة : .::- أول دورة من نوعهــا على صعيد المواقع العربية : دورة Python -::.


Lem_Chouaib
10-24-2024, 10:55 AM
بسم الله الرحمن الرحيم و الصلاة و السلام على أشرف المرسلين سيدنا محمد و صحبه أجمعين و من تبعهم بإحسان إلى يوم الدين
أما بعد
سنبدأ بحول الله دورة في لغة البايثون نتعرف فيها على هذه اللغة الرائعة ذات الإمكانيات العالية التي جمعت بين القوة و السهولة و لقد عرفنا سابقا المشاريع الضخمة التي أنجزت بهذه اللغة وتعتبر لغة البايثون أحسن إختيار للبدء بالبرمجة حسب رأي أغلب خبراء البرمجة لأنها لغة كاملة تحتوي على جميع مبادئ البرمجة لأنها كانت سابقا عبارة عن نواة نظام تشغيل كما أن البرمجة بهذه اللغة سيزيد من إنتاجية المبرمج لأنها تتيح له الكثير من الدوال التي تسهل عليه إنشاء المشاريع الكبيرة كما أن المبرمج بلغة السي يتوجب عليه تعلم هذه اللغة لإستعمالها مع لغة السي حفظا للوقت .
لغة البايثون لغة محمولة تستطيع البرمجة بواسطتها على كل الأنظمة و لكنها تعتبر مركز قوة لمستعمل نظام لينيكس خصوصا لأمنها متوافقة مع هذا النظام مما يسمح للمبرمج بالتحكم في موارد النظام بسهولة .


خطة الدورة :

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


متطلبات الدورة

سنحتاج أولا إلى المفسر الرسمي للغة البايثون و تستطيع تحميله من الموقع الرسمي للغة البايثون

رابط التحميل
<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>
(<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>
)

صورة المفسر

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


ثم يلزمنا بعد ذلك تحميل المفسر Py******erer الذي سنعمل به خلال الأقسام الأولى من الدورة

رابط التحميل

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>
(<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>
)

صورة المفسر

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>



قم بتثبيت المفسر الرسمي الذي حملته أولا سيطلب منك إعادة تشغيل الجهاز بعد التثبيت عند تشغيل الجهاز ثانيتا قم بتثبيت بيسكريبتر
إذا كنت تستعمل لينيكس لا يلزمك تحميل أي برنامج لأن لينيكس قد أعطاك العشرات من الإمكانيات للبرمجة بهذه اللغة تستطيع إستعمال سطر الأوامر مباشرة بكتابة الأمر python أو تستطيع إستعمال بيئة Kdevelop و يوجد بيئة أخرى مخصصة للغة البايثون إسمها Eric


أول خطوة مع البايثون

أدات النسخ print

طريقة إستعمال المفسر سهلة جدا و هذا راجع لسهولة اللغة بحيث لا تفرض علينا تعريفات قبل الإستعمال . و لطباعة الكتابة على الشاشة نستعمل الأمر print ثم نتبعه بالرسالة التي نريد طباعتها و لتشغيل البرنامج (run) نقوم بالضغط على F9

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


ويظهر النتاتج الكود أسفل البرنامج

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


و نستطيع أيضا إسناد جمل لـ المتغيرات و طباعتها على الشاشة كما هو موضح في الثال التالي

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>



<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>



- المتغيرات

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


<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>



كما نلاحظ في المثال x تعتبر المتغير أو إسم المتغير و 10 أو 22 تعتبر قيمة المتغير و قلنا أن إسمه متغير لأننا نستطيع تغير قيمته متى نشاء
و لكي نستطيع حجز قيم ومعلومات في ذاكرة الجهاز لابد لنا من إسنادها إلى متغيرات لكي يستطيع الجهاز حجزها فالجهاز يتعامل مع المعلومات أو القيم حسب أسمائها فمثلا يحجز الجهاز القيمة 10 ويطلق علها إسم x فإذا استدعينا x بالأمر print يقوم الجهاز بالبحث عن x في الذاكرة ثم يقوم بتحميل قيمتها .

تترك الغة في إختيار الأسماء ل المتغيرات و بكل الأحرف (A>Z) و الأعداد(0<9) لكن يشترط أن يكون أول الإسم عبارة عن حرف لا عدد .
و لاتستطيع إستخدام الأحرف الخاصة لتسمية المتغيرات مثل # @ /$ و أيضا لا يمكنك تسمية المتغيرات بالاسماء المحجوزة من الطرف اللغة و المبينة في القائمة التالية

كود PHP:
and assert break class continue def
del elif else except exec finally
for from global if import in
is lambda not or pass print
raise return try while yield


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

إسناد قيم لـ المتغيرات

كما قلنا سابقا يتكون المتغير من قسمين إسم وقيمة و إسناد قيمة لمتغير معين أمر سهل جدا بحيث نقوم بكتابة إسم المتغير ثم وضع علامة = ثم قيمة المتغير.

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


من اروع مميزات لغة البايثون أنها تقوم بتعريف المتغير تلقائيا ففي لغة السي مثلا يجب أن نعرف نوع المتغير قبل أن نسند له قيمة

لغة البايثون تكتشف نوع المتغير تلقائيا ليس هذا فقط بل إنها تقوم بتسير موارد الذاكرة تلقائيا و هذه الميزة الأخيرة لا يعرف قيمتها إلا من جرب البرمجة بلغة السي و السي ++ .
في الأمثلة الثلاثة الذكورة في الأعلى يقوم الحهاز بعمل أربعة أمور
-إنشاء المتغير ثم حفظه و حفظ المعلومات الخاصة به( الإسم القيمة).
-يحدد نوعه.
-يحوله إلى صيغته الخاص الصيغةأو المستعملة من طرف الجهاز المشابهة ل الصيغة التالية a3 b9 fx
-إنشاء رابط (مؤشر) بين الإسم و مكان الحفظ و هذه ميزة أخرى رائعة بحيث أن اللغة تقوم يتسير المؤشرات تلقائيا .

نستطيع إعطاء قيمة لأكثر من متغير في سطر واحد أو حتى إعطاء قيم مختلفة لمتغيرات متعددة كما يوضح المثال التالي

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


وهذا مثال يقوم بحساب المساحة

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


كما نستطيع التعامل مع المتغيرات بكل المعاملات الرياضية */ + ...

يوجد معامل مهم هو معامل باقي القسمة %

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


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


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

تم بحمد الله

Lem_Chouaib
10-24-2024, 11:29 AM
جمل التحكم بالمتغيرات (جمل الشرطية)

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

أولا يجب عليك أن تعلم أن عماد البرمجة بأي لغة هي الجمل الشرطية و الحلقات و السلاسل الحرفية بمختلف أنواعها و المؤشرات(في اللغات المنخفضة المستوى) و إن احتراف البرمجة لا يؤتى إلا بإتقان هذه الأمور و فهمها جيدا لأن كل شيئ يأتي بعد هذه الأمور سيعتمد عليها سواء في البرمجة الكينوية (ِClass ,Method) أو في الواجهات الرسومية لدى إحذر أخي القارئ فطريق الإحتلراف يبدئ من هنا و لا تستصغر أي شيئ لأنك ستحتاجه فيما بعد .

نحن نعلم أن اللغة العربية تحتوي على جمل الشرط و أن هذه الجمل تتكون من قسمين جملة الشرط وجملة جواب الشرط , كذلك الحال مع لغات البرمجة بحيث أننا نقوم بكتابة الشرط ثم يليه جواب الشرط أو بالاحرى الأوامر التي سينفدها البرنامج عند تحقق الشرط

كود PHP:
if< condition> الشرط
< bloc d'instruction'>
جواب الشرط


في لغة البايثون تكون جملة الشرط على النحو التالي

كود PHP:
a=10
if(a>10):
..........


فجملة الشرط تبتدأ دائما بعبارة IF (إذا) ومابين القوسين يعبر عن الشرط ثم النقطتين : لـ الدلالة على أن ما يتبع النقطتين عبارة عن جواب الشرط أو لكي نبين للمفسر أن كل ما يأتي بعد النقتطين ينفد إذا تحقق الشرط.

كود PHP:
a=1200
if(a<2000):
print"a <2000"


<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


عند تحقق الشرط قام المفسر بتنفيد جواب الشرط و هو طباعة الرسالة.

ملاحظة هامة : يجب مراعات المسافة التي يتيحها لك البرنامج بعد جملة If لا تعد لأول السطر بل أكتب الأوامر في هذه المسافة فكل ما سيكب في هذه المسافة يعتبره المفسر تابع لجملة if .

الآن لو كان لدينا حالتين لشرط واحد يتوجب علينا إستعمال عبارة ثمسث التي تعتبر أخت جملة if

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


بهذا سنكون قادرين على التعامل مع أكثر من حالة مع نفس الشرط , لا يشترط كما تلاحظون وضع الأقواس في جملة if ولكن من الأحسن وضعهما لكي تزيد في وضوح الكود.
وهذه بعض المعاملات التي سنحتاج إليها ل التعامل مع المتغيرات بواسطة الجمل الشرطية

كود PHP:
x==y المساوات
x!=y عدم المساوات
x>y
x<y
x>=y
أكبر أو يساوي
x<=y
أقل أو يساوي


مثال

إكتشاف العدد زوجي أو فردي

كود PHP:
a=7
if(a%2==0):
print" a est pair" # عدد زوجي#
else :
print " a est impair"
#عدد فرد#



أخذ المعلومات من المستعمل :

حتى الآن لم نعرف كيف نطلب من المستعمل إدخال معلومات أو أعداد وهذا ما سنعرفه الآن
يوجد عبارتين أساسيتين في لغة البايثون لإدخال المعلومات هما Input() و raw_input() و كلهما له نفس العمل تقريبا ولكن يوجد إختلاف طفيف بينهما سنعرفه في الدروس المتقدمة إن شاء الله .
و لكي نستطيع إستعمالهما بصورة ديناميكية يجب علينا إستعمال الفسر Py******er و من الآن فصاعدا سنستعمل هذا المفسر لأنه أحسن من المفسر الرسمي .

<h1 dir="rtl" style="text-align:center"><strong><span style="color:#0000cc">:: الأعضاء المسجلين فقط هم من يمكنهم مشاهدة الروابط </span><a href="لايمكنك مشاهده الروابط الا بعد الرج" target="_blank"><span style="color:#0000cc">للتسجيل اضغط هنا</span></a><span style="color:#0000cc"> ::</span></strong></h1>


بما أننا أصبحنا الآن نعرف كيف نتعامل مع المستخدم سنواصل الجمل الشرطية ونطبق بعض الأمثلة عليها

سنقوم في المثال التالي بـ الطلب من المستخد إدخال عددين ثم ندرس حالات العددين

كود PHP:
a=input('number 1 :')
b=input(' number 2 :')
if a>b:
print a," > ",b
elif a<b:
print a," < ",b
else:
print a," = ",b


و في التالي سنقوم بالطلب من المستخدم بإدخال عدد ثم يكتشف البرنامج إن كان العدد زوجي أو فردي

كود PHP:
a=raw_input( 'Introdiusez un nombre :')
if (int(a) % 2==0 ):
print a," est paire "
else:
print a," est impaire "


قمنا بالكتابة التالية

كود PHP:
int(a)


حتى يحول المفسر قيمة a إلى عدد صحيح integer بدون فاصلة .
ثم قسمنا هذ العدد على إثنين فإذا كان الناتج صفر فالعدد a زوجي و إذا كان الناتج مختلف عن الصفر فالعدد فردي.
الآن نريد أن يكون العدد المدخل من طرف المستعمل أقل من مئة فإذا كان أكبر من مئة نطبع للمستخدم رسالة خطأ

كود PHP:
a=raw_input( 'Introdiusez un nombre <100 :')
if (int(a) % 2==0 and int(a)<100 ):
print a," est paire "
elif a>100:
print a," Error "
else:
print a,"est impaire"


المعامل and يعني "و" و المعامل or يعني "أو" و المعامل not يعني "ليس" المعامل in يعني "في"

أمثلة

في المثال التالي سيقوم البرنامج بالطلب من المستخدم إدخال رقم بين 0 و 100 فإذا أدخل المستخدم رقم أكبر من 100 أو أقل من 0 سيقوم البرنامج بطباعة رسالة خطأ

كود PHP:
a=int(raw_input('enter any number !!(0) or >100 '))
if( a<0 or a>100):
print "pleas enter a nember between 1 and 99"
elif (a>0 and a<100):
print "good"
else:
print"Error"


في المثال التالي يقوم البرنامج بالبحث عن حرف s في إسم المستخدم

كود PHP:
name =raw_input('your name pleas : ')
if 's' in name :
print " your name contain (s) char )"
else:
print" can't find char s in your name "


كما اننا نستطيع إستعمال in في الأرقام كما هو موضح في المثال التالي

كود PHP:
number =raw_input('enter a number : ')
if '0' in number:
print " the number contain 0 )"
else:
print" the number dos't contain 0 "



و في التالي مثال يقوم بالطلب من المستخدم إدخال مبلغ مالي ثم يقوم البرنامج بحساب القيم المضافة TVA لهذا المبلغ علما أنه إذا كان المبلغ أقل من 1000 فليس عليه قيمة مضافة و إذا كان المبلغ أكبر من 1000 سيطلب البرنامج من المستخدم إدخال قيمة الرسم TVA ثم يحسب القيمة

كود PHP:
Sum =int(raw_input('Sum : '))
if Sum<1000:
print "No TVA "

else:
p =float(raw_input('TVA : ' ))
TVA=(Sum*p)/100
print "TVA : ",TVA



علمنا بأن قيمة الرسم تكون بالفاصلة في أغلب الأحيان فقمنا بتحويل العدد المدخل من طرف المستخدم إلى نوع float حتى يتمكن البرنامج من التعامل مع العدد المدخل

كود PHP:
p =float(raw_input('TVA : ' ))




إنتهينا الآن من الجمل الشرطية و أظن أن الأكثرية فهمتها لأنها سهلة جدا و لكنها مازالت تتبعنا في مشوارنا الطويل إن شاء الله و سنطبق أمثلة عليها في الدروس المقبلة

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

تم بحمد الله

Adsense Management by Losha