مقدمة إلى بايثون
Tuesday, December 22, 2009 | | 7 comments |بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
خضت في الفترة الماضية تجربة بسيطة مع python على ububto 11 ، وكانت تجربة جيدة ، لذا أحببت أن أشارككم بها هنا ، لمستخدمي لينكس الموضوع بسيط لكن بالنسبة لمستخدمي ويندوز هناك ironpython ولكن لم أجرب العمل عليه .
بداية :
تصنف البايثون تحت تصنيف لغات البرمجة ال Dynamic ، حيث لا تشترط تعريف للمتغيرات ولا تحديد أنواع البيانات وخلافه ، مناسبة جداً لتطوير أي سكربتات سريعة ، سهلة جداً وستجد ملايين المصادر لها عبر الإنترنت لعمل كل شيء تقريباً .
كيف أحمل البايثون :
في اوبنتو ستجد أغلب البرامج التي تطلبها موجودة في System->Administration->Synaptic Package Manager :
الآن تحتاج لاضافة مكتبات البايثون ، يمكنك اختيارها من البرنامج أو يمكنك تحميلها من خلال ال Terminal بالأمر التالي :
sudo apt-get install python
الآن بامكانك البدء مباشرة ، أو يمكنك تحميل برمجيات اضافية مثل netbeans المخصص أصلاً للجافا ، لكنه سيوفر لك عدة خصائص مثل الإكمال التلقائي وغيره ، يمكنك تحميل برامج أخرى لتصميم الواجهات بالبايثون وخلافه ولكنها أمور متقدمة .
برنامجي الأول :
بعد أن تكون قد قمت بتحميل مكتبات البايثون ، ومن خلال Terminal قم بكتابة الأمر التالي :
python
ثم جرب كتابة كودك الأول بالشكل التالي ثم اضغط انتر :
s='Welcome Ahmed';
print s
والنتيجة :
وللخروج اطبع exit().
احفظ ملفاتك :
يمكنك فتح ملف نصي جديد وكتابة نفس الأوامر فيه ، ومن ثم حفظه بامتداد .py .
في هذه الحالة ومن التيرمنال يمكنك الوصول للملف
cd /home/ahmed/Desktop
ومن ثم :
python a.py
وستؤدي نفس النتيجة ، فقط ستحصل على الأكواد ملونة
اللغة :
الآن وبعد أن قمت بكتابة برنامجك الأول لزمك التعرف على عالم لغة البايثون ، البايثون لغة متقدمة جداً وتحتوي على كل ما تعرفه في اللغات الأخرى بدءاً من الشروط وحلقات التكرار وانتهاء بالبرمجة كائنية التوجه OOP بالاضافة لاحتوائها على عدد ضخم من الدوال الجاهزة ، لذا لن أستطيع أن أشرح لك كل هذا ، في هذه العجالة فقط سأذكر لك عناصر اللغة الأساسية ، فقط قبل البدء علي تنبيهك أن عدد المسافات في بداية كل سطر ستحدد بداية ونهاية الشروط وخلافه ، ستتعرف على هذا الأمر بصورة أوضح في طريقة كتابة الشروط :
الشروط :
x = int(raw_input('Enter Number : '))
if x == 100:
print '100%'
elif x < 50:
print 'So bad :('
else:
print 'it is ok.'
حلقات التكرار :
# exit from loop if x=10
while running:
x = int(raw_input('Enter Number : '))
if x == 10:
print 'it is exit now'
running = False
else:
print 'The while loop is over.'
تعريف الدوال
def funcHello():
print 'Hello'
funcHello()
ماذا عن تصميم الواجهات :
يمكنك استخدام برامج خارجية لتصميم الواجهات ، هذا الرابط مفيد جداً :
http://arabicfoss.blogspot.com/2009/01/pyqt4.html
لكن لو احببت البدء بالموضوع من البداية ، فأول ما ستحتاج إليه هو استخدام مكتبة رسوميات مناسبة ، هذه المكتبة مثال pygtk .
الآن لنجرب هذا الكود مثلاً - منقول من كتاب لتصميم الواجهات - :
import pygtk;
pygtk.require('2.0');
import gtk;
def delete_event(widget,data):
False;
def destroy(widget,data=None):
gtk.main_quit();
window = gtk.Window(gtk.WINDOW_TOPLEVEL);
window.set_title("Hello");
window.connect('delete_event',delete_event);
window.connect('destroy',destroy);
hello_world_button = gtk.Button("Hello");
hello_world_button.show();
window.add(hello_world_button);
window.show();
gtk.main();
الآن جرب وطالع النتيجة .
يمكنك البدء لاحقاً ببرمجة الأحداث وربطها ، ربما نشرحها في مرات قادمة بالتفصل .
والويب :
تحتاج لاستخدام framework خاص بالويب ، أشهرها هو django ، يمكنك البدء من هنا :
http://wiki.python.org/moin/WebFrameworks
مصادر :
وجدت عدة مواقع باللغة الإنجليزية وكتب تشرح البايثون ، لكن باللغة العربية لم أعثر على أفضل من هذا الكتاب :
http://www.maastaar.com/books/pygtk/Building-Applications-With-PyGTK-and-SQLite.pdf
شكراً لكاتبه وجعل الله جهده في ميزان حسناته .
ختام :
كل الشكر لمحمد نبيل على تعبه معي الفترة الماضية
والسلام عليكم ورحمة الله وبركاته .