الأربعاء، 24 يونيو 2009

اظهار النص

في هذا الدرس سوف نتعرف على كيفية اظهار النص اولا ثم سنتعرف على المتغييرات.
اظهار النص
اولا يجب ان نوضح بعض الامور، هل طرحة على نفسك هذا السؤال : اين سنظهر هذا النص ؟ هل سيكتب في نافذة ما او سيظهر وحده ؟
ان كنت قد سبق لك وان برمجة بلغة ما مثل c او java.. سوف تعرف اننا نتحدث عن نافذة الدوس (Console ,Terminal)، لكي نفهم معنى الدوس يجب ان ثعلم ان هنالك نوعين من البرامج :
  • برامج بالنوافذ : نحن نعرف هذه البرامج فهي البرامج التي تحتوي على نوافذ و ايقونات و الصور و الالوان... وكل ما يجعلنا نعشق الحواسيب مثال عل هذه البرامج :



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

فقط للاشارة في وقتنا هذا لا توجد نوافذ الدوس بلونين فقط، انما بعدة الوان و خلفيات.
في هذا الدرس لا يهمنا ما هي الدوس او كيفية الدخول اليها انما ما يهمنا هو انه يوجد نوعين من البرامج.
بالنسبة لنا نحن بعد اكتساب المعارف اللازمة سوف نبرمج برامج بالنوافد لكن الان سنبرمج برامج تعتمد على الدوس.
الشل التفاعلي IDLE
نحن نعرف بان البرمجة هي عبارة عن كتابة للاكواد، لكن أين ينكتب هذا الكود ؟
في البايثون توجد طريقتان للبرمجة، اي توجد طريقتان لكتابة الكود و تشغيله.سوف نرى الطريقة الاولى، اما الطريقة الثانية ففيما بعد.
الطريقة الاولى تعتمد على الشل التفاعلي (interactif shell)، للدخول الى الشل التفاعلي ندهب الى :
démarrer => Tout les programmes => Python 2.5 => IDLE(Python GUI)
بعدها سوف تطلع لنا هذه النافذة:


هذه هي نافذة الشل التفاعلي و استعمالهل بسيك يكفي كتاية الكود امام "<<<" ثم الضغط على Enter ثم ينفد الكود و ثظهر النتيجة في السط الموالي.

لاظهار النص نستخدم الدالة print متبوعة بالنص و النص يجب ان يكون مكتوب بين علامتي التنصيص (")، مثال :
code : python
1
2
>>>print "Hello World!" 
Hello World!

في المثال السابق كتبنا الدالة print متبوعة بالجملة او الكلمة المراد اخراجها بين علامتي التنصيص، وضغطنا Enter ثم ظهر النتيجة في السطرالموالي.
استخدام الدالة print سهل جدا، وهي في الحقيقة تظهر ما بعدها و ليس فقط ما بين علامتيي التنصيص، لكن لماذا نستخدم علامتي التنصيص؟
حسنا للاجابة عن هذا السؤال قم بكتابة الكود التالي :
code : python
1 
>>>print Hello World

ان كتبت دالك الكود كما هو و ضغطت Enter سيظهر كتابة بالاحمر تخبرك ان هنالك خطأ ما، السبب في دالك هو ان python ضن ان Hello World m متغيير او دالة (سوف نرى لاحقا لماذا) فلم يظهر شيئا و اعتبر ان هنالك خطأ ما، وباستعمال علامتي التنصيص نخبره باننا نريد ان نظهر مجموعة من الحروف (la chaîne de caractères) فيظهر ما بين علامتي التنصيص، ولكن هنالك استثناء فل نكتب الكود التالي :

code : python
1
2 
>>>print "4+4" 
"4+4"

لماذا لم يكتب مجموع 4+4 اي لماذا لم يظهر 8 ؟
هذا لانك قلت للبايثون اظهر مجموعة الحروف او العلامات او الارقام الموجودة بين علامتي التنصيص، انت لم تقل للبايثون بأن يظهر قيمة 4+4 انما فقط 4+4، لهذا السبب استخدمنا علامتيي التنصيص لاظهار Hello World لانه بدون علامتيي التنصيص سوف نفول للبايثون اظهر قيمة Hello World ، و Hello Word ليس لها اي قيمة لدلك يحدث خطأ.
ومادا نفعل ان اردنا اظهار القيمة ؟ مثلا قيمة 4+4 ؟
سوف نعرف اكثر معنى القيمة (Valeur)، لاظهار القيمة ببساط لا نستعمل علامتي التنصيص :
code : python
1
2 
>>>print 4+4 
8

جيد، الان اصبحنا نعرف ان هنالك فرق بين "4+4" و 4+4 .
ماحدث بالضبط هو ان print تظهر ما بعدها، و 4+4 تسمى بعملية، فيقوم البايثون بهذه العملية و يظهر النتيجة،طبعل يمكن استخدام جميع انواع العمليات : الجمع(+)، الطرح(-)، الضرب(*)، القسمة(/)،يمكنك استعمال الاقواس ايضا :

code : python
1
2 
>>>print (156 + (12-4))/2*3 
246

انت حر في عملياتك الحسابية.
حسنا، ان كنت تريد اظهار علامة (") فماذا ستفعل ؟
الطريقة البديهية هي :
code : python
1 
>>>print ""Hello" World!"
هنالك خطأ.
الخطأ هو انك تقول للبايثون اظهر ما بين علامتي و لكن بمجرد اغلاق علامتي التنصيص يعتقد البايثون ان تريد اظهار القيم لدلك يحدث الخطأ، لتفادي هذا الخطأ يجب استعمال الرمز : \ (antislash) ، لكي تقول للبايثون ان علامة التنصيص هذه ليست نهاية علامتي التنصيص و بالتالي يدخلها ضمن ما سيظهر :

code : python
1
2 
>>>print "\"Hello\" World!" 
"Hello" World! 

جيد، الان نريد كتابة اكتر من جملة، مثلا نريد اظهارالكثير من الجم، ادن سوف نستعمل :
code : python
1
2
3
>>>print "Salam !"
>>>print "Je suis NeoX"
>>>print "Tu Veux Apprendre a Python ?"
كود طويل نوعا ما يمكننا اختصاره كما يلي :
code : python
1
2    
>>>print "Salam ! ","Je suis NeoX ","Tu Veux Aprrendre a Python ?" 
Salam !  Je suis NeoX  Tu Veux Aprrendre a Python ?

ببساطة يمكننا شرح الكود السابق كما يلي : يمكنك ان تكتب اكثر من جملة نصية في نفس السطر بمجرد تفريق الجمل بعلامة (,) اي بفاصلة، وعندها يعلم البايثون ان عليه كتابة الجملة الولى ثم الثانية ثم الثالثة.. ولكن الجمل تظهر في نفس السطر ماذا ان اردت اظهار كل جملة في سطر ؟ نستخدم لهذا الغرض علامة \ متبوعة بالحرف n. مثال :

code : python
 1
2
3
4 
>>>print "Salam !  \n","Je suis NeoX  \n","Tu Veux Aprrendre a Python ?" 
Salam !  
Je suis NeoX  
Tu Veux Aprrendre a Python ?

سهلة في التعلم اليس كدلك ؟
لقد اقترب هذا الدرس من الانتهاء لكن قبل دلك ساختبر فهمك للدرس.
الكود التالي صحيح ام فيه خطأ ؟
code : python
1 
>>>print "12 + 18 = ", 12+18
فكر جيدا ثم اجب.
الاجابة : ان كانت اجابتك بصحيح فاجابتك صحيحة. ففي الكود السابق انت تخبر البايثون بأن عليه ان يظهر مجموعة الحروف "12 + 18 =" وبعدها قيمة 12+18 اي 30.
code : python
1
2 
>>>print "12 + 18 = ", 12+18 
12 + 18 =  30


الى هنا ينتهي هذا الدرس، ان واجهتك اي مشكلة فلا تتردد في طرحها في المنتدى.

تنصيب البايثون

تنصيب البايثون على الويندوز


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

بعدها سيتوجب عليك تحميل برنامج باسم Python 2.x.x Windows installer حيث علامة x ترمز الى اخر اصدار، في وقت كتابة هذه السطور كانت اخر نسخة هي 2.5.2 مع العلم ان هنالك الاصدار الثالث من البايثون لكنه ما يزال تحت التجريب لدلك انصحكم بتحميل النسخ النهائية.

بعد التحميل (حجم البرنامج حوالي 12 ميغابيت) سيتوجب عليك تنصيبه كأي برنامج اخر تشغيل البرنامج و الضغط على Next ..Next..Next و Finish... مثل اي برنامج اخر.

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

لتتاكد من ان البرنامج قد ثم تنصيبه، ادهب الى :

démarrer -> Tout les programmes -> Python 2.5 -> IDLE (Python GUI)

ان ظهرت لك نافذة على هذا الشكل :


فهنيئا لك فقد نصبت البايثون ويمكنك الانتقال الى الدرس الموالي.


تنصيب البايثون على اللينوكس(يوبنتو)

سوف نرى كيفية تنصيب البايثون على اللينوكس و سنختار توزيعة اليوبنتو.
في الحقيقة لا تحتاج الى تنصيب البايثون على اليوبنتو، لانه هنالك احتمال كبير ان تكون منصبة تلقائيا او مسبقا على اليوبنتو.
لمعرفة اصدار البايثون المنصب على جهازك : افتح نافذة التيرمنال (Terminal) ثم ادخل الكود التالي :

code : Terminal
python -V


انتبه الى حرف V فيجب ان يكون V و ليس v .

بعد ادخال الكود كما في الصورة :


بعدها اضغط Enter ثم سوف ترى اصدار البايثون المثبث على جهازك، كما في الصورة :



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


هذا كل ما يتعلق بتنصيب البايثون، ربما هذا الدرس قصير جدا و يرجع دالك الى ان تنصيب البايثون سهل و لا يتطلب الكثير من الوقت.
الدرس القادم سيكون درسا ضخما كما انه سيكون اول الخطوات مع البايثون.

مقدمة الى البايثون

تعريف البايثون

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

تكو البرمجة خاضعة لعدة قواعد حسب اللغة المختارة مثلا في لغة السي يجب ان ينتهي كل سطر بعلامة ";" و هكدا حسب كل لغة و من هنا نستنتج ان لكل لغة خصائصها و موجباتها و سلبياتها اما نحن فسوف ندرس لغة البيثون.

لغة البيثون (Python) هي لغة برمجة من المستوى العالي و نحن اخترنا هده اللغة عن باقي اللغات الاخرى لانها تتميز بعدة مميزات ندكر منه :

  • سهول البرمجة : تجدر هنا الاشارت الى ان البرمجة بلغة البيثون اسهل حيث انها تتطلب كودا اقل للقيام بنفس الشئ الدي تقوم به اللغات الاخر كلغة السي، اي ان البرمجة بالبيثون تكون في وقت اقل و كدلك الكود يكون اقل، كما ان الكود يكون سهلا في الكتابة و لا يخضع لقواعد ملزمة، فمثلا في السي او السي++ يجب ان ينتهي كل سطر بعلامة ; و ان لم تضعها عند نهاية السطر يحدث خطأ في البرنامج، لايوجد هذا المشكل في لغة البيثون.



  • سهولة تعلم اللغة : البيثون سهلة في التعلم، لقد كُتبَة هذه اللغة لتجمع بين سهولة الاستعمال و استعمال "التقنيات" الحديثة كالبرمجة الكائنية الموجهة (POO) طبعا سوف نرى ماذا تعني لاحقا و عندها سترون قوة هذه اللغة.

  • امكانية استخدام المكتبات : مما يزيد من قوة هذه اللغة هو امكتنية استخدام مكتبات كثير ندكر منها PyQt و PyGame.

  • مفتوحة المصدر : لا يمكننا ان ننسا انها لغة مفتوحة المصدر اي مجانية فان كنت تريد ان تبرمج بلغة البيثون لن تضطر الى دفع اي شئ و مايهم اكثر في كونها مفتوحة المصدر هو ان اي شخص يمكنه المساهمة في تطويرها...

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

  • امكانية استخدام اللغة في انشاء مواقع الانترنيت : يمكن برمجة المواقع بواسطة هذه اللغة، فهي تجمع بين القوة و السهولة.

هذه المميزات قلما تجدها في لغة اخر، لكن هذه المميزات لها ثمن.



الحاسوب جهاز معقد يتكون من العتاد(Hardware) و البرنامج(Software) الحاسوب لا يفهم الا لغة واحدة اللغة الثنائية(binary) وهي تتكون من الاصفار و الواحدات "0110101100110110" نحن لا نفهم هذه اللغة ادن لكي نبرمج اي نعطي الحاسب التعليمات لكيفية معالجة البيانات... يجب ان نكتب هذه البيانات بلغة نفهمها نحن و الحاسب ايضا : لكن هذا مستحيل لان الحاسب جهاز غبي جدا لا يعرف الى الاصفار و الاحاد، ونحن الجنس البشري لا نفهم الا الاشياء المنطقية التي يتقبلها عقلنا ويسهل عليه حفظها.
المهم فكر العلماء في هذا المشكل ووجدوا الحل لهذه المعضل : يقتضي الحل بانشاء لغة نفهمها نحن وفي هذه الحالة هي لغات البرمجة و بعد ان نكتب الكود بهده اللغةالتي نفهمها نحن و الحاسوب لا يفهمها نحولها او نترجمها الى لغة الحاسوب بواسطة برنامج يسمى المترجم او المجمع يقوم هذه البرنامج بتحويل كود نفهمه نحن "يتكون من جمل و ارقام و علامات" الى كود يفهمه الحاسوب "001101010010011001".

ما يهمنا نحن هو عملية التحويل او الترجمة، في الواقع هنالك طريقتان للقيام بترجمة الكود الى لغة الالة :
  • المجمع (compilateur) : هده الطريقة تقريبا هي الاكثر شهرة و هي تقوم على تحويل الكود المصدري الى كود ثنائي ويتم وضعه في ملف يسمى ملف تنفيذي ( في الويندوز يكون امتداده exe.) حيث انه بمجرد الضغط عليه يحمل الكود الى الداكرة العشوائية (ram) و ينفذ. من ايجابيات هذه الطريقة هو انه يمكنك تشغيل البرنامج على كل الاجهزة دون الحاجة الى تنصيب برنامج ما.

  • المترجم (interpréteur) : هذه الطريقة هي المستخدمة في لغة البايثون فهي لا تقوم على تحويل الكود المصدري الى ملف تنفيذي انما يتم وضع الكود في ملف مصدري و عند الضغط عليه يمر من برنامج يسمى python ثم يحويله الى صيغة الحاسب و يتم تنفيده في كل مرة. طبعا هنالك بعض السلبيات هو انه لن يشتغل البرنامج الى في جهاز يكون python مثبا فيه و لكن هنالك بعض الايجابيات ايضا سنرها فيما بعد. فقط للاشارت هنالك برامج تحول الكود المصدر للبيثون الى ملف تنفيدي.

يمكنن وضع مثال لفهم المثاليين هو ان الطريقة الاولى مثل برنامج تعطيه الوصفة و يجمعها في قطعة حلوى و يمكنك اكل هذه الحلوى اينما دهبت، وفي الطريقة الثانية فهي كبرنامج تعطيه الوصفة و يعطيك مطبخ !!! وفي كل مرة حنما "تشغل" هذا المطبخ يعطيك حلوة !

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

و بعد كل شئ تبقى البايثون الاختيار الانسب.