المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دليل المبتدئين لتعلم لغة البايثون.


دندش
2012-07-24, 08:54 PM
دليل المبتدئين لتعلم لغة البايثون ## python

السلام عليكم ...

انتهيت والحمدلله اليوم من الدرس واعتقد يهم المبتدئين واللي ودهم يتعلمون لغة الـpython ...

ماراح اطول بالمقدمة نبدأ بالدرس ....

بسم الله ...

تعتبر لغة البايثون من اللغات الجميلة والسهلة في التعلم ... ومن اللغات المهمة ايضا ً على انها سهله ... حتى انها تقارن

مع اللغات الاخرى المعروفة مثل : Perl,Tcl,Java,or Scheme ... وراح اذكر بعض مميزات هذه اللغة ..

=* البايثون تستخدم بشكل سهل وسياق مبسط يعني الكود قابل للقراءة ومفهوم

=* البايثون لغة خفيفة الحركة حتى تسهل عليك عملك وهذا ما يجعل البايثون لغة مثاليه

=* المعلومات الاساسيه متوفرة بالبايثون الأرقام (سواء عشريه أو أعداد كبيره أو غيره من الأعداد ) والخيوط المسماه بــ(Strings) تشمل هذه الخيوط ( ASCII and Unicode ) وكذلك القوائم و المعاجم .

=* ولا انسى أن اللغة تدعم Object-Oriented Programming مع المصفوفات

=* ايضا ً الكود أو الشفرة تستطيع ضمّه مع وحدات القياس (Modules) و الرزم (packages)

=* المترجم في لغة البايثون ممتد بسهوله تستطيع إضافة (Modules) في المترجم الخاص
بلغات أخرى مثل C or C++

=* ايضا ً واجهة البايثون مبسطه جدا ً مجرد ما تكتب الكود تحصل على عملك بدون أي تعقيد .

=* ايضا ً البايثون لغة مفتوحة المصدر open source

=* البايثون تستطيع التعامل معاها بمختلف الأنظمة سوا ويندوز أو يونيكس أو ماكنتوش

ملاحظه : (هذا مجرد تلخيص بسيط لهذه اللغة ... تستطيع التعرف على اللغة بشكل اكبر عن طريق Google )

الآن بعد ماتعرفت على اللغة بسم الله نبدأ بتعلمها بشكل مبسط ...

أولا : كيف يتم تطبيقها ؟ وكيف أبدا بكتابة اكوادها ؟

في البداية يجب تحميل وتنزيل البايثون على جهازك سواء كنت تحت بيئة الويندوز أو اليونكس أو الماكنتوش وتستطيع تنزيله

من الموقع الرئيسي لهذه اللغة عنوان الموقع ( http://www.python.org/download )

تطبيقنا راح يكون على بيئة الويندوز بإذن الله ..

ثانيا ً : ماذا بعد التنزيل ؟

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

الاولى : عن طريق سطر الأوامر ( Command Line )

طبعا ً سطر الأوامر من الحاجات الممتعة ويحب الكثير وخصوصا المتمرسين واللذين يحبون الغموض والشاشة

السوداء python دليل المبتدئين لتعلم البايثون .. قد يكون البعض يفضل التعامل مع هذه اللغة عن طريقه ..

الثانية : عن طريقه الواجهة الرسوميه (IDLE) ( graphical)

أنا أُفضل الواجهة الرسوميه بالتأكيد .... وانصح فيها المبتدئين حتى يسهل عليه التعامل مع هذه الواجهة سوا تعديل أو حذف

عن طريق استخدام الفارة .

الآن بعد ما تم تشغيل الواجهة عندك .. ماذا تلاحظ ؟ لنرى !

تجد العلامة "<<<" بحثت عن معناها أو المسمى لها بالعربي وجدت لها معنى يمكن يكون ليس مفهوم عند البعض .. على العموم المسمى هو prompt

إذا بحثت عن معناها بالعربي تجد المعنى (المحثث) من الحث يحُث python دليل المبتدئين لتعلم البايثون

الـ prompt تجده في كل مكان .. لو تلاحظ الدوس الـ prompt تبعه هو :

"C:\>"

واليونيكس :

"$"

والـprompt هو برنامج ينتظرك أنت (المستخدم) حتى تعطيه التعليمات ^_^

ثالثا ً : التعامل مع الواجهة والبدء

التعامل مع البايثون بسيط وسهل وسلس جدا ... لاحظ :

كود:

IDLE 1.1.1
>>> 1
1
>>> 2
2
>>> 99
99
>>> 1230440340
1230440340
>>> sami = 20
>>> ahmad = 50
>>> saleh = 99.99
>>> sami
20
>>> saleh
99.989999999999995
>>> ahmad
50
>>>

مثل ما تلاحظ بالأعلى تُدخل الأمر وتلاحظه يعرض النتيجة أمامك بسرعة ! وتلاحظ أن البايثون يُعرف المتغير بحسب

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

سواء كان أرقام أو حروف أو قوائم ... الخ

رابعا ً : أنواع المعلومات والقيم في البايثون

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

الملعومات والقيم ..

توضيح :

تلاحظ في بعض لغات البرمجة الاخرى مثل C or C++ a اذا اراد كتابة متغير يقوم بكتابة نوع هذا المتغير قبل

استخدامه .. على سبيل المثال :

كود:

int my_integer;

هذا المتغير يقوم بـ إخبار المترجم او المفسر يحجز مكان في الذاكرة لكي يقوم المترجم بالتعامل مع المعالج ! (وجع راس !)

لاحظ ان لازم تحدد نوع المتغير ..

اما البايثون .. لغة ديناميكية .. يعني توضح لك نوع المتغير بدون ما أنت توضحه (بدون وجع راس !)

ولا تحتاج لـ كومبايلر .. لاحظ المثال الآتي :

كود:

IDLE 1.1.1
>>> s = 1
>>> s
1
>>> type (s)
<type 'int'>
>>> s + 5
6

>>> s = 'sa'
>>> s
'sa'
>>> type (s)
<type 'str'>
>>> s + 5

Traceback (most recent call last):
File "<pyshell#7>", line 1, in -toplevel-
s + 5
TypeError: cannot concatenate 'str' and 'int' objects
>>> s + 'mi'
'sami'
>>>

فهمت المقصود من المثال ؟ على العموم راح اشرحه حتى تتضح الفكره ...

نبدأ بأول الكود ..

كود:

IDLE 1.1.1
>>> s = 1
>>> s
1

هنا سوينا حرف s بالواحد (أصبح الحرف الآن متغير يحمل قيمه ) ..

بحيث إذا طلبت الحرف s يطلع لك قيمته وهي الرقم واحد ..

الجزء الثاني من القسم الأول من الكود :

كود:

>>> type (s)
<type 'int'>
>>> s + 5
6

مثل ما أنت شايف كتبت type (s)a طبعا هنا مو مثل اللغات الأخرى (C or C++) ما يحتاج تخزن المتغير ونوعه

حتى يتم التعرف عليه من المعالج .. مجرد ما تكتب المتغير يطبع لك نوعه .. مثل ما أنت شايف نوع المتغير s هو int

يعني integer أي عدد صحيح بالعربي .. ولاحظ بالأخير عملية الجمع أضفنا 5 على المتغير طلع لنا الناتج 6 ^_^

باقي المثال واضح .. لكن أحب أوضح حاجه من المثال ..

كود:

>>> s = 'sa'
>>> s
'sa'
>>> type (s)
<type 'str'>
>>> s + 5

Traceback (most recent call last):
File "<pyshell#7>", line 1, in -toplevel-
s + 5
TypeError: cannot concatenate 'str' and 'int' objects
>>> s + 'mi'
'sami'
>>>

لاحظ عندما جمعنا المتغير s مع العدد 5 طلع لك خطأ (لاحظ أن نوع الخطأ موضح لك) طبعا السبب واضح لا نستطيع

إضافة حروف مع أعداد .. شوف بعد ما عملنا إضافة أحرف مع أحرف كل شي تمام وبدون أي مشاكل ..

فيه نقطة لازم أوضحها بالنسبة للمتغيرات وإضافة الأحرف وأعداد مع بعض .. ذكرنا قبل قليل لا نستطيع إضافة حروف مع

أعداد ! لكن لماذا ؟

*ما خطر في بالك ليش .. أو مسكت عناد وقلت لازم أضيف عدد مع حرف (كيفي !)

طبعا تستطيع إضافة أعداد مع حروف لاحظ المثال الآتي ما راح اشرح المثال راح يكون واضح واعرف السبب بنفسك

ليش تم جمع أعداد مع حروف ؟

كود:

>>> s = 'sa'
>>> s
'sa'
>>> type (s)
<type 'str'>
>>> s + 5

Traceback (most recent call last):
File "<pyshell#7>", line 1, in -toplevel-
s + 5
TypeError: cannot concatenate 'str' and 'int' objects
>>> s + 'mi'
'sami'
>>> s + '123'
'sa123'
>>>

أتمنى الفكره وضحت !

خامسا ً : الفونكشن ( Function )

الفونكشن بالبايثون مثل أي لغة أخرى يعني نفس الوظيفة والعمل وكل شي ..

بشكل عام .... عندما يتم تعريف الفونكشن ويقوم المبرمج بتحديد اسم للفونكشن بيكون كل شي تمام ..
وطبعا دائما ً يعود (return) الفونكشن على قيمه معينه .. وأن أردت أن لا يعود على قيمه تكون القيمة None .

لو تلاحظ اللغات الأخرى (اللغات التي تحتاج مترجم Compile)
يكون الفونكشن مُعرف بملف مصدري ( source code ) ثم يتم تحويل الملف (عن طريق المترجم)
إلى تعليمات المعالج .. أما في بالبايثون يتم تعريف الفونكشن بشكل مباشر عن طريق def


مثال :

كود:

IDLE 1.1.1
>>> def MyName():
"NH-STYLE"

>>> MyName
<function MyFirstFunction at 0x00CB2670>

>>> print MyName.__doc__
NH-STYLE

شيئين لازم يكونون في بالك إذا كتبت الفونكشن ...

## جميع الفونكشنز :] دائما ً تعود (return) على قيمه .. في المثال السابق القيمة تعود على None

وحتى لو ما ذكرنها بالكود !

## بالنسبة للأقواس لازم تكون موجودة بالكود ...

نأتي الآن إلى حاجه مهمة بالفونكشنز :] ما يسمى بـArguments من الحاجات الجميلة بالفونكشنز والسهلة وأيضا ً تعتبر

من الطرق التي تساعد بإختصار الوقت ... عن طريق Arguments تقوم بتعريف الفونكشن بإضافة تعليق منك ^

مثال :

كود:

IDLE 1.1.1
>>> def MyAdd(x, y):
"Add two values and return the sum."
return x + y

الكود واضح ...

قمنا بتعريف MyAdd اللي يقبل اثنين من Argument (x,y)a ولاحظ ان الفونكشن تعود على Arguments

بحيث يقوم بعملية الجمع ..

لاحظ التطبيق الفعلي لهذا المثال لتوضيح الفكره لديك :

كود:

IDLE 1.1.1
>>> def MyAdd(x, y):
"Add two values and return the sum."
return x + y

>>> MyAdd (3,5)
8
>>> MyAdd (25,25)
50
>>>

إن شالله وضحت الفكره .

طيب يخطر على بالك لو عملنا نفس العمل لكن بدال الأعداد أحرف ؟ هل يتم العمل بشكل صحيح ؟

الجواب : أكيد .. مع أننا وضعنا عندما كتبنا return وضعنا علامة (+) ! ؟ ... يعني البايثون يتم التعامل مع(+)سواء

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

كذلك ... لكن لاتنسى كلامنا بالأول .. لاحظ المثال .

على نفس المثال بالأعلى :

كود:

IDLE 1.1.1
>>> def MyAdd(x, y):
"Add two values and return the sum."
return x + y

>>> MyAdd (3,5)
8
>>> MyAdd (25,25)
50
>>> MyAdd ("Sa","mi")
'Sami'

نأتي لقسم آخر من الفونكشن وهو القيم الخاصة بالـ return والتعامل معاها ....

كما عرفنا بالأمثلة السابقة عمل الـreturn وأن الفونكشن لازم تعود على قيمه وجربنا طريقتين وهي الأولى التي لا تعود

على قيمه معينه وتكون قيمتها None *والمثال الآخر حددنا قيم محدده ليعود إليها ...

وأيضا ً بالبايثون تستطيع عمل ....

مثال :

كود:

IDLE 1.1.1
>>> def ReturnStuff():
return 10,20,30,40,50
>>> ReturnStuff()
(10, 20, 30, 40, 50)

الكود واضح وضعنا قيم تعود على الفونكشن اللي كتبناه .. الآن على نفس المثال لكن راح نضيف مجموعة متغيرات على

الفونكشن بحيث تعود هذه القيم على المتغيرات المحددة ...

كود:

>>> ahmad,bader,sami,saleh,faris=ReturnStuff()
>>> ahmad
10
>>> bader
20
>>> sami
30
>>> saleh
40
>>> faris
50

^_^ كل متغير يعود عليه فونكشن حسب الترتيب ...

لحد هنا ينتهي الدرس .. واتمنى ان اكون وفقت بطرحه ...


منقول للاستفادة

عبسي الحمديني
2012-07-24, 11:32 PM
شكــــــــلها لغة حلوة خوي اتحفنا مرة مرة بمواضيع زي هادي خلي انوسعوا المجال اشوية
مشكور عالمهم واصل عطائك

MAD_MAN
2012-07-25, 03:47 AM
بيثون لغة قوية جدا
وللمحترفين مجالها واسع جدا وقوية في اوامرها ومباشرة للسيرفر