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

لغة بايثون البرمجية شبيهة جداً بلغات Perl و C و وJava . ولكن لا يخلو الأمر من بعض الاختلافات الواضحة بين لغات البرمجة المختلفة.


برنامج بايثون الأول

لنقم بتنفيذ برامج باستخدام طرق مختلفة للبرمجة.

  • البرمجة بالطريقة التفاعلية

إن استدعاء المترجم دون تمرير الملف النصي كمعامل (بارامتر) سوف يؤدي إلى ظهور التوجيه التالي:

$ python

Python 2.4.3 (#1, Nov 11 2010, 13:34:43)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

اكتب النص التالي كتوجيه (تعليمة) بايثون واضغط Enter :

>>>print"Hello, Python!";

إذا قمت بتشغيل نسخة بايثون جديدة عليك باستخدام عبارة الطباعة مع أقوس كما في
print (“Hello, Python!”)
على أية حال فإنه في إصدار بايثون رقم 2.4.3 تكون النتيجة على الشكل التالي:

Hello,Python!
  • البرمجة بالطريقة النصية

عند استدعاء المترجم مع تمرير النص كمعامل (بارامتر) فإنه يبدأ بمعالجة النص ويتابع المعالجة إلى أن ينتهي النص كاملا. وعند انتهاء النص يتوقف المترجم.
لنقم بكتابة برنامج بايثون بسيط كنص. يرمز لملفات بايثون بالرمز .py قم بكتابة شيفرة المصدر التالية كملف اختبار py :

print"Hello, Python!";

بافتراض أنه لديك مترجم بايثون يستخدم المتغير (القيمة) PATH. قم بتشغيل هذا البرنامج على الشكل التالي:

$ python test.py

هذا سيؤدي إلى النتيجة التالية:

Hello, Python!

لنقم بتجربة طريقة أخرى لمعالجة نص بايثون. التالي هو ملف اختبار بايثون معدل:

#!/usr/bin/python print"Hello, Python!";

بافتراض أنه لديك مترجم بايثون يحتوي على دليل usr/bin حاول تشغيل هذا البرنامج كالتالي:

$ chmod+x test.py    # This is to make file executable$./test.py

هذا سيؤدي إلى النتيجة التالية:

Hello, Python!

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

معرف بايثون عبارة عن اسم يعرف المتغير, التابع, الفئة, الوحدة أو أي موضوع آخر.
يبدأ المعرف بحرف من أحرف الأبجدية A to Z أو a to z أو بتسطير سفلي (_) متبوع بصفر أو أحرف اكثر, خطوط (_) وأرقام (0 to 9).
لا يتم استخدام العلامات الترقيمية مثل @,$,% مع معرفات بايثون, فلغة البرمجة بايثون ذات حساسية عالية لذلك فإن Manpower و manpowerيعتبران معرفان مختلفان في لغة البرمجة بايثون.

اصطلاحات التسمية لمعرفات بايثون

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

الكلمات المحجوزة

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

Not exec And
or finally Assert
pass for Break
print from Class
raise global Continue
return if def
try import del
while in elif
with is else
yield lambda except

السطور وترك فراغات في بدايتها

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

ifTrue:
print"True"
else:
print"False"

لكن الكتلة التالية يمكن أن تولد خطأ

ifTrue:
print"Answer"
print"True"
else:
print"Answer"
print"False"

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

#!/usr/bin/python
 import sys 
try:
# open file stream 
file = open(file_name,"w")
exceptIOError:
print"There was an error writing to",file_name
sys.exit()
print"Enter '",file_finish,
print"' When finished"
whilefile_text!=file_finish:
file_text=raw_input("Enter text: ")
iffile_text==file_finish:
# close the file
file.close
breakfile.write(file_text)
file.write("\n")
file.close()
file_name=raw_input("Enter filename: ")
iflen(file_name)==0:
print"Next time please enter something"
sys.exit()
try: 
file = open(file_name,"r")
exceptIOError:
print"There was an error reading file"
sys.exit()
file_text=file.read()
file.close()
printfile_text 

البيانات متعددة السطور

تنتهي البيانات النموذجية بسطر جديد ولكن استخدام الخط المائل (/) يرمز إلى وجوب الابتداء بسطر جديد.مثال:

total=item_one+ \
item_two+ \
item_three

البيانات التي تحتوي على العلامات الترقيمية مثل [], {}, or () ليست بحاجة لاستخدام رمز البداية بسطر جديد (/).مثال:

days=['Monday','Tuesday','Wednesday','Thursday','Friday'

الاقتباس في Python

تتعامل لغة البرمجة Python مع إشارة الاقتباس المفردة (‘) والثنائية (“) والثلاثية (“‘) وغير ذلك من إشارات الاقتباس بهدف الإشارة إلى السلاسل الحرفية حيث إن الاقتباس يتضمن السلسلة الحرفية من بدايتها حتى نهايتها.
يستخدم الاقتباس الثلاثي لاحتواء السلسلة عبر عدة أسطر.
مثال:

word='word'
sentence="This is a sentence."
paragraph="""This is a paragraph. It is
made up of multiple lines and sentences."""

التعليقات في لغة Python

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

#!/usr/bin/python # First commentprint"Hello, Python!";# second comment

فتظهر النتيجة التالية:

Hello,Python!

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

name="Madisetti"# This is again comment

ويمكن كتابة العليق على أسطر عدة كالتالي:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

استخدام أسطر فارغة

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

انتظار المستخدم

يبين السطر التالي من البرنامج توجيهاً يتضمن “اضغط Enter للخروج” وينتظر المستخدم ليقوم بالفعل.

#!/usr/bin/python 
raw_input("\n\nPress the enter key to exit.")

تستخدم “\n\n” لإنشاء سطرين جديدين قبل السطر الفعلي وعندما يضغط المستخدم المفتاح ينتهي البرنامج وتعتبر خدعة جميلة لإبقاء النافذة مفتوحة حتى يتم المستخدم عمله على التطبيق.

بيانات متعددة على سطر واحد

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

import sys; 
x='foo';
sys.stdout.write(x+'\n')

مجموعات البيانات المتعددة على شكل فروع

يعرف الفرع بأنه مجموعة من البيانات المنفردة والتي تشكل كتلة رموز مفردة.
تتطلب البيانات المركبة أو المعقدة مثل if, while, def, class سطر رئيسي وفرع.
تمثل الأسطر الرئيسية بداية البيانات وذلك بكلمة رئيسية من كلمات Python وتنتهي بنقطتين (:) وتتبع بسطر او أكثر والتي تمثل الفرع.
مثال:

if expression:   
suite
elif 
expression:   
suite
else:
suite

سطر الأوامر

يمكن تشغيل الكثير من البرامج للحصول على معلومات رئيسية عن كيفية تشغيلها وهذه إحدى مميزات لغة البرمجة Python باستخدام -h-

$ python-h
usage: python[option]...[-c cmd|-m mod| file|-][arg]...
Optionsand arguments(and corresponding environment variables):
-c cmd: program passedinasstring(terminates option list)
-d: debug outputfrom parser(also PYTHONDEBUG=x)
-E: ignore environment variables(suchas PYTHONPATH)
-h:printthis help messageandexit [ etc.]

يمكن برمجة النص الخاص بك بطريقة تتيح قبول خيارات متعددة.