لغة بايثون البرمجية شبيهة جداً بلغات 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 تكون النتيجة على الشكل التالي:
print (“Hello, Python!”)
على أية حال فإنه في إصدار بايثون رقم 2.4.3 تكون النتيجة على الشكل التالي:
Hello,Python!
- البرمجة بالطريقة النصية
عند استدعاء المترجم مع تمرير النص كمعامل (بارامتر) فإنه يبدأ بمعالجة النص ويتابع المعالجة إلى أن ينتهي النص كاملا. وعند انتهاء النص يتوقف المترجم.
لنقم بكتابة برنامج بايثون بسيط كنص. يرمز لملفات بايثون بالرمز .py قم بكتابة شيفرة المصدر التالية كملف اختبار pyy :
لنقم بكتابة برنامج بايثون بسيط كنص. يرمز لملفات بايثون بالرمز .py قم بكتابة شيفرة المصدر التالية كملف اختبار pyy :
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يعتبران معرفان مختلفان في لغة البرمجة بايثون.
يبدأ المعرف بحرف من أحرف الأبجدية A to Z أو a to z أو بتسطير سفلي (_) متبوع بصفر أو أحرف اكثر, خطوط (_) وأرقام (0 to 9).
لا يتم استخدام العلامات الترقيمية مثل @,$,% مع معرفات بايثون, فلغة البرمجة بايثون ذات حساسية عالية لذلك فإن Manpower و manpowerيعتبران معرفان مختلفان في لغة البرمجة بايثون.
اصطلاحات التسمية لمعرفات بايثون
- تبدأ أسماء الفئات بحرف كبير بينما تبدأ المعرفات الأخرى جميعها بحرف صغير.
- عند ابتداء المعرف بتسطير سفلي واحد فإن ذلك يشير إلى أنه معرف خاص.
- عند ابتداء المعرف بتسطيرين سفليين فإن ذلك يشير إلى أنه معرف خاص جدا.
- عند انتهاء المعرف بتسطيرين سفليين فإن ذلك يشير إلى أن المعرف اسم خاص معرف في اللغة.
الكلمات المحجوزة
تبين القائمة التالية الكلمات الرئيسية في لغة البرمجة Python. هذه الكلمات تعتبر كلمات محجوزة حيث لايمكن استخدامها كثابت أو متحول أو كأي أسماء معرفات أخرى. جميع كلمات لغة Python تحوي حروف صغيرة فقط.
Not | exec | And |
or | finally | Assert |
pass | for | Break |
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, 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.]
يمكن برمجة النص الخاص بك بطريقة تتيح قبول خيارات متعددة.