Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

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

  • مبادئ كتابة الكود في بايثون
  • الأحرف المستخدمة في وضع الأسماء في بايثون
  • الكلمات المحجوزة في بايثون
  • قواعد ترتيب الكود في بايثون
  • حل مشكلة إستخدام الزر TAB في بايثون
  • تحويل كل TAB موجودة في ملف البايثون إلى 4 مسافات فارغة
  • أمثلة حول طريقة كتابة الكود في بايثون

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

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


حساسية الأحرف

بايثون تطبق مفهوم حساسية الأحرف ( Case Sensitivity ) و هذا يعني أنها تميز بين الأحرف الكبيرة و الأحرف الصغيرة.

مثال: note و Note ليسوا شيئاً واحداً.


إسم المتغير

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

أمثلة

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

average = 10
average = 10

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

total_score = 20
total_score = 20

إسم الدالة

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

أمثلة

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

def display():
def display():

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

def display_user_info():
def display_user_info():

إسم الكلاس

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

أمثلة

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

class First:
class First:

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

class FirstPythonClass:
class FirstPythonClass:

التعليقات

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

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

مثال

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

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


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

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

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

مثال

x = 1; y = 2; z = 3
x = 1; y = 2; z = 3

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

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

في المثال التالي قمنا بكتابة الأمر الذي يقضي بإعطاء قيمة للمتغير total على ثلاث أسطر.

المثال الأول

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)
# هنا قمنا بتعريف ثلاث متغيرات 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 = ['Autumn', 'Winter', 'Spring', 'Summer'] # seasons هنا قمنا بعرض القيم المخزنة في المصفوفة print("Seasons contains:", seasons)

النتيجة

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

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

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

في حال قمت بتعريف شيء جديد و كنت بالفعل قد استخدمت الإسم نفسه في تعريف شيء آخر، فإن الشيء الجديد سيحل مكان الشيء القديم الذي تم تعريفه بنفس الإسم. لا تقلق حول هذه الفكرة فهي ستمر معك لاحقاً بشكل موسّع.


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

  1. يجب أن يبدأ الإسم بحرف كبير بين A-Z أو حرف صغير بين a-z أو الشحطة _.
  2. يمنع إستخدام أي كلمة من الكلمات المحجوزة ( Keywords ).
  3. يمنع استخدام القيم الموجودة في بايثون ( Literals ) كأسماء، أي يمنع استخدام القيمة True و القيمة False.

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

  • أمثلة للأسماء التي يسمح باستخدامها: Harmash , name , _number
  • أمثلة للأسماء التي يمنع استخدامها: 1st , -cash , @user

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

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

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 ثم تأكد من اختيار نفس الخصائص التي في الصورة.

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

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

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


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

Convert Idents 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!")
# قيمته 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!")
# 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!