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

    

قلعه برامج نت للشروحات    .. 

Lem_Chouaib

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

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


خطة الدورة :

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


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

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

رابط التحميل
يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي


صورة المفسر

fff88cb8ba6d9edd91bda3ec0e1f6c385g.jpg


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

رابط التحميل


يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي


صورة المفسر

807f70ddfd20d3003ab78e1ce10417884g.jpg



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


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

أدات النسخ print

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

a6f4b880b2f573a5318d1068c78d56f94g.jpg


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

c8c817f8570b414a1abff31e82aae9524g.jpg


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

634498853ea88c4fad5cffc83506d7314g.jpg



6660faee04ffd54d26a937761ee554804g.jpg


f771e9e1104fb30a730b25c1e1a0f4544g.jpg



- المتغيرات

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


ffb56627223507e1d477036fa71edcb14g.jpg



كما نلاحظ في المثال 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 حتى تستطيع معرفته بسهولة لأنك في المستقبل إن شاء الله ستستعمل الكثير من المتغيرات في مشروعك فإذا كان الإسم مناسب لن تتعب كثيرا في البحث عن المتغير و يكون عملك منظما اكثر.

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

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

df3c8e411483544aadb7302dff6de4fd4g.jpg


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

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

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


30408222d0aa1ea46ca74853d4ddefa44g.jpg


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

6fbe2f8f91403c9f37579d66d12aea534g.jpg


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

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


5ede4128a3f35566f454bf6c27dfe9134g.jpg


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


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


تم بحمد الله
 
جمل التحكم بالمتغيرات (جمل الشرطية)

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

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

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


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

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

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

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

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

d039c4b6d2761c9a3ed8449ce20ed2fc4g.jpg


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

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

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

671f186d1e8ada3023c8fde44ec8d64d4g.jpg


بهذا سنكون قادرين على التعامل مع أكثر من حالة مع نفس الشرط , لا يشترط كما تلاحظون وضع الأقواس في جملة 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 و من الآن فصاعدا سنستعمل هذا المفسر لأنه أحسن من المفسر الرسمي .


cf720d6885c2a3fdad51142374cd08e44g.jpg


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

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

كود 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 : ' ))



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

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


تم بحمد الله
 
عودة
أعلى