كيفية العمل مع وحدة تحكم Python التفاعلية

المقدمة

توفر واجهة تفاعلية للغة Python (تُسمى أيضًا مفسر Python أو قذيفة Python) للمبرمجين طريقة سريعة لتنفيذ الأوامر وتجربة الشفرة أو اختبارها دون إنشاء ملف.

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

ستغطي هذه الدورة التعليمية كيفية العمل مع واجهة تفاعلية لغة Python واستغلالها كأداة برمجية.

المتطلبات المسبقة

يجب أن يكون لديك Python 3 مثبتًا وبيئة برمجية مُعدة على جهاز الكمبيوتر أو الخادم الخاص بك. إذا لم يكن لديك بيئة برمجية مُعدة، يمكنك الرجوع إلى دليل التثبيت والإعداد لـ بيئة برمجية محلية أو لـ بيئة برمجية على خادمك المناسبة لنظام التشغيل الخاص بك (أوبونتو، CentOS، ديبيان، إلخ).

دخول واجهة التحكم التفاعلية

يمكن الوصول إلى واجهة التحكم التفاعلية في Python من أي جهاز كمبيوتر محلي أو خادم يحتوي على Python مثبت.

الأمر الذي ستستخدمه للدخول إلى واجهة التحكم التفاعلية في إصدار Python الافتراضي الخاص بك هو:

  1. python3

إذا كنت تستخدم بيئة Python الافتراضية المحلية، ستدخل إلى الإصدار الافتراضي من Python باستخدام:

  1. python

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

  1. cd environments
  2. . my_env/bin/activate

ثم كتابة الأمر python:

  1. python

في هذه الحالة، الإصدار الافتراضي لـ Python هو Python 3.8.10، الذي يتم عرضه في الإخراج بمجرد إدخال الأمر، جنبًا إلى جنب مع إشعار حقوق النشر ذات الصلة وبعض الأوامر التي يمكنك كتابتها للحصول على معلومات إضافية:

Output
Python 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

الرمز الأساسي للأمر التالي هو ثلاث علامات أكبر من (>>>):

يمكنك استهداف إصدارات محددة من Python عن طريق إلحاق رقم الإصدار بالأمر الخاص بك، دون مسافات:

ملاحظة: اعتبارًا من يناير 2020، تم إيقاف دعم Python 2 ولن يتم إجراء تحسينات أخرى عليه. لمزيد من المعلومات، راجع [إيقاف Python 2] (https://www.python.org/doc/sunset-python-2/)

  1. python2.7
Output
Python 2.7.18 (default, Mar 8 2021, 13:02:45) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>

هنا، تلقينا الإخراج الذي سيتم استخدام Python 2.7.18. إذا كانت هذه هي النسخة الافتراضية لدينا من Python 2، يمكننا أيضًا الدخول إلى هذه الوحدة التفاعلية بالأمر python2.

بدلاً من ذلك، يمكننا استدعاء الإصدار الافتراضي لـ Python 3 بالأمر التالي:

  1. python3
Output
Python 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

كما يمكننا أيضًا استدعاء الوحدة التفاعلية أعلاه بالأمر python3.8.

مع تشغيل وحدة التفاعلية لـ Python، يمكننا المضي قدمًا في العمل مع بيئة الشل الخاصة بـ Python.

العمل مع وحدة التفاعلية لـ Python

محلل Python التفاعلي يقبل بناء Python، والذي تضعه بعد البادئة >>>.

يمكننا، على سبيل المثال، تعيين قيم لـ المتغيرات:

  1. birth_year = 1868

بمجرد أن نقوم بتعيين القيمة الصحيحة لـ 1868 للمتغير birth_year، سنضغط على العودة ونتلقى سطرًا جديدًا مع ثلاثة علامات أكبر كبادئة:

  1. birth_year = 1868

يمكننا متابعة تعيين المتغيرات ثم إجراء عمليات حسابية باستخدام المشغلات للحصول على الحسابات المرتجعة:

>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>> 

كما نفعل مع سكريبت في ملف، قمنا بتعيين متغيرات، ثم طرحنا قيمة متغير من الآخر، وطلبنا من الوحدة النمطية للطباعة في وحدة التحكم طباعة المتغير الذي يمثل الفارق.

تمامًا كما هو الحال في أي شكل من أشكال لغة Python، يمكنك أيضًا استخدام وحدة التحكم التفاعلية كآلة حاسبة:

>>> 203 / 20
10.15
>>> 

هنا، قسمنا العدد الصحيح 203 على 20 وعاد الناتج 10.15.

عدة أسطر

عند كتابة كود Python الذي سيغطي عدة أسطر، ستستخدم المترجم الفوري للأسطر المستمرة الترويج الثانوي للأسطر، وهي ثلاث نقاط (...).

للخروج من هذه الأسطر المستمرة، ستحتاج إلى الضغط على ENTER مرتين.

يمكننا رؤية كيفية ذلك في الكود التالي الذي يعين متغيرين ثم يستخدم بيان شرطي لتحديد ما يجب طباعته في وحدة التحكم:

>>> sammy = 'Sammy'
>>> shark = 'Shark'
>>> if len(sammy) > len(shark):
...     print('Sammy codes in Java.')
... else:
...     print('Sammy codes in Python.')
... 
Sammy codes in Python.
>>> 

في هذه الحالة، تكون أطوال السلسلتين متساويتين، لذا يتم طباعة بيان else.
لاحظ أنه يجب عليك الالتزام بتقديم Python بأربعة مسافات بيضاء، خلاف ذلك ستتلقى خطأ:

>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
  File "<stdin>", line 2
    print('Sammy codes in Java.')
        ^
IndentationError: expected an indented block
>>> 

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

استيراد الوحدات

يوفر مفسر Python طريقة سريعة للتحقق مما إذا كانت الوحدات متوفرة في بيئة برمجة معينة. يمكنك القيام بذلك باستخدام تعليمة import:

>>> import matplotlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'matplotlib'

في الحالة أعلاه، لم تكن الوحدة matplotlib متاحة في البيئة البرمجية الحالية.

لتثبيتها، سنحتاج إلى مغادرة المفسر التفاعلي والتثبيت باستخدام pip كالمعتاد:

  1. pip install matplotlib
Output
Collecting matplotlib Downloading matplotlib-3.4.3-cp38-cp38-manylinux1_x86_64.whl (10.3 MB) ... Installing collected packages: numpy, python-dateutil, kiwisolver, pillow, pyparsing, cycler, matplotlib Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.3 numpy-1.21.2 pillow-8.3.1 pyparsing-2.4.7 python-dateutil-2.8.2

بمجرد تثبيت وحدة matplotlib بالإضافة إلى تبعياتها بنجاح، يمكنك العودة إلى المفسر التفاعلي:

  1. python
  1. import matplotlib

في هذه النقطة، لن تتلقى رسالة خطأ ويمكنك استخدام الوحدة المثبتة سواء داخل القشرة أو داخل ملف.

مغادرة وحدة التحكم التفاعلية لـ Python

هناك طريقتان رئيسيتان لمغادرة وحدة التحكم التفاعلية لـ Python، إما باستخدام اختصار لوحة المفاتيح أو وظيفة Python.

اختصار لوحة المفاتيح CTRL + D في أنظمة مشتقة من *nix أو CTRL + Z ثم مفتاح CTRL في أنظمة Windows سيقاطع وحدة التحكم الخاصة بك ويُعيدك إلى بيئة الطرفية الأصلية:

...
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>> 
sammy@ubuntu:~/environments$ 

بديلاً، فإن وظيفة Python quit() ستقوم بإغلاق وحدة التحكم التفاعلية وأيضًا تعيدك إلى بيئة الطرفية الأصلية التي كنت فيها سابقًا:

>>> octopus = 'Ollie'
>>> quit()
sammy@PythonUbuntu:~/environments$ 

عند استخدام وظيفة quit()، ستظهر في ملف تاريخك، ولكن اختصار لوحة المفاتيح CTRL + D لن يتم تسجيله:

File: /home/sammy/.python_history
...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()

يمكن إغلاق مترجم Python بأي من الطريقتين، اعتمادًا على ما يلائم سير عملك واحتياجات تاريخك.

الوصول إلى التاريخ

أحد الأشياء المفيدة حول وحدة التحكم التفاعلية Python هو أن جميع الأوامر الخاصة بك تُسجل في ملف .python_history في أنظمة مشتقة من *nix، والذي يمكنك النظر إليه في محرر نصوص مثل nano، على سبيل المثال:

  1. nano ~/.python_history

بمجرد فتحه باستخدام محرر نصوص، سيبدو ملف تاريخ Python الخاص بك مثل هذا، مع تاريخ أوامر Python الخاصة بك:

File: /home/sammy/.python_history
import pygame
quit()
if 10 > 5:
    print("hello, world")
else:
    print("nope")
sammy = 'Sammy'
shark = 'Shark'
...

عندما تنتهي من ملفك، يمكنك الضغط على CTRL + X للخروج من nano.

من خلال تتبع جميع تاريخ Python الخاص بك، يمكنك العودة إلى الأوامر والتجارب السابقة، ونسخها ولصقها أو تعديل تلك الشفرة للاستخدام في ملفات برمجة Python أو في دفتر ملاحظات Jupyter.

استنتاج

توفر واجهة تفاعلية لـ Python مساحة لتجربة الشفرة البرمجية Python. يمكنك استخدامها كأداة للاختبار وتطوير المنطق، وأكثر من ذلك.

للاستخدام في تصحيح ملفات برمجة Python، يمكنك استخدام وحدة البرنامج النصي Python code لفتح مفسر تفاعلي داخل ملف، يمكنك قراءة المزيد عنه في دليلنا كيفية تصحيح Python باستخدام واجهة تفاعلية.

Source:
https://www.digitalocean.com/community/tutorials/how-to-work-with-the-python-interactive-console