الفرق بين المراجعتين لصفحة: «Python/interpreter»

من موسوعة حسوب
أنشأ الصفحة ب'== تشغيل المفسر == عادة ما يُنصَّب مفسِّر بايثون في المسار <code>‎/usr/local/bin/python3.6</code>، ويؤدّي وضع ه...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:مفسر بايثون}}</noinclude>
== تشغيل المفسر ==
== تشغيل المفسر ==
عادة ما يُنصَّب مفسِّر بايثون في المسار <code>‎/usr/local/bin/python3.6</code>، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell">
عادة ما يُنصَّب مفسِّر بايثون في المسار <code>‎/usr/local/bin/python3.6</code>، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:<syntaxhighlight lang="shell">

مراجعة 22:08، 10 مارس 2018

تشغيل المفسر

عادة ما يُنصَّب مفسِّر بايثون في المسار ‎/usr/local/bin/python3.6، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة:

python3.6

ملاحظة:

في أنظمة يونكس، لا يستخدم الاسم python افتراضيًا لاستدعاء مفسّر بايثون في الإصدارات ‎3.x‎ من اللغة، وذلك لتجنّب حدوث أي تضارب مع مفسّر الإصدارات ‎2.x من اللغة.

يمكن تحديد مسار مفسِّر بايثون أثناء عملية التثبيت، وعادة ما يُستخدم المسار التالي: ‎/usr/local/python كمسار بديل.

عادة ما يجري تنصيب بايثون في أنظمة ويندوز في المسار ‎C:\Python36 ولكن يمكن تغييره أثناء عملية التنصيب. ولإضافة هذا المجلد إلى مسار النظام، يمكن كتابة الأمر التالي في سطر الأوامر:

set path=%path%;C:\python36

للخروج من المفسّر يمكن كتابة محرف نهاية الملف (end-of-file character) وذلك عن طريق الضغط على المفاتيح Control-D في أنظمة Unix أو Control-Z في نظام Windows. وإن لم تنجح هذه الطريقة يمكن الخروج من المفسّر عن طريقة كتابة الأمر ‎quit()‎.

يمتلك مفسّر بايثون بعض الخصائص التحريرية مثل التحرير التفاعلي، والاستبدال باستخدام المعلومات السابقة (history substitution) واستكمال الشيفرة في الأنظمة التي تدعم مكتبة readline. وأسرع طريقة للتحقّق من توفّر خاصية التحرير في سطر الأوامر هي بالضغط على المفتاحين Ctrl+P  في أول سطر من المفسر، فإن أصدر جهازك صوتًا فهذا يعني أنّ خاصية التحرير في سطر الأوامر مفعّلة، (راجع ملحق التحرير التفاعلي للمدخلات، واستبدال المعلومات السابقة للاطلاع على قائمة بالمفاتيح المتاحة) أما إن لم يحدث شيء عند الضغط على Ctrl+P أو ظهر الرمز ‎^P فهذا يعني أنّ خاصية التحرير في سطر الأوامر ليست متاحة، ولن يكون بوسعك حينئذٍ إلا أن تستخدم مفتاح backspace لحذف الحروف من السطر الحالي.

يشبه المفسِّر في عمله صدفة يونكس (Unix shell)، فعند استدعائه مع مدخلات اعتيادية فإنّه يقرأ الأوامر وينفّذها بصورة تفاعلية، وعند استدعائه مع اسم ملف كمعامل أو مع ملف كمدخل اعتيادي، فإنّه يقرأ الشيفرة الموجودة في ذلك الملف وينفّذها من فوره.

هناك طريقة أخرى لتشغيل المفسِّر وهي بكتابة الأمر:

python -c command [arg] ...

والذي ينفّذ العبارة/العبارات في command بصورة مشابهة للخيار ‎-c في صدفة يونكس. ولمّا كانت عبارات بايثون تتضمن في الغالب مسافات بيضاء وحروفًا تعتبرها الصدفة حروفًا خاصّة، ينصح عادة بإحاطة العبارات بعلامات اقتباس مفردة. تكون بعض وحدات بايثون مفيدة كما هو الحال مع الشيفرات، ويمكن تنفيذ هذه الوحدات باستخدام الأمر:

python -m module [arg] ...

والذي ينفّذ الملف المصدر التابع للوحدة وكأنّه قد استدعي عن طريق كتابة اسمه الكامل في سطر الأوامر.

من المفيد في بعض الأحيان -وخصوصًا عند استخدام ملفات الشيفرة- الولوج إلى الوضع التفاعلي بعد تنفيذ الشيفرة مباشرة، ويمكن القيام بذلك عن طريق إضافة الخيار ‎-i قبل اسم الشيفرة.

تمرير المعاملات

يحوّل المفسِّر اسم الشيفرة والمعاملات الإضافية -بعد التعرف عليها- إلى قائمة من السلاسل النصية ويسندها إلى المتغير argv ضمن الوحدة sys. يمكن الوصول إلى هذه القائمة عن طريق تنفيذ الشيفرة:

import sys

تضمّ هذه القائمة عنصرًا واحدًا على الأقل، وذلك عند غياب الشيفرة والمعاملات، ويكون ‎sys.argv[0]‎ سلسلةً نصّية فارغة. عندما يكون اسم الشيفرة الممرّرة هو '-' (أي مدخلات سطر الأوامر) فيأخذ العنصر sys.argv[0]‎ القيمة '-'. وعند استخدام ‎-c command يأخذ العنصر القيمة '‎-c' وعند استخدام ‎-m module يأخذ العنصر sys.argv[0]‎ الاسم الكامل للوحدة المستخدمة.

لا يتعامل مفسّر بايثون مع الوسائط الأخرى التي تأتي بعد ‎-c command أو ‎-m module ولكنّها تترك في المتغير sys.argv لتُعالج بواسطة الأمر أو الوحدة.

الوضع التفاعلي Interactive mode

يكون مفسّر بايثون في الوضع التفاعلي عندما يقرأ الأوامر من الطرفية، وفي هذا الوضع يطلب المفسِّر الأمر التالي باستخدام المحث (prompt) الرئيسي والذي يكون عادة ثلاث علامات (أكبر من) متتالية (<<<)، ويستخدم المفسِّر المحث الثانوي للأسطر المتمّمة للشيفرة وهو عبارة عن ثلاث نقاط (...).

يطبع المفسّر عند الولوج إليه رسالة ترحيبية قبل طباعة المحثّ الأول، وتتضمن هذه الرسالة رقم الإصدار ومعلومات حقوق الملكية، وكما هو موضّح في المثال التالي:

$ python3.6
Python 3.6 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

تستخدم الأسطر المتمّمة عند إدخال بنى تتكوّن من أسطر متعددة، مثل عبارة if التالية:

>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!

للاطلاع على الوضع التفاعلي بصورة أكبر راجع الوضع التفاعلي.

المفسّر وبيئته الخاصة

ترميز الشيفرة المصدرية

تُعامل الملفات المصدرية في بايثون على أنّها مرمّزة بالترميز UTF-8، وبهذا يمكن استخدام الحروف التابعة لمعظم اللغات العالمية في الوقت نفسه ضمن السلاسل النصية والمعرّفات والتعليقات، ولكن المكتبة القياسية تستخدم الترميز ASCII للمعرفات، وهو أمر متّفق عليه في الشيفرات المحمولة (portable). ولعرض جميع المحارف بصورة صحيحة يجب أن يتعرّف محرر النصوص على ترميز الملف ويجب استخدام خطّ يدعم جميع المحارف الموجودة في الملف.

يمكن تغيير الترميز الافتراضي للملف وذلك من خلال التصريح عن الترميز المطلوب على هيئة تعليق خاص يوضع في بداية الملف، ويكون بالصيغة التالية:

# -*- coding: encoding -*-

وتعني encoding هنا الترميزات المدعومة من قبل بايثون. على سبيل المثال، في حال الرغبة باستخدام الترميز Windows-1252، يجب أن يكون السطر الأول في الشيفرة المصدرية كالآتي:

# -*- coding: cp-1252 -*-

يجب التصريح عن الترميز المطلوب في السطر الأول من الملف حصرًا، باستثناء الشيفرات المصدرية التي تبدأ بسطر "shebang" الخاص بأنظمة UNIX. في هذه الحالة يجب أن يكون التصريح عن الترميز المطلوب في السطر الثاني من الملف. فمثلًا:

#!/usr/bin/env python3
# -*- coding: cp-1252 -*-

مصادر