القائمة الرئيسية

الصفحات

تعلم لغة بايثون

Pythonنظرة عامة على لغة بايثون

هل أنا جاهز لتعلم لغة بايثون ؟

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

تعلم الخوارزميات »


نصيحة

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

ما هي لغة بايثون ؟

Python تكتب بايثون باللغة العربية و هي لغة برمجة عالية المستوى إبتكرها Guido Van Rossum أثناء عمله في مركز أبحاث Centrum Wiskunde & Informatica عام 1986.

عام 1991 تم نشر أول إصدار منها لتصبح في متناول الجميع.

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

بايثون تعمل على جميع و أهم أنظمة التشغيل مثل Windows, Mac OS, Linux, Unix إلخ.. و تعتبر من أشهر لغات البرمجة على الإطلاق.

شعار لغة بايثون:

مميزات لغة بايثون بالنسبة للمطورين

  1. لها شعبية هائلة و هناك الكثير من المراجع لمن يريد تعلمها.

  2. بسيطة و تعلمها سهل جداً مقارنةً مع غيرها من اللغات.

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

  4. في وقتنا الحالي, تعتبر من أكثر اللغات طلباً في سوق العمل, أي إذا كنت تريد دخول سوق العمل فلغة بايثون توفر لك الكثير من الفرص.

  5. إحدى أهم اللغات التي يستخدمها المهمتين بمجال أمن المعلومات و الهاكرز.

مميزات لغة بايثون عن باقي لغات البرمجة

  1. مادياً
    لن تدفع أي مبلغ لتعمل على لغة بايثون, فهي مصدر مفتوح و مجانية و ستبقى مجانية مدى الحياة.


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


  3. سهولة القراءة و التعديل
    تعلمها سهل جداً و يمكن قراءة و تعديل الكود المكتوب فيها بسهولة.


  4. العمل على أكثر من منصة
    البرنامج الذي تبنيه بواسطة لغة بايثون يعمل على كما على أهم أنظمة التشغيل مثل Windows, Mac OS, Linux, Unix.


  5. كائينة التوجه
    تدعم مفهوم الكلاس, الكائن, التغليف, الوراثة إلخ..


  6. تعدد المهام
    بايثون توفر لك تقنية الـ Multithreading و التي تسمح لك بجعل برنامجك قادراً على تنفيذ عدة أوامر مع بعض و بنفس الوقت.


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


  8. واجهة المستخدم
    يمكن بناء تطبيقات فيها واجهة مستخدم فيها.


  9. التعامل مع لغات برمجة أخرى
    يمكنك التعامل مع لغات برمجة أخرى ( مثل C, C++, Java ) ضمن برنامجك المكتوب في الأساس بلغة بايثون.


  10. تعامل لغات البرمجة الأخرى مع لغة بايثون
    أغلب لغات البرمجة تدعم التعامل مع لغة بايثون, أي أنهم يتيحون لك إستخدام كود مكتوب بلغة بايثون في برامج مكتوبة في الأساس بلغات برمجة أخرى ( مثل C, C++, Java ).


  11. المناهج التعليمية
    العديد من المعاهد و الجامعات سواء كانت أجنبية أو عربية أصبحت تدرسها للطلاب.


لمن تم إعداد هذا المرجع؟

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

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

Pythonأسلوب كتابة الكود في بايثون

مبادئ كتابة الكود في بايثون

في البداية عليك معرفة أن كل ما ستتعلمه في هذا الدرس عبارة عن شرح نظري لأساليب كتابة الكود.
إذاَ في هذا الدرس ستتعلم كيف تكتب كود بايثون بشكل صحيح يفهمه الكمبيوتر و يفهمه أي شخص يحاول قراءة الكود الذي ستقوم أنت بكتابته مستقبلاً عند بناء تطبيقاتك الخاصة.


Case Sensitivity

Case Sensitivity تعني أن لغة البرمجة تميز بين الأحرف الكبيرة و الأحرف الصغيرة.

بايثون تعامل الأسماء التي نستخدمها بتأني سواء كنا نضع هذه الأسماء للمتغيرات, الدوال, الكلاسات, الكائنات إلخ.
مثال: note و Note ليسوا شيئاً واحداً.

بينما في لغات برمجة أخرى مثل HTML لا يهم إذا كانت الأحرف كبيرة أو صغيرة.
مثال: note و Note و NoTe و NOTE هم شيئاً واحداً.



إسم الكلاس

دائماً إبدأ إسم الكلاس بحرف كبير و في حال كان إسم الكلاس يتألف من أكثر من كلمة, إجعل أول حرف من كل كلمة كبيراً.

أمثلة

في حال كان إسم الكلاس يتألف من كلمة واحدة.

class First:
		

في حال كان إسم الكلاس يتألف من أكثر من كلمة.

class FirstPythonClass:
		


إسم المتغير

إستخدم الأحرف الصغيرة عند وضع أسماء للمتغيرات و في حال كان إسم المتغير يتألف من أكثر من كلمة قم بوضع _ بين كل كلمتين.

أمثلة

في حال كان إسم المتغير يتألف من كلمة واحدة.

average = 10
		

في حال كان إسم المتغير يتألف من أكثر من كلمة.

total_score = 20
		


إسم الدالة

إستخدم الأحرف الصغيرة عند وضع أسماء للدوال و في حال كان إسم الدالة يتألف من أكثر من كلمة قم بوضع _ بين كل كلمتين.

أمثلة

في حال كان إسم الدالة يتألف من كلمة واحدة.

def display():
		

في حال كان إسم الدالة يتألف من أكثر من كلمة.

def display_user_info():
		


التعليقات

نستخدم التعليقات لنضع ملاحظات حول الكود الذي كتبناه فقط لكي لا ننسى كيف برمجنا الكود في حال أردنا مراجعته أو التعديل عليه بعد وقت طويل.
التعليقات لا تؤثر إطلاقاً على الكود المكتوب الموضوع في البرنامج و يمكن وضع عدد غير محدود من التعليقات.

لتضع تعليق, ضع الرمز # ثم أكتب بعده ما شئت.

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

مثال

#     هذا تعليق يتألف من سطر واحد و هو لا يؤثر أبداً على الكود الموضوع
#  هذا تعليق آخر.. كما تلاحظ, يمكنك وضع العدد الذي تريده من التعليقات
		

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



كتابة أكثر من أمر واحد على نفس السطر

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

مثال

هنا قمنا بوضع ثلاث أوامر على سطر واحد. فعلياً, كل أمر هنا عبارة عن تعريف متغير و إعطائه قيمة.

x = 1; y = 2; z = 3
		


كتابة أمر واحد على أكثر من سطر

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

المثال الأول

Test.py
# هنا قمنا بتعريف ثلاث متغيرات
item_1 = 10
item_2 = 20
item_3 = 30

# الثلاث أسطر التالية عبارة عن أمر واحد
# total و وضع الناتج في المتغير item_3 و item_2 و item_1 إذا هنا سيتم جمع قيم المتغيرات
total = item_1 + \
        item_2 + \
        item_3

# total هنا قمنا بعرض قيمة المتغير
print("total contains:", total)
		

سنحصل على النتيجة التالية عند التشغيل.

total contains: 60

ملاحظة: الجمل التي تحتوي على الرموز [] أو () أو {} يمكن كتابتها مباشرةً على عدة أسطر. أي لا تحتاج \ في نهاية كل سطر.

المثال الثاني

هنا قمنا بتعريف مصفوفة من النصوص.

Test.py
# الأربعة أسطر التالية عبارة عن أمر واحد
seasons = ['Autumn',
           'Winter',
           'Spring',
           'Summer']

# seasons هنا قمنا بعرض القيم المخزنة في المصفوفة
print("Seasons contains:", seasons)
		

سنحصل على النتيجة التالية عند التشغيل.

Seasons contains: ['Autumn', 'Winter', 'Spring', 'Summer']

الأحرف المستخدمة في وضع الأسماء في بايثون

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


قواعد إلزامية عند إعطاء الأسماء

  1. الـ Identifiers يجب أن يبدأوا بحرف كبير بين A-Z أو حرف صغير بين a-z أو الشحطة _.

  2. يمنع إستخدام أي كلمة من الكلمات المحجوزة ( Keywords ).

  3. لا تنسى أن بايثون تطبق مبدأ الـ Case Sensitive.


ركز على أول حرف فقط

أمثلة للأسماء التي يسمح باستخدامها: Harmash , name , _number

أمثلة للأسماء التي يمنع استخدامها: 1st , -cash , @user

الكلمات المحجوزة في بايثون

جميع الكلمات التالية محجوزة للغة بايثون, أي لا يمكن إستخدامها كـ Identifiers.

and
assert
break
class
continue
def
del
elif
else
except
exec
False
finally
for
from
global
if
import
in
is
lambda
None
nonlocal
not
or
pass
print
raise
return
True
try
while
with
yield

قواعد ترتيب الكود في بايثون

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

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

  • إستخدم 4 مسافات فارغة Space عند وضع الكود بشكل متداخل.

  • ضع سطر فارغ على الأقل بين السطر الذي تم فيه تعريف الكلاس و الدوال المعرفة بداخله.

  • ضع سطر فارغ على الأقل بين كل دالتين.

  • ضع سطر فارغ بين كل إثنين بلوك تضيفهما بداخل الدوال.

  • ضع مسافة فارغة حول جمل التحكم و جمل الشرط.

  • عند وضع التعليقات يفضل إستخدام الرمز # في بداية كل سطر حتى و إن كان التعليق يتألف من عدة أسطر.

  • عدد الأحرف القصوى التي يمكن وضعها في كل سطر هو 79 حرف.


مصطلحات تقنية

  • بلوك: عبارة عن مجموعة أوامر متسلسلة منطقياً و موضوعة في مكان محدد و لا يوجد بينها أسطر فارغة.

  • Indentations: عبارة عن المسافات الفارغة التي يتم إضافتها لترتيب و تنسيق كل بلوك يتم إضافته.

حل مشكلة إستخدام زر الـ TAB في بايثون

برنامج الـ PyCharm يتيح لك إمكانية إستخدام زر الـ TAB لإضافة 4 مسافات فارغة دفعة واحدة و بدون مشاكل بشرط ضبط ذلك يدوياً.

لجعل زر الـ TAB يضيف 4 مسافات فارغة عند النقر عليه بدل إضافة مسافة كبيرة في برنامج PyCharm, قم باتباع الخطوات التالية:

  1. أنقر على S + Alt + Ctrl لتفتح صفحة الضبط.

  2. أنقر على Code Style ثم Python ثم تأكد من اختيار نفس الخصائص التي في الصورة.

enable tab in pycharm

تحويل كل TAB موجودة في ملف البايثون إلى 4 مسافات فارغة

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

برنامج الـ PyCharm يتيح لك إمكانية تحويل كل TAB موجودة في الكود إلى 4 مسافات فارغة دفعة واحدة و بدون مشاكل بشرط ضبط ذلك يدوياً.

لجعل كل TAB تتحول إلى 4 مسافات فارغة في برنامج PyCharm, قم باتباع الخطوات التالية:

convert indents to spaces in pycharm

أمثلة حول طريقة كتابة الكود في بايثون

الهدف من المثال التالي إظهار كيف يجب ترتيب كود البايثون و ليس معرفة طريقة عمله.

المثال الأول

Test.py
# قيمته 14 note هنا قمنا بتعريف متغير إسمه
note = 14
 
# أكبر أو تساوي 10 سيتم تنفيذ أمر الطباعة الموضوع بداخلها note هنا وضعنا شرط يعني أنه إذا كانت قيمة المتغير
if note >= 10:
    print("Congratulations.. you passed the test!")
 
# أكبر أو تساوي 10 سيتم تنفيذ أمر الطباعة الموضوع بداخلها note هنا لنا أنه إذا لم تكن قيمة المتغير
else:
    print("Sorry.. you failed the test!")
		

سنحصل على النتيجة التالية عند التشغيل.

Congratulations.. you passed the test!

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

المثال الثاني

Test.py
# Test هنا قمنا بتعريف كلاس إسمه
class Test:
 
    # قيمته 14 note هنا قمنا بتعريف متغير إسمه
    note = 14
 
    # أكبر أو تساوي 10 سيتم تنفيذ أمر الطباعة الموضوع بداخلها note هنا وضعنا شرط يعني أنه إذا كانت قيمة المتغير
    if note >= 10:
        print("Congratulations.. you passed the test!")
 
    # أكبر أو تساوي 10 سيتم تنفيذ أمر الطباعة الموضوع بداخلها note هنا كأننا قلنا أنه إذا لم تكن قيمة المتغير
    else:
        print("Sorry.. you failed the test!")
		

سنحصل على النتيجة التالية عند التشغيل.

Congratulations.. you passed the test!