بايثون (لغة برمجة)

بايثون(بالإنجليزية:Python)‏ هيلغة برمجة،عالية المستوىسهلة التعلممفتوحة المصدرقابلة للتوسيع، تعتمد أسلوبالبرمجة الكائنية. لغة بايثون هيلغة مُفسَّرة،ومُتعدِدة الاستخدامات، وتستخدم استخدامًا واسعًا في العديد من المجالات، كبناء البرامج المستقلة باستخدامالواجهات الرسوميةوفيتطبيقات الويب، ويمكن استخدامها كلغة برمجة نصية للتحكم في أداء العديد من البرمجيات مثلبلندر. بشكل عام، يمكن استخدام بايثون لعمل البرامج البسيطة للمبتدئين،ولإنجاز المشاريع الضخمة في الوقت نفسه. غالباً ما يُنصح المبتدؤون في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسرع اللغات البرمجية تعلماً.
طُوِّرت بايثون فيمعهد الرياضيات والمعلوماتية الهولندي(CWI) في مدينةأمستردامعلى يدجايدو فان روسمفي أواخر ثمانينات القرن العشرين، وكان أول إعلان عنها في عام 1991م. كُتبت نواة اللغة باستعمال لغةسي. أطلق روسم الاسم «بايثون» على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة منبريطانيا، كانت تطلق على نفسها اسممونتي بايثون.
تتميز بايثون بمجتمعها النشط، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة التي برمجها أشخاص من ذلك المجتمع. مثلاً، هناك مكتبةباي جايمالتي توفر مجموعة من الدوال من أجلبرمجة الألعاب. يمكن لبايثون أيضاً التعامل مع العديد من أنواعقواعد البياناتمثلماي إس كيو إلوغير ذلك.
تدعم بايثونأنماط برمجةمتعددة هيالتوجيه الكائني،البرمجية جانبية التوجيهوالبرمجة الوظيفية. تُستخدم بايثون عادةً مثل العديد منلغات البرمجة الديناميكيةكلغة برمجة نصية. بايثون لديها نموذج مفتوح للتطوير، قائم على مجتمع بايثون البرمجي ومدعوم منمؤسسة برمجيات بايثون. والتي تحافظ على تعريف اللغة في التنفيذ المرجعيلسي بايثون.
اشتق اسم بايثون من الفرقة الكوميدية البريطانيةمونتي بايثوننتيجة لتأثر فان روسم بمشاهدة عروضها أثناء عمله على تطوير اللغة.تظهرمونتي بايثونمن حين لآخر في شيفرة بايثون البرمجية وثقافتها.على سبيل المثال،السباموالبيضهيالمتغيرات ما وراء البنيةالأكثر شيوعاً في أدب لغة بايثون عوض متغيرفو وبارالتقليدي.يلاحظ أيضًا أن وثائق بايثون الرسمية تحيل إلىالمشاهد القصيرةالتي قدمتها فرقة مونتي بايثون.
تستخدم البادئةباي-(بالإنجليزية:Py-)‏ للإشارة إلى أي شيء مُتعلِّق بهذه اللغة. على سبيل المثال، تنفيذات بايثون ومكتباتها مثلباي جايمربط برمجي لإس دي الببايثون،باي كيوتوباي جتكاللذان يربطان كلاً منكيوتوجتكببايثون.
بدأ التفكير في إنشاء لغة بايثون أواخر الثمانينيات من القرن العشرينمن طرفجايدو فان روسمفيمعهد الرياضيات والمعلوماتيةبهولنداكخليفة للغة البرمجةاي بي سي(والتي بدورها مستوحاة منسيتل).وأرادوا منها أن تكون قادرة على معالجةالحالات الاستثنائيةوالتفاعل مع نظام التشغيلأميبا.بالمقابل، لم يبدأ تنفيذ الفكرة حتى ديسمبر1989.
تحمّل فان روسم مسؤولية إدارة المشروع منفردًا، وذلك بصفته المطور الرئيسي، حتى 12 يوليو 2018، عندما أعلن عن «إجازته الدائمة» من مسؤولياتهكدكتاتور بايثون الخيري لمدى الحياة، وهو اللقب الذي منحه له مجتمع بايثون ليعكس التزامه طويل الأمد بصفته صانع القرار الرئيسي للمشروع.وهو يشارك الآن في القيادة عضوًا في مجلس التوجيه المكون من خمسة أشخاص.
أُصدرت النسخة الثانية من بايثون (بايثون 2.0) في 16 أكتوبر 2000 مع العديد من الميزات الجديدة الرئيسية، بما في ذلكتحديد دوري (حلقي)وجامع القمامةودعميونيكود.
أُصدرت النسخة الثالثة من بايثون (بايثون 3.0) في 3 ديسمبر 2008.وكانت مراجعة رئيسية للغة لكنها ليستمتوافقة بالكامل مع الإصدارات السابقة.من ميزاتها الرئيسية:الحمل العكسيفي سلاسل إصدار بايثون 2.6.xو2.7.x. تتضمن إصدارات بايثون 3 وظيفة2to3، التي تعمل تلقائيًا (جزئيًا على الأقل) على ترجمة كود (التعليمات البرمجية) بايثون 2 إلى بايثون 3.
حددتنهاية صلاحيةبايثون 2.7 في البداية عام 2015 ثم أُجل إلى عام 2020 خشية عدم إمكانية نقل مجموعة كبيرة من التعليمات البرمجية الموجودة بسهولة إلى بايثون 3.
في يناير 2019، انتخبت نواة بايثون النشطة من المطورين بريت كانون، نيك كوغلان، باري وارسو، كارول فايلينغ وفان روسم لتشكيل الأعضاء الخمسة «للمجلس التوجيهي» لقيادة المشروع.
تعد بايثون لغة برمجية سهلة نسبيًّا بالمقارنة معجافاوسي++إضافة إلى أنها لغةبرمجة متعددة الأنماط الفكرية (برمجة متعددة البرادايم). تدعمالبرمجة كائنية التوجهوالبرمجة المهيكلةدعمًا كاملًا، كما تدعم بايثونالبرمجة الوظيفيةوالبرمجة جانبية المنحى(بما في ذلك عن طريقالبرمجة الوصفيةوالكائنات الوصفية«خاصةًالطرق»).يمكنها أيضًا دعم العديد من الأنماط الفكرية الأخرى عن طريق الامتدادات، بما في ذلكالتصميم بالعقودوالبرمجة المنطقية.
زيادة على ذلك، فتصميم بايثون يقدم بعض الدعمللبرمجة الوظيفيةفي تقاليدليسب. فلدى بايثون وظائف (دوال)filter،reduce،map.كما تتوفر علىاشتمال القائمةوالقواميس والمجموعات وتعبيراتالمولد. تحتوي المكتبة القياسية على وحدتين (itertools وfunctools) التي تنفذ أدوات وظيفية مستعارة منهاسكلوإم أل المعيارية.
تعتبر بايثون لغة سهلة للغاية لتبدأ بها في تعلم البرمجة. بايثون تحتوي تراكيب سهلة بشكل غير معتاد، كما سبق ذكره. فبايثون تسعى جاهدة إلى بناء قواعد نحوية أبسط وأقل تشويشًا مع منح المطورين خيارًا في منهجية البرمجة الخاصة بهم. على النقيض من شعاربيرل«هناك أكثر من طريقة للقيام بذلك»، فإن بايثون تتخذ الشعار «يجب -ويفضل- أن تكون هناك طريقة واحدة واضحة للقيام بذلك» فلسفةً للتصميم.كتب أليكس مارتيلي، وهو زميل في مؤسسة بايثون للبرمجيات ومؤلف كتاب «بايثون»، أن «وصف شيء ما بأنه 'ذكي' لا يعتبر مجاملة في ثقافة بايثون».
بايثون هي مثال على البرمجيات الحرة مفتوحة المصدر. بعبارات بسيطة، يمكنك بحرية توزيع نسخ من هذه البرمجيات، وقراءة الشيفرة (الكود) المصدرية، والقيام ببعض التغييرات عليها واستخدام أجزاء منها في برمجيات حرة جديدة، فالبرمجيات الحرة تقوم على مبدأ المجتمع الذي يتشارك المعرفة.
عند تطوير البرامج ببايثون، لا داعي للاهتمام بالتفاصيل دقيقة المستوى مثل إدارة الذاكرة التي يستخدمها البايثون؛ فبايثون تستخدم نظام أنواع ديناميكيًّا ومزيجًا منالتحديد الحلقيومجمع القمامةوالمحدد الحلقي (الدوري)لإدارة الذاكرة. كما تتميز أيضًا بتحليل الاسم الديناميكي (الربط المتأخر)، والذي يربطالطريقةوأسماء المتغيرات أثناء تنفيذ البرنامج.
نظرا لطبيعتها البرمجيةمفتوحة المصدر، فهي تعمل في العديد من المنصات. كل ما يكتب من برامج بايثون يمكن أن يعمل على أي من هذه المنصات دون أن يتطلب ذلك أي تغييرات على الإطلاق إذا كانت دقيقة بما فيه الكفاية لتجنب أي خصائص تعتمد على نظام بعينه.
يمكن استخدام بايثون علىلينكس،ويندوز،فري بي ‌إس ‌دي،ماكينتوش،سولاريس،أو إس/2،أندرويد.والعديد من أنظمة التشغيل الأخرى.
تدعم بايثونالبرمجة الإجرائيةوكذلكالبرمجة الكائنية. في اللغات إجرائية التوجه، يتمحور البرنامج حول الإجراءات أو الدوال التي ليست سوى قطع من البرامج يمكن إعادة استخدامها. وفي اللغات كائنية التوجه، يتمحور البرنامج حول الكائنات التي تجمع بين البياناتوالوظائف(الطرق). وبايثون لغة قوية جدًّا وأيضًا تبسيطية للقيام بالبرمجة الكائنية خاصة عند مقارنتها بلغات مثل سي++ أو جافا.
بدلاً من دمج جميع وظائفها (طرقها) في نواتها، صممت بايثون لتكون قابلة للامتداد بدرجة كبيرة. هذه الوحدة النمطية المدمجة جعلتها شائعة بشكل خاص كوسيلة لإضافة واجهات قابلة للبرمجة إلى التطبيقات الحالية. تنبأت رؤية فان روسم للغة أساسية صغيرة مع مكتبة قياسية كبيرة ومترجمة (مجمّعة) قابلة للتوسيع بسهولة مستفيدة من أخطاءآي بي سي، التي تبنت النهج المعاكس.
لخصت فلسفة اللغة الأساسية في وثيقةزن بايثون(بيب 20)، والتي تتضمنحِكمًامثل:
يسعى مطورو بايثون جاهدين لتجنبالتحسينالسابق لأوانه، ويرفضون التصحيحات للأجزاء غير الحرجة من تطبيق (تنفيذ)سي بايثونالمرجعي الذي من شأنه أن يوفر زيادات هامشية في السرعة على حساب الوضوح.فعندما تكون السرعة مهمة، يمكن لمبرمج بايثون نقل الوظائف (الدوال) الحساسة زمنياً إلى نماذج التمديد المكتوبة بلغات مثلسي، أو باستخدامباي باي، وهو مترجم (مجمّع)آنيّ.سييثونمتاح أيضًا، والذي يترجم نص بايثون لنص بلغة سي ويقوم بإجراء استدعاءاتواجهة برمجة التطبيقات (API)مباشرة على مستوى اللغة سي إلىمفسربايثون.
أحد الأهداف المهمة لمطوري بايثون هو الحفاظ على المتعة في الاستخدام.ينعكس هذا في اسم اللغة - تكريمًا لمجموعة بريطانية للكوميديا السيرياليةمونتي بايثون- وفي المناهج المرحة أحيانًا للبرامج التعليمية والمواد المرجعية، مثل الأمثلة التي تشير إلىالبريد العشوائيوالبيض(من الألبوم المشهور لمونتي بايثون) والاستعاضة عن ذلكبفو بارالقياسية.
صممت بايثون لتكون لغة ذات مقروئية عالية، تنسيقها مرتب بصرياً؛ فهي عادةً ما تستخدم كلماتإنجليزيةشائعة الاستخدام في حين تستخدم لغات البرمجة الأخرى علامات الترقيم. على النقيض من العديد من اللغات الأخرى، لا تستخدم بايثون الأقواس المعقوفة{ }لتحديد كتل الكود، والفاصلة المنقوطة;بعدالعبارات البرمجيةاختيارية. لدى بايثون استثناءات نحوية وحالات خاصة أقل بكثير منلغة سيأوباسكال.
تستخدم بايثون الإزاحة بالفراغات بدلًا من الأقواس المعقوفة{ }أوالكلمات المفتاحيةلتحديد كتل الكود. الزيادة في الإزاحة تأتي بعد بعضالعبارات؛ إنقاص الإزاحة علامة على انتهاء الكتلة الحالية.وبالتالي، فإن البنية المرئية للبرنامج تمثل بدقة البنية الدلالية للبرنامج.تُسمى هذه الميزة أحيانًا قاعدة التسلل (بالإنجليزية:off-side rule)‏، والتي تشترك فيها بعض اللغات الأخرى، ولكن في معظم لغات البرمجة، ليس للإزاحة أي معنًى دلالي.
تتضمنعباراتبايثون البرمجية (من بين أمور أخرى):
بايثون لا تدعم التحسين الخاصالاستدعاء الذيليأو (استمرارية الدرجة الأولى)، كما أعلن غايدو فان روسم أنه لن تدعم أبداً.ومع ذلك، يتوفر دعم أفضل للوظائف الشبيهة بالروتين المساعد في النسخة 2.5، من خلال توسيع مولدات بايثون.قبل نسخة 2.5، كانت المولداتمكرراتكسولة، والتي يتم تمرير المعلومات من اتجاه واحد خارج المولد. ابتداءً من بايثون 2.5، صار من الممكن تمرير المعلومات مرة أخرى إلى دالة المولد، وبدءاً من بايثون 3.3، صار من الممكن أيضا تمرير المعلومات من خلال تعدد مستويات المكدس.
بعض تعبيرات بايثون تشبه لغات مثلسيوجافا، بينما البعض الآخر لا:
لا يمكن أن تكونالعباراتجزءًا من تعبير، ل ذلك لا يمكن أن تحتوي القائمة وغيرها من الاشتمالات أو تعبيراتلامبدا(تعتبر كلها تعبيرات) على عبارات. وتبقى هناك حالة استثنائية تتمثل في أن عبارة المساواة (التعيين) مثلa = 1لا يمكن أن تكون جزءًا من التعبير الشرطي لعبارة شرطية. وهذا يفيد في تجنب خطأ لغة سي الكلاسيكي عن غلطة في عامل التعيين=لعامل المساواة==في الشروط: إذا كان (c = 1) {...} :{... }if (c = 1)صالحًا من الناحية النحوية (ولكن غالبا هو غير مقصود) كشيفرة (كود) لغة سي بالمقابل...:if c = 1يسبب خطأً نحوياً في بايثون.
الطرقالمطبقة على الكائنات هي دوال مرتبطة بصنف الكائن. نحوياً تمثيل. طريقة (قيمة)instance.method(argument). للطرق العاديةوالتجميل اللغويللدوال من أجل صنف. طريقة (مثيل، قيمة)Class.method(instance, argument). طرق بايثون لديها معلمة صريحة تسمى ذاتselfللوصول لبيانات المثيل، على النقيض من الذات الضمنيةself(أو هذهthis) في بعض لغات البرمجة الأخرى (مثلسي++أوجافاأوسي-الكائنيةأوروبي).
تستخدم بايثونتنويع البطولديها نوع للكائنات ولكن ليس لديها نوع لأسماء المتغيرات. لا يتحقق من قيود النوع فيوقت التجميع؛ بدلاً من ذلك، قد تفشل العمليات على كائن ما، مما يدل على أن الكائن المحدد ليس من النوع المناسب. على الرغم منتنويعها بشكل ديناميكي،بايثون منوعة بقوة، مما يمنع العمليات غير المعرّفة جيدًا (على سبيل المثال، إضافة رقم إلى سلسلة نصية) بدلاً من محاولة فهمها بشكل صامت.
تسمح بايثون للمبرمجين بتحديد أنواعهم الخاصة باستخدام الأصناف، والتي غالبًا ما تستخدم فيالبرمجة الكائنية. تنشأمثيلاتجديدةالأصنافعن طريق استدعاء الصنف (على سبيل المثال،()SpamClassأو()EggsClass)، الأصناف هي مثيلات من نوعصنف علوي(نفسها مثيل لنفسها)، مما يسمحبالبرمجة الوصفيةوالانعكاس.
قبل الإصدار 3.0، كان لدى بايثون نوعين من الأصناف:الطراز القديموالأسلوب الجديد.النحو لكلا الأسلوبين هو نفسه، والفرق هو ما إذا كان كائنobjectالصنف موروثًا، بشكل مباشر أو غير مباشر (جميع الأصناف من النمط الجديد ترث من الكائنobjectوهيمثيلاتمن النوعtype). في إصدارات بايثون 2 من بايثون 2.2 وما بعده، يمكن استخدام كلا النوعين من الأصناف. أزل المطورون أصناف الطراز القديم في بايثون 3.0.
الخطة طويلة المدى هي دعمالتنويع التدريجيبدءاً من بايثون 3.5، تسمح اللغة نحوياً بتحديدأنواع ثابتةولكن لا يتم التحقق منها في التنفيذ الافتراضي،سي بايثون. يدعمالمدقق التجريبي للنوع الثابت والمسمىmypyالتحقق من النوع في وقت التجميع.
^aغير قابل للوصول بشكل مباشر عن طريق الاسم
يُستخدم في بايثون الرموز المعتادة للمعاملات الحسابية (+،-،*،/)،عامل التقسيم المكمل لأسفل(دالة الجزء الصحيح)//وعامل التقسيم مع باقي%(حيث يمكن أن يكون الباقي سالبًا، على سبيل المثال4% -3 ==-2). واللغة لديها أيضًا العامل**للرفع الأسي، على سبيل المثال3**5 == 125و0.5**9 == 3.0، وعامل ضرب المصفوفة@.تعمل هذه المعاملات الحسابية كما هو الحال في الرياضيات التقليدية؛ باستخدام نفسقواعد ترتيب العمليات الحسابية، يمكن أن يكون العاملترميزاً ضمنياً(أيضاً يمكن أن يكون الرمزان+و-أحاديينلتمثيل الأرقام الموجبة والسالبة على التوالي).ينتج عن القسمة بين الأعداد نتائج ذاتفاصلة عائمة. تغيّر سلوك القسمة في بايثون تغيرًا ملحوظًا بمرور الوقت:
في مصطلحات بايثون،/هي القسمة الحقيقية (أو ببساطة القسمة)، و//القسمة المكملة لأسفل. ولكن، قبل الإصدار 3.0 كان العامل/يمثل القسمة الكلاسيكية (أي الأقليدية).التقريب نحو اللانهاية السلبية تضيف الاتساق، على الرغم من اختلافها عن معظم اللغات. على سبيل المثال،(a+b)//b==a//b+1{\displaystyle (a+b)//b==a//b+1}المعادلة صحيحة دائمًا. والمعادلةb*(a//b) + a%b == aصالحة لكل من القيم الموجبة والسالبة لـa. بالمقابل، فإن الحفاظ على صحة هذه المعادلة يعني أنه في حين أن نتيجةa%bهي في المجال نصف المفتوح[0,b){\textstyle [0,b)}، حيث أنbهو عدد صحيح موجب، يجب أن تقع في المجال[0,b){\textstyle [0,b)}عندما تكونbسالبة.
يوفر بايثون دالةroundلتقريبالعدد ذو الفاصلة العائمة إلى أقرب عدد صحيح.لفك التعقيد، يستخدم بايثون 3 التقريب لعدد زوجي:round(1.5)round(2.5)ناتج كليهما هو2.أما الإصدارات السابقة فتستخدمتقريبًا بعيدًا عن الصفر:round(0.5)هو1.0،round(-0.5)هو1.0−.
تسمح بايثون بالتعبيرات البوليانية بعلاقات المساواة المتعددة بطريقة تتوافق مع الاستخدام العام في الرياضيات. على سبيل المثال: التعبيرa < b < c، يتحقق بايثون ما إذا كانتaأصغر منbوbأصغر منc.بعكس اللغات المشتقة منسيالتي تفسر هذا التعبير بشكل مختلف: فيسي، يقوم التعبير أولاً بتقييمa < b، مما يؤدي إلى 0 أو 1، ثم تتم مقارنة هذه النتيجة معc.
تستخدم بايثونحساب تدريج الدقة الاعتباطيةلجميع العمليات الصحيحة. يوفر الصنف (أو النوع)Decimalفي نموذجdecimalأعداد عشريةبفاصلة عائمة وبدقة اعتباطية محددة مسبقاً والعديد من وسائل التقريب.ويوفر صنفFractionفي نموذجfractionsالدقة الاعتباطيةللأعداد الكسرية.
نظرًا لسعة مكتبة بايثون للرياضيات، ومكتبة الطرف الثالثنمبايالتي توسع القدرات المحلية بشكل أكبر، استخدمت بايثون بشكل متكرر كلغة نصية علمية للمساعدة في حل عدة مسائل مثل معالجة البيانات العددية والتلاعب.
ابتداءً من بايثون 2.1، لاستخدام أحرف غيرالأسكيفي نص البرنامج، يجب عليك تحديد ترميز شفرة المصدر بشكل صريح في بداية الوحدة، على سبيل المثال:
ولكن حتى لو اكتفيت بكتابة:
«سيفهم» بايثون ما تقصد.
تدعم بايثونالوراثة المتعددة. ابتداءً من النسخة 2.3 تدعم بايثونخوارزمية سي 3، المقتبسة من لغة البرمجةديلانلحل مشكلترتيب حل الطريقة. بينما استعملتخوازمية البحث المتعمقالذي يطرح مشاكل في حالةالوراثة الألماسية.
مثال لحساب العمر:
مثال لاستخراج العدد العاملي:
مثال لتكرار طباعه كلمة 5 مرات:
ملاحظةلبايثون 2 استعملraw_input.
كمثال غير بديهي يمكن اعتبار خوارزميةالترتيب السريعكمثال مختصر كالتالي:
هذا مجرد مثال واحد على الأعمال الكتابية التي تم توفيرها من خلال تدوين القائمة. في الواقع، في هذه الحالة تكون الصياغة التكرارية أسرع، لأنها تكرر مرة واحدة فقط في حقل «القائمة» وليس مرتين كما هو الحال في تدوين القائمة.
في بايثون يمكن إنشاءواجهة مستخدم رسومية(GUI) بسرعة معتكينتر(كما هو الحال في لغةبيرلوتي سي إل). يوجد أيضًا مجموعة متنوعة منالمغلفاتالأخرى التي خدمات أخرى. كما بايثون توفر ارتباطات (bindings)لمجموعات أدوات واجهة المستخدم الرسوميةمثل بي.باي جتكوباي كيوتوويكس بايثونوباي أوبج سيومجموعة أدوات الضوء السريع (فاست لايت).
بالإضافة إلىتيكينتر، تحتوي بايثون أيضًا على وحدة للرسم: رسوميات «السلحفاة» (Turtle graphics).
يعتبر الكثيرون مكتبة بايثونالقياسيةالكبيرة واحدة من أعظم نقاط قوة بايثون،نظرا لتوفيرها أدوات تناسب العديد من المهام. كما تدعم المكتبة العديد من التنسيقات والبروتوكولات القياسية مثلامتداد البريد الإلكتروني متعدد الأغراض (MIME)وبروتوكول نقل النص الفائق (HTTP)الخاصة بتطوير تطبيقات الويب، وتدعم أيضا وحدات لإنشاءواجهات المستخدم الرسومية، والاتصالبقواعد البيانات العلائقية،وتوليد أرقام شبه عشوائية، والحساب العشري بدقة اعتباطيةوالمعالجةبالتعبيرات النمطية، وكذااختبار الوحدة.بعض أجزاء المكتبة القياسية تشمل الكثير من المميزات (على سبيل المثال، تنفيذواجهة بوابة خادم ويب(WSGI)wsgirefيتبع PEP 333)، ولكن أغلب الوحدات لا تحتوي على مميزات، وتتميز عن الوحدات الأخرى من خلال التعليمات البرمجية والتوثيق الداخليوتراكيب الاختبار. بالمقابل، فإن عددًا قليلاً فقط من الوحدات يحتاج إلى تعديل أو إعادة كتابة لعمليات التنفيذ المختلفة، نظرًا لأن معظم المكتبة القياسية هي كود بايثونمتعدد المنصات.
تضمّ مكتبة بايثون مجموعة من الوحدات القياسية وبعضها مدمج مع مفسّر بايثون وتتيح الوصول إلى عمليات ليست جزءًا من اللغة، ولكن الهدف منها هو إتاحة الوصول إلى العمليات الأساسية في نظام التشغيل مثل استدعاءات النظام أو زيادة كفاءة عمل المفسّر، يمكن زيادة عدد الوحدات في المكتبة القياسية بوحدات مكتوبة في سي أو بايثون.
ابتداءً من نوفمبر 2019، يحتوي مؤشر حزمة بايثونباي باي(بالإنجليزية:Python Package Index)‏ (PyPI)، وهو المستودع الرسمي لبرامج بايثون التابعة لجهات خارجية، على أكثر من 200,000حزمة مع مجموعة واسعة من الميزات، بما في ذلك:
يستعين المطورون لتطوير بايثون بشكل كبير بعملية اقتراح تحسين بايثون (PEP)، وهي الآلية الأساسية لاقتراح ميزات جديدة رئيسية، واستطلاع آراء المجتمع حول القضايا وقرارات تصميم بايثون.كما يغطي نمط ترميز بايثون في PEP 8.ويقوم مجتمع بايثون والمجلس التوجيهي بمراجعة الاقتراحات والتعليق عليها.
يتوافق تعزيز وتحسين اللغة مع تطوير التنفيذ المرجعيسي بايثون. القائمة البريدية بايثون ديف (python-dev) هي المنتدى الأساسي لتطوير اللغة. وتُناقش حالات محددة فينظام تتبع للعللراوند آبالمستضاف فيbugs.python.org.في الأصل، جرى تطوير شيفرة بايثون البرمجية في مستودعذاتية الاستضافةبتشغيلميركوريال، حتى يناير 2017، حيث انتقل بايثون إلىغيت هاب.
هناك ثلاثة أنواع للإصدارات العامة الجديدةلسي بايثون، ويتميز كل نوع بزيادة جزء من رقم الإصدار:
أُعلن عن بايثون 3.9 ألفا1 في نوفمبر 2019ومع اعتماد مقياس جديد يتمثل في إصدار سنوي،ثم أعلن الإصدار الأول من 3.9 سيصدر في نوفمبر 2020.
تُصدر أيضًا العديد منالنسخ بصيغة ألفا وبيتا والنسخ المرشحةكمعاينات واختبارات قبل الإصدارات النهائية. على الرغم من وجود جدول تقريبي لكل إصدار، إلا أنه غالبًا ما يتأخر في الصدور إذا لم يكن الكود جاهزًا. يراقب فريق تطوير بايثون حالة الكود من خلال تشغيل مجموعة اختبارات للوحدة الكبيرة أثناء التطوير، واستخدام نظام BuildBotللتركيب المتواصل.
المؤتمر الأكاديميالرئيسي حول بايثون هوباي كون. هناك أيضًا برامج توجيه خاصة للبايثون، مثلباي ليديز.
أغلب بيئات تطوير بايثون (بما في ذلك سي بايثون) تتضمنحلقة القراءة - التقييم - الطباعة(REPL) مما يسمح لها بالعملكمترجم سطر الأوامرحيث يقوم المستخدم بإدخال البيانات بشكل تسلسلي ويتلقى النتائج على الفور.
تضيفالقشور(Shells) الأخرى، بما في ذلكبيئة التطوير المتكاملة للتعلموآي بايثون، قدرات إضافية مثل الإكمال التلقائي المحسّن والاحتفاظ بحالة الجلسةوتعليم الصيغة. بالإضافة إلىبيئات التطوير المتكاملةالقياسيةلسطح المكتب، هناك بيئات تطوير متكاملة مستندة إلىمتصفحات ويب؛سايج مات(مخصص لتطوير برمجيات بايثون العلمية والرياضية)؛بايثون إني وير، بيئة تطوير واستضافة تستند إلى متصفح ويب؛ وبيئة تطوير كانوبي المتكاملة، وهو بيئة تطوير متكاملة تجارية لبايثون ترتكز علىالحوسبة العلمية.
سي بايثون،التنفيذ المرجعيلبايثون، مكتوببسي، يلبي معيارسي 89مع العديد من ميزاتسي99المحددة.يقوم بتجميع برامج بايثون في كود بايت متوسطينفذ بعد ذلك بواسطة آلتها الافتراضية.يوزعسي بايثونمع مكتبة قياسية كبيرة مكتوبة في مزيج منسي، وبايثون. والمكتبة متاحة للعديد من المنصات، بما في ذلك ويندوز (فيستاوالإصدارات الأحدث؛ نظام التشغيلويندوز اكس بيوالإصدارات الأقدم، ولكن بايثون 2.7 غير مدعوم حتى الآن ومعظمالأنظمة الشبيهة بيونيكسالحديثة). في فترة بايثون 1 و2، كانت قابلية المنصة واحدة من أولى أولوياتها،حيث كانت تدعم حتىفي إم إسوأو إس/2، ولكن حاليا، انخفض الدعم للعديد من المنصات.
باي بايهوتنفيذسريع، يوفر ترجمة في الوقت المناسب، متوافق مع بايثون 2.7 وبايثون 3.6.وهو أسرع منسي بايثونبالمقابل، فهو لا يدعم العديد من المكتبات المكتوبة بلغة ببايثون.
ستاكليس بايثون،انشقاقمعروفلسي بايثون، ينفذ الخيوط الدقيقة دون استعمال رصة ذاكرةسي. مما يسمح بالبرامجالمتزامنةبنطاق واسع.
مايكروبايثونوسيركويت بايثونهيمتغيراتلبايثون 3 محسنة للتحكمالدقيقوهذا يشملليجو مايندستورمز اي في 3.
طورت برامج تجميع بايثون آنية أخرى، ولكنها الآن غير مدعومة:
توجد العديد من المحولات البرمجية لبايثون إلى لغات أخرى كائنية عالية المستوى، إما بواسطة بايثون غير مقيد، أو مجموعة فرعية مقيدة من بايثون، أو بواسطة لغة مشابهة لبايثون كلغة مصدر:
قُورِن أداء مختلف تنفيذات بايثون على عبء عمل غير عددي (التوافقية) في أورو سي باي 13.ثم قيس أداء بايثون مقارنة بلغات البرمجة الأخرى من خلاللعبة معايير لغة الكمبيوتر.
تتضمن مولدات واجهة برمجة التطبيقات (API) ما يلي:
بايثون ليست مناسبة ومحسنة لتطوير برامج الهواتف المحمولةمع ذلك، فإن إصدارات بايثون 2.5 و2.6 متوافقة معآيفونبعد تفعيلكسر الآي أو إسفي الإعدادات وهواتفأندرويدبفضل تطبيق إس إل فور (SL4) أي الذي يوفر إمكانية برمجة بعض الواجهات الرسومية بفضل الدالة "android" ;إمكانية إرسالرسائل قصيرة، تشغيلالكاميرا، وهز الهاتف كما هو مبين أسفله.
ابتداءً من يونيو 2012، صار من الممكن تشغيل بايثون أيضًا في نظام تشغيلبلاك بيري أوس10 بواسطة تنفيذ، في سبتمبر 2012 أصدر إصدار مخفف: «بلاكبيري تارت»مستند إلى بايثون 3.2.2.
منذ 2003، صنفت بايثون ضمن أكثر لغات البرمجة شعبية فيفهرس تيوبي للغات البرمجة الأكثر شعبية، وفي فبراير 2020 صنفت في المرتبة الثالثة (أي بعدجافاوسي).صنفت أيضا كلغة برمجة العام لسنة 2007، 2010 و2018.وحسب استبيان لموقعستاك أوفرفلوفإن بايثون هي أسرع الغات نموا فقد تمكنت من تخطي العديد من لغات البرمجة.
توصلت دراسة تجريبية إلى أن لغات البرمجة النصية، مثل بايثون، هي أكثر إنتاجية من اللغات التقليدية، مثلسيوجافا، لحل مشكلات البرمجة مثل التحكم بالسلسلة والبحث في القاموس، وخلصت إلى أن استهلاك الذاكرة غالبًا «أفضل من جافا وليس أسوأ بكثير من سي أوسي++».تستخدم منظمات كبيرة بايثونكويكيبيديا،جوجل،ياهو!،سيرن،ناسا،فيسبوك،أمازون،إنستغرام،سبوتيفايوأيضا بعض الشركات الصغيرةإندستريال لايت آند ماجيكوإيتا للبرمجيات.كما أن شبكة التواصل الاجتماعيريديتمكتوبة كليا ببايثون.
يمكن استخدام بايثون كلغة برمجة نصيةلتطبيقات الويب، مثال : عبرmod wsgiلخادم ويبأباتشي.باستعمالواجهة بوابة خادم ويب، تطورتواجهة برمجة التطبيقاتالقياسية لتسهيل برمجة هذه التطبيقات. تدعم المنصات البرمجية لتطبيقات الويب مثلجانغو،باي لونز،بيراميد،توربو جيرز،ويب-تو-باي،تورنادو،فلاسك،بوتلوزوبالمطورين في تصميم وصيانة التطبيقات المعقدة. يمكن استخدامباي جسوآيرن بايثونلتطوير جانب العميل من التطبيقات القائمة علىأجاكس. يمكن استخدامإس كيو إل ألشميكمحدد للبياناتالعلائقية.تويستدهو إطار عمل يبرمج التواصل بين أجهزة الحاسوب لذا استعمل فيدروب بوكس.
المكتبات البرمجيةكنمبايوسي بايومات بلوت ليبتسمح باستعمال بايثون فيالحوسبة العلمية.إضافة إلىبايو بايثونوأستروباياللتان توفران خدمات متخصصة.سايج ماتهي برمجية رياضية بواجهة على شكلمفكرةقابلة للبرمجة ببايثون: تشمل أغلب مجالاتالرياضيات،كالجبر،والتركيبات،والتحليل العددي،ونظرية الأعدادوالتفاضل والتكامل.تمكنت بايثون من أن تصير جزءا لا يتجزأ من أغلب البرمجيات كلغة برمجة نصية، وتشمل برمجيات طريقة العناصر المنتهية مثلأباكوس، برمجية للتصميم الحدودي ثلاثي الأبعاد، ومثلفري كاد، حزم رسوم متحركةكثري دي إس ماكس،وبلندر،وسينما فور دي،ولايت وايف،وهوديني،ومايا،ومودو،أوتودسك موسيون بولدير،وسوفت إيماج إكس إس آي، وبرنامج الخدع البصريةنوك، برامجمعالجة الصورثنائي الأبعادكبرنامج جنو لمعالجة الصور،وإنكسكايب،سكريبوس،بينت شوب برو،وبرامجالتدوين الموسيقيككابيلا. ستعملمصحح جنوبايثونكبرتي برنتلإظهار الهياكل المعقدة كحاويات سي++. تروجإسريلبايثون كأفضل خيار لكتابة سكربتاتآركجيس.كما استعملت في العديد من ألعاب الفيديوواعتمدت كأول لغة برمجة متوفرة فيمحرك تطبيقات جوجل، يأتي بعدهاجافاوجو.تستخدم بايثون غالبا في مشاريعالذكاء الصناعيومشاريع تعليم الآلة بمساعدة كل من المكتبات مثلتنسرفلو،كيراس،باي تورش،ساي كيت ليرن.نظرا لأنها لغة برمجية نصية تدعم البرمجة التركيبية، بنحو بسيط، بأدوات معالجة نصية غنية، غالبًا ما تستخدم بايثونلمعالجة اللغات الطبيعية.
كما أنها مضمنة في أنظمة التشغيل المختلفة مثل أغلب توزيعاتلينكس،أميغا أو إس 4(يستعمل بايثون 2.7)،فري بي إس دي(كحزمة)،نت بي إس دي،أوبن بي إس دي(كحزمة)وماك أو إسويمكن استعمال بايثون على هذه الأنظمة علىسطر الأوامر. العديد من إصظارات لينكس تستعمل مثبثي برامج مكتوبون ببايثون :أوبنتوتستعملأوبكويتي،ريدهات لينكسوفيدورايستعملان مثبثأناكوندا. أماجنتو لينكسفتستعمل بايثون فينظام إدارة حزمها،بورتاج.
تستخدم بايثون بكثافة في صناعةأمن المعلومات، بما في ذلك التحكم بالاستغلال وتطويره.
البيانات الضخمة، بسبب قدرة بايثون على التعامل مع البيانات بشكل سلس وتحليلها ووجود العديد من المكتبات المختصة في هذا المجال مثل باندا فتعد بايثون خيار ممتاز للعاملين في هذا المجال.أغلب برمجياتشوجرلحاسوب محمول لكل طفلXO، المطورة الآن فيشوجر لابز، مكتوبة ببايثون.اعتمدت حواسيبرسبري بايأحادية اللوحةبايثون لغة برمجة رئيسية للمستخدم.ليبر أوفيسمكتوب جزئيا ببايثون، ويعتزم تعويضجافاببايثون. منذ إصدار الإصدار الرابع في 3 سبتمبر 2017، صار موفر البرمجة النصية لبايثون ميزة أساسية للبرنامج.
في حواسيب اللوحة الواحدةراسباري باي(مفسر بايثون) يجب في الأصل أن يكون مفسربذاكرة قراءة فقطبايثون المدمج،حتى اليوم، تعد بايثون واحدة من أكثر اللغات المفضلة لراسباري باي، ويأتي نظام التشغيل القياسيراسبيانمع مكتبة بايثون كبيرة للتحكم في الأجهزة.
بما أن لغة بايثون نصية، فإنه يتوجب وجود مفسر للغة لتشغيل البرنامج، وللحصول عليه، يكفي تنزيله من موقع لغة بايثون وذلك حسب نظام التشغيليستلزم وجودمحرر نصوصلكتابة برنامج بايثون حيث يُحفظ الملف بلاحقة py. بعد ذلك ادخل على سطر الأوامر واكتب:
>> python program.py
بحيث program اسم الملف، وللتعامل مباشرة مع محث لغة بايثون، اكتب في سطر الأوامر :
>> pyأو>>python
ظهرت بايثون في وقت متأخر نسبيًا، وبذلك خضعت لتأثير العديد من لغات البرمجة الأخرى ومنها:
أثر تصميم وفلسفة بايثون على العديد من لغات البرمجة الأخرى:
كما قلدت لغات أخرى ممارسات تطوير بايتون. على سبيل المثال، أُستخدمت ممارسة طلب مستند يصف الأساس المنطقي، والقضايا المحيطة بتغيير اللغة (في Python، PEP) فيتي سي إل،إرلانغ،وسويفت.
في تعريفالطريقةالبرمجية يجب وضع المعلمة ذات (self) التي تتوافق مع مثيل الصنف، المطلوب استدعاء طريقتها، بوضعها صراحة كمعلمة. غالباً يبدو هذا الشكل غير أنيق برمجياً كما أنه ليسبرمجة كائنية التوجه.لكن ذلك ضروري لإتاحة بعض البُنى البرمجية الهامة؛ ويتناسب مع فلسفة بايثون القائلة «الصريح أفضل من المضمن».
وفي الإصدار 3.0 غالباً ما يُنتقد استدعاء تعريف الطريقة لنسخة الصنف الأساسية التي تصرح بالصنف وتتطلب مثيل.حيث يُرى أنه يتناقض مع مبدأ «لا تكرر نفسك (خطواتك)». بالمقابل، يمنع ذلك إعادة التسميات.في الأخير، حلت نقطة الخلاف في بايثون 3.0.
كما يُنتقد الافتقار إلى أمان التنويع الثابت في بايثون.
في الأنظمة ذات المعالجات متعددة الأنوية، وفي فيسي بايثون، يوجد ما يسمى قفل المفسر العالمي (Global Interpreter Lock (GIL)) الذي له أداء فعّال لتنفيذات بايثون التي يتطلب استخدامها برمجيات حاسوبية متعددة الخيوط. بيد أن هذا القيد غير موجود فيجايثونوآيرن بايثون.وحتى الآن، لا توجد مخططات رسمية تحل محل قفل المفسر العالمي. بدلاً من ذلك، يوصّى باستخدام عمليات متعددة تتواصل مع بعضها البعض بدلاً من تعدد الخيوط الحاسوبية.
في التنفيذات المنتشرة، تكون سرعة التنفيذ أبطأ من سرعة العديد من اللغات المجمّعة وتستنزف الذاكرة أكثر،ولكن سرعتها مشابهة لبيرل،بي اتش بي،دارت، وروبي.ويرجع ذلك غالبا إلى مبدأ بايثون «وضوح الكود له الأسبقية على السرعة».تنصح بعض المواقع مثل دونالد نث وتوني هورار بعدم التحسين المبكر، لذا ظهرت مشاكل في السرعة لا يمكن حلها عن طريق تحسين كود بايثون،عوضا من ذلك تستخدم مجمعات (أو محولات)آنيةمثلباي بايأو يستعان بدوال حساسة للوقت في اللغات منخفضة المستوى مثل سي أو كايثون.