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

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
Applications-development current.svg
هذه المقالة قيد التطوير. إذا كان لديك أي استفسار أو تساؤل، فضلاً ضعه في صفحة النقاش قبل إجراء أي تعديل عليها. مَن يحررها يظهر اسمه في تاريخ الصفحة.
بايثون
Python logo and wordmark.svg


التنميط نمط برمجة: برمجة وظيفية، برمجة أمرية، برمجة كائنية التوجه، برمجة مهيكلة، انعكاس، نظام التنويع: تنويع البط، نظام الأنواع، تنويع تدريجي (ابتداء من الإصدار 3.5)[1]
ظهرت في 20 فبراير 1991[2]  تعديل قيمة خاصية (P571) في ويكي بيانات
صممها جايدو ڤان روسم[3]  تعديل قيمة خاصية (P287) في ويكي بيانات
نظام التشغيل لينكس، ماك أو إس، مايكروسوفت ويندوز فيستا (و أحدث منها) و غيرها
الرخصة رخصة مؤسسة برمجيات بايثون
التطوير
المطور مؤسسة برمجيات بايثون
آخر إصدار 13 مايو 2020; منذ 57 يومًا (2020-05-13[4]
رقم اخر اصدار 3.8.3 ()
آخر إصدار غير مستقر 19 مايو 2020; منذ 51 يومًا (2020-05-19[5]
التأثير
متأثرة بـ اي بي سي،[6] أيدا،[7] الغول 68،[8] إيه بي إل،[9] سي،[10] سي++،[11] كلو،[12] ديلان،[13] هاسكل،[14] آيكون،[15] جافا،[16] ليسب،[17] مودولا-3،[11] بيرل، أم أل المعيارية[9]
أثرت في جروفي، بوو، كوبرا، كافي سكريبت،[18] دي، إف شارب، جيني،[19] غو، جافا سكريبت،[20][21] جوليا،[22] نيم، Ring،[23] روبي،[24] سويفت[25]
متفرقات
امتدادات الملفات .py، .pyi، .pyc، .pyd، .pyo (قبل الإصدار 3.5)،[26] .pyw، .pyz (ابتداء 3.5)[27]
موقع ويب الموقع الرسمي

بايثون (بالإنجليزية: Python)‏ هي لغة برمجة، عالية المستوى، تتميز ببساطة كتابتها وقراءتها، سهلة التعلم، تستخدم أسلوب البرمجة الكائنية، وهي مفتوحة المصدر، وقابلة للامتداد. تعتبر لغة بايثون لغة مفسرة، متعددة الإستخدامات وتستخدم بشكل واسع في العديد من المجالات، كبناء البرامج المستقلة باستخدام الواجهات الرسومية المعروفة وفي عمل تطبيقات الويب، بالإضافة إلى استخدامها كلغة برمجة نصية للتحكم في أداء بعض من أشهر البرامج المعروفة أو في بناء برامج ملحقة لها. وبشكل عام يمكن استخدام بايثون لبرمجة البرامج البسيطة للمبتدئين، ولإنجاز المشاريع الضخمة كأي لغة برمجية أخرى في نفس الوقت. غالباً ما يُنصح المبتدؤون في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسرع اللغات البرمجية تعلماً.[29]

نشأت بايثون في معهد الرياضيات و المعلوماتية الهولندي (CWI) بأمستردام على يد جايدو ڤان روسم في أواخر الثمانينات من القرن المنصرم، وكان أول إعلان عنها في عام 1991. كتبت نواة اللغة بلغة سي. أطلق ڤان روسم الاسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها الاسم مونتي بايثون.

تتميز بايثون بمجتمعها النشط، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة، مثلاً مكتبة باي جايم التي توفر مجموعة من الوظائف من أجل برمجة الألعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل ماي إس كيو إل وغيره.[30]

تدعم بايثون بارادايمات برمجية متعددة مثل التوجيه الكائني، البرمجية جانبية التوجيه و البرمجة الوظيفية. كما تقدم التنويع الديناميكي. تستخدم بايثون عادةً مثل العديد من لغات البرمجة الديناميكية كلغة برمجة نصية. بايثون لديها نموذج مفتوح للتطوير، القائم على مجتمع بايثون البرمجي والمدعوم أيضاً من مؤسسة برمجيات بايثون. والتي تحافظ على تعريف اللغة في التنفيذ المرجعي لسي بايثون.

تاريخ[عدل]

جايدو ڤان روسم في مؤتمر أوسكون 2006

بدأ التفكير في إنشاء لغة بايثون أواخر الثمانينيات من القرن العشرين[31] من طرف جايدو ڤان روسم في معهد الرياضيات و المعلوماتية بهولندا كخليفة للغة البرمجية اي بي سي (والتي بدورها مستوحاة من سيتل).[32] وأرادوا منها بأن تكون قادرة على معالجة الحالات الاستثنائية والتفاعل مع نظام التشغيل أميبا.[6] بالمقابل، لم يبدأ تنفيذ الفكرة حتى ديسمبر 1989.[33]

تحمّل فان روسوم مسؤولية إدارة المشروع منفردًا، وذلك بصفته المطور الرئيسي، حتى 12 يوليو 2018، عندما أعلن عن "إجازته الدائمة" من مسؤولياته كدكتاتور بايثون الخيري لمدى الحياة، وهو اللقب الذي منحه له مجتمع بايثون ليعكس التزامه طويل الأمد بصفته صانع القرار الرئيسي للمشروع.[34] وهو يشارك الآن في القيادة عضوًا في مجلس التوجيه المكون من خمسة أشخاص.[35][36][37]

أُصدرت النسخة الثانية من يايثون (بايثون 2.0) في 16 أكتوبر 2000 مع العديد من الميزات الجديدة الرئيسية، بما في ذلك تحديد دوري (حلقي) وجامع القمامة ودعم يونيكود.[38]

أُصدرت النسخة الثالثة من بايثون (بايثون 3.0) في 3 ديسمبر 2008 .وكانت مراجعة رئيسية للغة لكنها ليست متوافقة بالكامل مع الإصدارات السابقة.[39] من ميزاتها الرئيسية : الحمل العكسي في سلاسل إصدار بايثون 2.6.x [40] و 2.7.x . تتضمن إصدارات بايثون 3 وظيفة 2to3، التي تعمل تلقائيًا (جزئيًا على الأقل) على ترجمة كود (التعليمات البرمجية) بايثون 2 إلى بايثون 3.[41]

حددت نهاية صلاحية بايثون 2.7 في البداية عام 2015 ثم أُجل إلى عام 2020 خشية عدم إمكانية نقل مجموعة كبيرة من التعليمات البرمجية الموجودة بسهولة إلى بايثون 3.[42][43]

في يناير 2019، انتخبت نواة بايثون النشطة من المطورين بريت كانون، نيك كوغلان، باري وارسو، كارول فايلينغ وفان روسوم لتشكيل الأعضاء الخمسة "للمجلس التوجيهي" لقيادة المشروع.[44]

مميزات بايثون[عدل]

تعد بايثون لغة برمجية سهلة نسبيا بالمقارنة مع جافا و سي++ اضافة الى انها لغة برمجة متعددة الأنماط الفكرية (برمجة متعددة البرادايم).تدعم البرمجة كائنية التوجه والبرمجة المهيكلة بشكل كامل، كما تدعم بايثون البرمجة الوظيفية والبرمجة جانبية المنحى (بما في ذلك عن طريق البرمجة الوصفية [45] والكائنات الوصفية (الطرق السحرية )).[46] يمكنها أيضًا دعم العديد من الأنماط الفكرية الأخرى عن طريق الامتدادات، بما في ذلك التصميم بالعقود[47][48] والبرمجة المنطقية.[49]

دعم للبرمجة الوظيفية[عدل]

زيادة على ذلك، فتصميم بايثون يقدم بعض الدعم للبرمجة الوظيفية في تقاليد ليسب. فلدى بايثون وظائف (دوال) filter، reduce، map.[50] كما تتوفر على اشتمال القائمة و القواميس والمجموعات وتعبيرات المولد. تحتوي المكتبة القياسية على وحدتين (itertools و functools) التي تنفذ أدوات وظيفية مستعارة من هاسكل و إم أل المعيارية.[51]

سهلة التعلم[عدل]

تعتبر بايثون سهلة للغاية لتبدأ بها في تعلم البرمجة. بايثون تحتوي تراكيب سهلة بشكل غير معتاد، كما سبق ذكره.فبايثون تسعى جاهدة إلى بناء قواعد نحوية أبسط وأقل تشويشًا مع منح المطورين خيارًا في منهجية البرمجة الخاصة بهم. على النقيض من شعار بيرل " هناك أكثر من طريقة للقيام بذلك "، فإن بايثون تتخذ الشعار «يجب - ويفضل - أن تكون هناك طريقة واحدة واضحة للقيام بذلك» كفلسفةً للتصميم[52]. كتب أليكس مارتيلي، وهو زميل في مؤسسة بايثون للبرمجيات ومؤلف كتاب "بايثون"، أن "وصف شيء ما بأنه ' ذكي' لا يعتبر مجاملة في ثقافة بايثون".[53]

حرة ومفتوحة المصدر[عدل]

بايثون هي مثال على البرمجيات الحرة مفتوحة المصدر. بعبارات بسيطة، يمكنك بحرية توزيع نسخ من هذه البرمجيات، وقراءة الشيفرة (الكود) المصدرية، والقيام ببعض التغييرات عليها واستخدام أجزاء منها في برمجيات حرة جديدة، فالبرمجيات الحرة تقوم على مبدأ المجتمع الذي يتشارك في المعرفة.[54]

لغة برمجة عالية المستوى[عدل]

عندما تكتب البرامج في بايثون، لا داعي للاهتمام بالتفاصيل دقيقة المستوى مثل إدارة الذاكرة التي يستخدمها برنامجك فبايثون تستخدم نظام أنواع (برمجي) ديناميكي ومزيجًا من التحديد الحلقي ومجمع القمامة و المحدد الحلقي (الدوري) لإدارة الذاكرة. كما تتميز أيضًا بتحليل الاسم الديناميكي ( الربط المتأخر)، والذي يربط الطريقة وأسماء المتغيرات أثناء تنفيذ البرنامج. [ِ 1]

محمولة[عدل]

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

يمكن استخدام بايثون على لينكس، ويندوز، فري بي ‌إس ‌دي، ماكينتوش، سولاريس، أو إس/2، أندرويد [55] والعديد من أنظمة التشغيل الأخرى.

كائنية التوجه[عدل]

تدعم بايثون البرمجة الإجرائية وكذلك البرمجة الكائنية. في اللغات إجرائية التوجه، يتمحور البرنامج حول الإجراءات أو الدوال التي ليست سوى قطع من البرامج يمكن إعادة استخدامها. وفي اللغات كائنية التوجه، يتمحور البرنامج حول الكائنات التي تجمع بين البيانات والوظائف (الطرق). وبايثون لغة قوية جدا و ايضاً تبسيطية للقيام بالبرمجة الكائنية خاصة عند مقارنتها بلغات مثل سي++ أو جافا.[45]

قابلة للامتداد[عدل]

بدلاً من دمج جميع وظائفها (طرقها) في نواتها، صممت بايثون لتكون قابلة للامتداد بدرجة كبيرة. هذه الوحدة النمطية المدمجة جعلتها شائعة بشكل خاص كوسيلة لإضافة واجهات قابلة للبرمجة إلى التطبيقات الحالية. تنبأت رؤية فان روسوم للغة أساسية صغيرة مع مكتبة قياسية كبيرة ومترجمة (مجمّعة) قابلة للتوسيع بسهولة مستفيدة من أخطاء آي بي سي، التي تبنت النهج المعاكس.[31]

فلسفة بايثون[عدل]

لخصت فلسفة اللغة الأساسية في وثيقة زن بايثون (بيب 20)، والتي تتضمن حِكم مثل:[52]

  • الجميل أفضل من القبيح.
  • الصريح أفضل من الضمني.
  • البسيط أفضل من المُركّب.
  • المُركّب أفضل من المعقد.
  • قابلية القراءة مهمة.

يسعى مطورو بايثون جاهدين لتجنب التحسين السابق لأوانه، ويرفضون التصحيحات للأجزاء غير الحرجة من تطبيق (تنفيذ) سي بايثون المرجعي الذي من شأنه أن يوفر زيادات هامشية في السرعة على حساب الوضوح.[56] فعندما تكون السرعة مهمة، يمكن لمبرمج بايثون نقل الوظائف (الدوال) الحساسة زمنياً إلى نماذج التمديد المكتوبة بلغات مثل سي، أو باستخدام باي باي، وهو مترجم (مجمّع) آنيّ. سييثون متاح أيضًا، والذي يترجم نص بايثون لنص بلغة سي ويقوم بإجراء استدعائات واجهة برمجة التطبيقات (API) مباشرة على مستوى اللغة سي إلى مفسر بايثون.

أحد الأهداف المهمة لمطوري بايثون هو الحفاظ على المتعة في الاستخدام[57]. ينعكس هذا في اسم اللغة - تكريمًا لمجموعة بريطانية للكوميديا السيريالية مونتي بايثون - وفي المناهج المرحة أحيانًا للبرامج التعليمية والمواد المرجعية، مثل الأمثلة التي تشير إلى البريد العشوائي والبيض (من الألبوم المشهور لمونتي بايثون ) والاستعاضة عن ذلك بفو والبار القياسية.[58][59]

النحو (بناء اللغة) و الدلالات[عدل]

صممت بايثون لتكون لغة ذات مقروئية عالية، تنسيقها مرتب بصرياً؛ فهي عادةً ما تستخدم كلمات إنجليزية شائعة الاستخدام في حين تستخدم لغات الرمجة الأخرى علامات الترقيم. على النقيض من العديد من اللغات الأخرى، لا تستخدم بايثون الأقواس المعقوفة { } لتحديد كتل الكود، والفاصلة المنقوطة ; بعد العبارات البرمجية اختيارية. لدى بايثون استثنئات نحوية وحالات خاصة أقل بكثير من لغة سي أو باسكال.[60]

إزاحة[عدل]

تستخدم بايثون الإزاحة بالفرغات بدلاً من الأقواس المعقوفة { } أو الكلمات المفتاحية لتحديد كتل الكود. الزيادة في الإزاحة تأتي بعد بعض العبارات ؛ إنقاص الازاحة علامة على انتهاء الكتلة الحالية.[61] وبالتالي، فإن البنية المرئية للبرنامج تمثل بدقة البنية الدلالية للبرنامج.[62] تُسمى هذه الميزة أحيانًا قاعدة التسلل (بالإنجليزية: off-side rule)‏، والتي تشترك فيها بعض اللغات الأخرى، ولكن في معظم اللغات، لا تحتوي الازاحة على أي معنى دلالي.

العبارات البرمجية و التحكم بالتدفق[عدل]

عبارات بايثون البرمجية تضمن (من بين أمور أخرى):

  • عبارة المساواة (تأخذ اشارة المساواة=) تعمل بشكل مختلف عن بقية لغات البرمجة الأمرية وهذه هي الآلية الأساسية (تضمن طبيعة اصدارات المتغيرات الخاصة ببايثون) و التي تنير الطريق للعديد من ميزات اللغة الأخرى. نأخد مثال عن المساواة في لغة سي: x = 2،يُترجم إلى "اسم المتغير المكتوب x يتلقى نسخة من القيمة العددية 2". تنسخ القيمة (اليمنى) في موقع تخزين مخصص بحيث يكون اسم المتغير (الأيسر) هو العنوان الرمزي. الذاكرة المخصصة للمتغير كبيرة بما يكفي (من المحتمل أن تكون كبيرة جدًا) للنوع المعلن. في أبسط حالة لمساواة بايثون، وإذا فمنا بنفس العملية في بايثون، (أي x = 2)، يترجم إلى "اسم (عام(generic)) x يتلقى مرجعًا إلى كائن منفصل مخصص ديناميكيًا من النوع العددي عدد صحيح (int) ذو القيمة 2." هذا يسمى ربط الاسم بالكائن (binding) . نظرًا لأن موقع تخزين الاسم لا يحتوي على القيمة المشار إليها، فمن غير المناسب تسميته متغيرًا. قد يتم إعادة الأسماء لاحقًا في أي وقت إلى كائنات من أنواع مختلفة اختلافًا كبيرًا، بما في ذلك السلاسل النصية strings والإجراءات والكائنات المعقدة مع البيانات والطرق، إلخ. التعيينات (مساواة) المتتالية لقيمة مشتركة لأسماء متعددة، على سبيل المثال، x = 2؛ y = 2؛ z = 2 ينتج عن تخصيص مساحة تخزين (على الأكثر) لثلاثة أسماء وكائن عددي واحد، يتم ربط جميع الأسماء الثلاثة به. نظرًا لأن الاسم هو حامل مرجع عام (generic reference holder)، فمن غير المعقول ربط نوع بيانات ثابت به. ومع ذلك، في وقت معين، سيتم ربط الاسم بكائن ما، والذي سيكون له نوع ؛ وبالتالي هناك كتابة ديناميكية.
  • العبارة اذا if، التي تنفذ كتلة الكود بشكل شرطي (أي لا ينجز إلا إدا توفر هذا الشرط)، الى جانب عبارة عدا ذلكelse و elif اختصاراً لعبارة (عدا ذلك اذا else-if).
  • العبارة من أجلfor، التي تتكرر فوق كائن قابل للتكرار بشكل حلقي، حيث تلتقط كل عنصر في متغير محلي لاستخدامه بواسطة الكتلة البرمجية المرفقة.
  • العبارة طالما while، التي تنفذ الكتلة البرمجية للكود طالما الشرط محقق.
  • العبارة جرّبtry، التي تسمح بالتعامل مع الاستثناءات المرفوعة في مجموعة الكود المرفق والتعامل معها باستثناء except البنود ؛ يضمن أيضًا تشغيل كود التنظيف في الكتلة البرمجية الأخيرة دائمًا بغض النظر عن كيفية خروج الكتلة.
  • العبارة رفع raise تستخدم لرفع استثناء محدد أو إعادة رفع استثناء تم اكتشافه.
  • العبارة class، التي تقوم بتنفيذ كتلة من الكود وتربط مساحة الاسم المحلية الخاصة بها بفئة، لاستخدامها في البرمجة الموجهة للكائنات.
  • العبارة def، التي تحدد دالة أو طريقة.
  • العبارة مع with، من بايثون2.5 التي صدرت في سبتمبر 2006 [63]، والتي ترفق كتلة الكود داخل مدير السياق (على سبيل المثال، الحصول على قفل قبل تشغيل كتلة الكود وإطلاق القفل بعد ذلك، أو فتح ملف ثم إغلاقه)، والسماح لاكتساب الموارد الذي هو سلوك يشبه التهيئة (RAII) ويحل محل العبارة الإصطلاحية محاولة/أخيراً try/finally .[64].
  • العبارة توقفbreak تعني أخرج من الحلقة.
  • العبارة تابعcontinue تتجاوز التكرارية الحالية و تتابع للعنصر التالي.
  • العبارة تجاوز pass، و التي تعمل بمثابة لا عملية. تستعمل عندما هناك حاجة نحويًا لإنشاء كتلة كود فارغة.
  • العبارة التأكيد assert، المستخدمة أثناء تصحيح الأخطاء للتحقق من الشروط التي يجب تطبيقها.
  • العبارة تحصيلyield والتي تعيد قيمة من الدالة المولّدة. بدءاً من بايثون 2.5،yield هي أيضاً عملية. هذا الشكل يستخدم عادةً لتنفيذ الروتينات المساعدة.
  • العبارة استيرادimport، وهي التي تستخدم لاستيراد نماذج التي يمكن استخدام دوالها و متغيراتها في البرنامج الحالي. يوجد ثلاث طرق لاستخدام العبارة استيراد import:
  1. import <module name> [as <alias>]
  2. from <module name> import *
  3. from <module name> import <definition 1> [as <alias 1>], <definition 2> [as <alias 2>], ....
  • العبارة اطبع print و التي تغيرت الى دالة اطبعprint() في بايثون 3.

بايثون لا تدعم التحسين الخاص الاستدعاء الذيلي أو (استمرارية الدرجة الأولى)، كما أعلن ل غايدو فان ؤوسوم أنه لن تدعم أبداً.[65][66].ومع ذلك، يتم توفير دعم أفضل للوظائف الشبيهة بالروتين المساعد في النسخة 2.5، من خلال توسيع مولدات بايثون[67]. قبل نسخة 2.5، كانت المولدات مكررات كسولة، والتي يتم تمرير المعلومات من اتجاه واحد خارج المولد. ابتداء من بايثون 2.5، صار من الممكن تمرير المعلومات مرة أخرى إلى دالة المولد، وبدئاً من بايثون 3.3، صار من الممكن أيضا تمرير المعلومات من خلال تعدد مستويات المكدس.[68]

تعبيرات[عدل]

بعض تعبيرات بايثون تشبه لغات مثل سي و جافا، بينما البعض الآخر لا:

  • الجمع والطرح والضرب في بايثون مماثلة مع جافا وسي، ولكن سلوك القسمة يختلف. هناك نوعان من التقسيمات في بايثون: التقسيم الكامل (أو تقسيم العدد الصحيح) // و تقسيم الفاصلة ا(لعائمة) /.[69] أضافت بايثون أيضًا العامل ** من أجل الأس.
  • ابتدءاً من بايثون 3.5، أستحدث عامل جديد @، لغرض استخدامه من قبل المكتبات مثل نمباي لضرب المصفوفات.[70][71]
  • ابتدءاً من بايثون 3.8، أُدرج العامل التالي:=، الذي يطلق عليه "عامل الفظّ"'walrus operator' . يقوم بتعيين القيم للمتغيرات كجزء من تعبير أكبر.[72]
  • في بايثون == تقارن الأعداد من حيث القيمة (-0.0==0.0 هي true )، بالمقابل في جافا تقارن عدديا بالقيمة[73] أو الكائنات بالعنوان المرجعي [74] . (من الممكن في جافا مقارنة القيمة بالكائنات عن طريق طريقة ()equals). معامل بايثون is يستخدم ليقارن هوية الكائنات (أي المقارنة بالعنوان المرجعي). في بايثون، المقارنات يمكن تقييدها، على سبيل المثالa <= b <= c.
  • بايثون تستخدم الكلمات and, or, not للعمليات البوليانية بدل من الرموز &&, ||, ! المستخدمة في جافا و لغة سي.
  • بايثون لديها نوع من التعبيرات تحت مصطلح اشتمال قائمة. مدّت بايثون 2.4 قائمة الإدراك بتعبير أكثر شمولية أي تعبير المولّد.[50]
  • الدوال المجهولة تنفذ باستخدام تعبير لامبدا؛ ولكنها محددة؛ وفي جسمها البرمجي يمكن أن يتواجد تعبير واحد.
  • التعبيرات الشرطية في بايثون مكتوبة كالتالي x if c else y[75] (يختلف عن بقية اللغات الأخرى في ترتيب المعاملات من المعامل الشائع c ? x : y عن بقية اللغات المختلفة).
  • تميز بايثون بين القوائم و التعديدات (tuples). القوائم مكتوبة كـ [1, 2, 3]، قابلة للتغيير، ولا يمكن استخدامها كمفاتيح القواميس (مفاتيح القاموس غير قابلة للتغيير في بايثون). أما التعديدات: (1, 2, 3)، فهي غير قابلة للتغيير وبالتالي يمكن استخدامها كمفاتيح القواميس، شريطة أن تكون جميع عناصر التعديد غير قابلة للتغيير. يمكن استخدام عامل + لسَلسَّلة لتعديدتان، والتي لا تُعدل محتوياتها بشكل مباشر، بل تنتج تعديدة جديدة تحتوي على عناصر التعديدتين المقدمة. وبالتالي، بالنظر إلى المتغير t الذي يساوي مبدئيًا (1, 2, 3),، فإن إجراء t = t + (4, 5)يقيِّم أولاً t + (4, 5)، والذي ينتج (1, 2, 3, 4, 5)، والتي تعين بعد ذلك إلى t، وبالتالي "تعديل محتويات"t بشكل فعال، مع التوافق مع الطبيعة الثابتة لكائنات التعديدة. ويجدر العلم إلى أن الأقواس اختيارية لمجموعة التعديدات في سياقات لا لبس فيها.[76]
  • تتميز بايثون بتفريغ تسلسل حيث يتربط تعبيرات متعددة، كل منها يتم تقيم إلى أي شيء يمكن تعيينه إلى (متغير، خاصية قابلة للكتابة، إلخ.)، بطريقة مماثلة لتلك التي تشكل حرفيات التعديدات، وبشكل عام، يتم وضعها على الجانب الأيسر من علامة المساواة في عبارة المساواة. تتوقع العبارة وجود كائن قابل للتكرار على الجانب الأيمن من علامة المساواة ينتج نفس عدد القيم التي تحتوي عليها التعبيرات القابلة للكتابة عند تكرارها من خلاله، وسوف تتكرر من خلاله، مع تعيين كل من القيم المنتجة للتعبير المقابلة على اليسار.[77]
  • بايثون لديها عامل % "لتنسيق سلسلة نصية". هذه الوظيفة مشابهة للتنسيق الخاص بالسلسلة النصية printf في لغة سي، على سبيل المثال؛ "spam=%s eggs=%d" % ("blah", 2) تقيّم ك"spam=blah eggs=2". في بايثون 3 و2.6+ استكمل هذا بواسطة طريقة format() الخاصة ب الصنف str على سبيل المثال "spam={0} eggs={1}".format("blah", 2). بايثون 3.6 أضافت"f-strings" التالي:blah = "blah"; eggs = 2; f'spam={blah} eggs={eggs}'.[78]
  • بايثون لديها حرفيات السلاسل النصية متنوعة:
    • سلاسل محددة بعلامات اقتباس مفردة أو مزدوجة. على عكس شل يونكس، وبيرل و اللغات المتأثرة ب ب حيث تعمل علامات الاقتباس المفردة وعلامات الاقتباس المزدوجة بشكل متماثل وظيفياً. يستخدم كلا النوعين من الخط المائل (\) رمزًا للهروب. أصبح استكمال السلسلة النصية متاحًا في بايثون 3.6 كـ " سلسلة منسقة حرفياً".
    • سلاسل نصية بعلامات اقتباس ثلاثية، التي تبدأ وتنتهي بسلسلة من ثلاث علامات اقتباس مفردة أو مزدوجة. قد تمتد على عدة أسطر وتعمل مثل توثيقات هير الموجود في شيل و بيرل و روبي.
    • تشكيلة السلسلة النصية الخام، يُشار إليها بادئة السلسلة الحرفية بحرف r. لا يفسر تسلسل الهروب. ومن ثم تكون السلاسل النصية الأولية مفيدة عندما تكون الخطوط المائلة العكسية الحرفية شائعة، مثل التعبيرات النمطية والمسارات بنمط ويندوز. بالمقارنة مع "اقتباس-@" (@-quoting) في سي شارب.
  • لدى اقتباس بايثون quotPython تعبيرات فهرس مصفوفة شرائح المصفوفة (array slicing) في القوائم، يُشار إليها على أنها [مفتاح] a[key],أو [بداية: توقف]a[start:stop] أو [بداية: توقف: خطوة]a[start:stop:step]. الفهارس ذات أساس صفري، والفهارس السلبية تتعلق بالنهاية. تأخذ الشرائح العناصر من فهرس البداية حتى فهرس التوقف، ولكن لا تتضمنه. تسمح معلمة الشريحة الثالثة، المسماة خطوة أو مرحلة، بتخطي العناصر وعكسها. قد تهمل فهارس الشرائح، على سبيل المثال، تُرجع a[:]نسخة من القائمة بالكامل. كل عنصر في الشريحة هو نسخة ضحلة.
  • في بايثون، يفرض تمييز صارم بين التعبيرات والعبارات، على عكس اللغات مثل ليسب الشائع Common Lisp أو سكيم أو روبي. هذا يؤدي إلى تكرار بعض الوظائف. فمثلا:
    • اشتمال قائمة مقابل حلقة لأجل for-loops.
    • العبارات الشرطية مقابل كتل اذا if البرمجية.
    • ال ()eval مقابل ()exec دوال المرفقة (في ب ايثون 2،exec هي عبارة برمجية) الأول للتعبيرات، والثاني للعبارات البرمجية.

لا يمكن أن تكون العبارات جزءًا من تعبير، ل ذلك لا يمكن أن تحتوي القائمة وغيرها من الاشتمالات أو تعبيرات لامبدا (تعتبر كلها تعبيرات) على عبارات. وتبقى هناك حالة استثنائية تتمثل في أن عبارة المساواة (التعيين) مثل a = 1 لا يمكن أن تكون جزءًا من التعبير الشرطي لعبارة شرطية. وهذا يفيد في تجنب خطأ لغة سي الكلاسيكي عن غلطة في عامل التعيين = لعامل المساواة == في الشروط: إذا كان (c = 1) {...} : { ... }if (c = 1) صالحًا من الناحية النحوية (ولكن غالبا هو غير مقصود) كشيفرة (كود) لغة سي بالمقابل ...:if c = 1 يسبب خطأً نحوياً في بايثون.

الطرق[عدل]

الطرق المطبقة على الكائنات هي دوال مرتبطة بصنف الكائن. نحوياً تمثيل.طريقة (قيمة)instance.method(argument). للطرق العادية و التجميل اللغوي للدوال من أجل صنف.طريقة (مثيل,قيمة)Class.method(instance, argument). طرق بايثون لديها معلمة صريحة ذات self للوصول لبيانات المثيل، على النقيض من الذات الضمنية self (أو هذه this) في بعض لغات البرمجة الأخرى (مثل سي++ أو جافا أو سي-الكائنية أو روبي). [79]

التنويع[عدل]

النوع القياسي في بايثون 3

تستخدم بايثون تنويع البط و لديها نوع للكائنات ولكن ليس لديها نوع لأسماء المتغيرات. لا يتحقق من قيود النوع في وقت التجميع؛ بدلاً من ذلك، قد تفشل العمليات على كائن ما ، مما يدل على أن الكائن المحدد ليس من النوع المناسب. على الرغم من تنويعها بشكل ديناميكي ، بايثون منوعة بقوة، مما يمنع العمليات غير المعرّفة جيدًا (على سبيل المثال ، إضافة رقم إلى سلسلة نصية) بدلاً من محاولة فهمها بشكل صامت.

تسمح بايثون للمبرمجين بتحديد أنواعهم الخاصة باستخدام الأصناف، والتي غالبًا ما تستخدم في البرمجة الكائنية. تنشأ مثيلات جديدة الأصناف عن طريق استدعاء الصنف (على سبيل المثال ، ()SpamClass أو()EggsClass) ، الأصناف هي مثيلات من نوع صنف علوي (نفسها مثيل لنفسها) ، مما يسمح بالبرمجة الوصفية والانعكاس.

قبل الإصدار 3.0 ، كان لدى بايثون نوعين من الأصناف: الطراز القديم والأسلوب الجديد[80].النحو لكلا الأسلوبين هو نفسه ، والفرق هو ما إذا كان كائن object الصنف موروثًا، بشكل مباشر أو غير مباشر (جميع الأصناف من النمط الجديد ترث من الكائن object وهي مثيلات من النوع type). في إصدارات بايثون 2 من بايثون 2.2 وما بعده ، يمكن استخدام كلا النوعين من الأصناف. أزل المطورون أصناف الطراز القديم في بايثون 3.0.

الخطة طويلة المدى هي دعم التنويع التدريجي [81] بدءاً من بايثون 3.5 ، تسمح اللغة نحوياً بتحديد أنواع ثابتة ولكن لا يتم التحقق منها في التنفيذ الافتراضي، سي بايثون. يدعم المدقق التجريبي للنوع الثابت والمسمى mypy التحقق من النوع في وقت التجميع.[82]

ملخص الأنواع المدمجة في بايثون 3
نوع قابلية التغيير وصف مثال نحوي
bool غير قابل للتغيير قيمة بوليانية True
False
bytearray قابل للتغيير سلسلة من البايتات bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
bytes غير قابل للتغيير سلسلة من البايتات b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])
complex غير قابل للتغيير عدد معقد مكون من قسم للأعداد الحقيقية و قسم للأعداد الخيالية 3+2.7j
dict قابل للتغيير مصفوفة (أو قاموس) ترابطية لأزواج المفتاح والقيمة ؛ من الممكن أن تحتوي على أنواع مختلطة (مفاتيح وقيم) ، يجب أن تكون المفاتيح من النوع القابل للتجزئة (hashable) {'key1': 1.0, 3: False}
{}
ellipsisa غير قابل للتغيير عامل قطع ناقص نائب حامل المكان (An ellipsis placeholder) تستخدم كفهرس في مصفوفات نمباي ...
Ellipsis
float غير قابل للتغيير عدد ذو فاصلة دقيقة (Double precision floating point). تعتمد الدقة على الآلة ولكن في الممارسة تنفذ بشكل عام كرقم 64-بت معIEEE 754 53 بت من الدقة [83]

1.414
math.pi
-math.inf
math.nan

frozenset غير قابل للتغيير مجموعة set غير مرتبة ، لا تحتوي على تكرارات؛ يمكن أن تحتوي على أنواع مختلطة ، إذا كانت قابلة للحمل (hashable) frozenset([4.0, 'string', True])
int غير قابل للتغيير عدد صحيح غير محدود الحجم[84] 42
list قابل للتغيير قائمة ، يمكن أن يحتوي أنواع مختلطة [4.0, 'string', True]
[]
NoneTypea غير قابل للتغيير كائن يمثل عدم وجود قيمة، يطلق عليها غالبًا الصفر (Null بلغات أخرى) None
NotImplementedTypea غير قابل للتغيير حامل مكان يمكن إرجاعه من عوامل التحميل الزائد للإشارة إلى أنواع المعالجات غير المعتمدة. NotImplemented
range غير قابل للتغيير سلسلة من الأرقام شائعة الاستخدام للتكرار الحلقي عدداً معيناً في الحلقات [85] range(1, 10)
range(10, -5, -2)
set قابل للتغيير مجموعة غير مرتبة، لا تحتوي على نسخ مزدوجة، يمكن أن تحتوي على أنواع مختلطة، اذا كانت قابلة للحمل (hashable) {4.0, 'string', True}
set()
str غير قابل للتغيير حرف سلسة نصية: سلسلة من نقاط لشيفرة خاصة بيونيكود 'Wikipedia'
"Wikipedia"
"""Spanning
multiple
lines"""
tuple غير قابل للتغيير يمكن أن يتحتوي على عناصر مختلطة (4.0, 'string', True)
('single element',)
()

^a غير قابل للوصول بشكل مباشر عن طريق الاسم

رياضيات[عدل]

لدى بايثون الرموز المعتادة للمعاملات الحسابية (+، -، *، /عامل التقسيم المكمل لأسفل // وعامل التقسيم مع باقي % (حيث يمكن أن يكون الباقي سالبًا، على سبيل المثال 4% -3 ==-2 ). واللغة لديها أيضًا العامل ** للرفع الأسي، على سبيل المثال 3**5 == 125 و 0.5**9 == 3.0، وعامل ضرب المصفوفة @[86] . تعمل هذه المعاملات الحسابية كما هو الحال في الرياضيات التقليدية ؛ باستخدام نفس قواعد ترتيب العمليات الحسابية، يمكن أن يكون العامل ترميزاً ضمنياً (أيضاً يمكن أن يكون الرمزان + و - أحاديين لتمثيل الأرقام الموجبة والسالبة على التوالي).

ينتج عن القسمة بين الأعداد نتائج ذات فاصلة عائمة. تغيّر سلوك القسمة في بايثون بشكل كبير بمرور الوقت:[87]

  • بايثون 2.1 والإصدارات السابقة استخدموا للقسمة سلوكاً شبيهاً بالقسمة في سي. عامل / هو عامل قسمة عدد صحيح إذا كان كلا المعاملين عددين صحيحين و خلاف ذلك قسمة بفاصلة عائمة. التقسيم للأعداد الصحيحة يقرب نحو 0 ، على سبيل المثال 7/3 == 2 و 7/3- == 2-.
  • في بايثون 2.2 تغير أسلوب القسمة مرة أخرى إلى التقريب نحو اللانهاية السلبية، على سبيل المثال 7/3 == 2 و 7/3- == 3-. أدخل عامل تقسيم المكمل لأسفل//. لذا 3//7== 2, 3 //7-== 3-, 3// 7.5== 2.0 و 3//7.5- == 3.0-. تؤدي إضافة from __future__ import division إلى أن يستخدم النموذج (module) قواعد بايثون 3.0 للقسمة (انظر أدناه).
  • بايثون 3.0 غير أسلوب القسمة لتصبح قسمة فاصلة عائمة دائمًا ،على سبيل المثال 5/2 == 2.5 .

في مصطلحات بايثون، / هي القسمة الحقيقية (أو ببساطة القسمة)، و // القسمة المكملة لأسفل. ولكن، قبل الإصدار 3.0 كان العامل / يمثل القسمة الكلاسيكية (أي الأقليدية).[87]

التقريب نحو اللانهاية السلبية تضيف الاتساق، على الرغم من اختلافها عن معظم اللغات. على سبيل المثال، المعادلة صحيحة دائمًا. والمعادلة b*(a//b) + a%b == a صالحة لكل من القيم الموجبة والسالبة لـ a . بالمقابل، فإن الحفاظ على صحة هذه المعادلة يعني أنه في حين أن نتيجة a%b هي في المجال نصف المفتوح ، حيث أن b هو عدد صحيح موجب، يجب أن تقع في المجال عندما تكون b سالبة.[88]

يوفر بايثون دالة round لتقريب العدد ذو الفاصلة العائمة إلى أقرب عدد صحيح. لفك التعقيد، يستخدم بايثون 3 التقريب لعدد زوجي: round(1.5) round(2.5) ناتج كليهما هو 2.[89] أما الإصدارات السابقة فتستخدم تقريبًا بعيدًا عن الصفر: round(0.5) هو 1.0، round(-0.5) هو 1.0−.[90]

تسمح بايثون بالتعبيرات البوليانية بعلاقات المساواة المتعددة بطريقة تتوافق مع الاستخدام العام في الرياضيات. على سبيل المثال: التعبير a < b < c، يتحقق بايثون ما إذا كانت a أصغر من b و b أصغر من c .[91].بعكس اللغات المشتقة من سي التي تفسر هذا التعبير بشكل مختلف: في سي، يقوم التعبير أولاً بتقييم a < b، مما يؤدي إلى 0 أو 1، ثم تتم مقارنة هذه النتيجة مع c.[92]

تستخدم بايثون حساب تدريج الدقة الاعتباطية لجميع العمليات الصحيحة. يوفر الصنف (أو النوع) Decimal في نموذج decimal أعداد عشرية بفاصلة عائمة وبدقة اعتباطية محددة مسبقاً والعديد من وسائل التقريب.[93] ويوفر صنف Fraction في نموذج fractions الدقة الاعتباطية للأعداد الكسرية .[94]

نظرًا لسعة مكتبة بايثون للرياضيات، ومكتبة الطرف الثالث نمباي التي توسع القدرات المحلية بشكل أكبر، استخدمت بايثون بشكل متكرر كلغة نصية علمية للمساعدة في حل عدة مسائل مثل معالجة البيانات العددية والتلاعب.[95][96]

الترميز[عدل]

ابتدءًا من بايثون 2.1 ، لاستخدام أحرف غير ASCII في نص البرنامج ، يجب عليك تحديد ترميز شفرة المصدر بشكل صريح في بداية الوحدة ، على سبيل المثال:

# -*- coding: utf-8 -*-
# أو
# coding: utf-8

ولكن حتى لو اكتفيت بكتابة:

# coding: utf

"سيفهم" بايثون ما تقصد.[97]

الوراثة[عدل]

تدعم بايثون الوراثة المتعددة. ابتداء من النسخة 2.3 تدعم بايثون خوارزمية سي 3، المقتبسة من لغة البرمجة ديلان [98] لحل مشكل ترتيب حل الطريقة. بينما استعملت خوازمية البحث المتعمق الذي يطرح مشاكل في حالة الوراثة الألماسية[99] .

الواجهات الرسومية (GUI)[عدل]

في بايثون يمكن إنشاء واجهة مستخدم رسومية (GUI) بسرعة مع تكينتر (كما هو الحال في لغة بيرل و تي سي إل). يوجد أيضًا مجموعة متنوعة من المغلفات الأخرى التي خدمات آخرى. كما بايثون توفر ارتباطات (bindings) لمجموعات أدوات واجهة المستخدم الرسومية مثل بي.باي جتك و باي كيوت و ويكس بايثون و باي أوبج سي و مجموعة أدوات الضوء السريع (فاست لايت). بالإضافة إلى تيكينتر، يحتوي بايثون أيضا على وحدة للرسم : رسوميات "السلحفاة" (Turtle graphics).

مثال لوحدة تيكينتر[عدل]

import tkinter as tk

window = tk.Tk()
window.geometry("200x100")
label = tk.Label(window, text="مرحباً يا عالم")
label.pack()

def commandW():
    window.destroy()

button = tk.Button(window, text="OK", command=commandW)
button.pack()
مثال بسيط لنافذة تيكنتر

مثال لرسوميات "السلحفاة"[عدل]

import turtle
from turtle import speed, reset, goto

speed(0)
reset()
turtle.x = -200
turtle.y = 200

while turtle.y != -200:
    goto(turtle.x, turtle.y)
    turtle.x = - turtle.x
    turtle.y = - turtle.y
    goto(turtle.x, turtle.y)
    goto(0, 0)
    turtle.y = - turtle.y
    turtle.x = - turtle.x
    turtle.y -= 5
نتيجة الكود السابق

رسوميات أخرى لل"سحلفاة"[عدل]

أمثلة[عدل]

طباعة "مرحباً يا عالم!"[عدل]

مثال طباعة مرحباً يا عالم "Hello World!"
# كود الطباعة في بايثون لاخراج عبارة
print("مرحباً يا عالم")

حساب العمر[عدل]

مثال لحساب العمر:

from datetime import * #استدعاء الكل* من مكتبة الوقت والتاريخ

dob = int(input("أدخل تاريخ الميلاد: ")) #يُطلب من المستخدم إدخال تاريخ ميلاده
# العمل على المعطيات
today = datetime.today()
year = today.year
age = int(year) - int(dob)
# طباعة عمر المستخدم
print ("{age}:عمرك هو")

استخراج العدد العاملي[عدل]

مثال لاستخراج العدد العاملي:

# جرب هذا الكود في بايثون 3.4.3

def Factorial(num):
    new_num = 1
    for count in range(num،1،-1):
        new_num *= count # ضرب النتيجة  بالمحسوب
    return new_num
limit = 9
for n in range(0,limit+1):
    print(n،'! = ' ،Factorial(n)،sep='')
# بعد إدخال الكود ستحصل على:
# 
# 0! = 1
# 1! = 1
# 2! = 2
# 3! = 6
# 4! = 24
# 5! = 120
# 6! = 720
# 7! = 5040
# 8! = 40320
# 9! = 362880

تكرار طباعة كلمة 5 مرات[عدل]

مثال لتكرار طباعه كلمة 5 مرات:

n = input(':الرجاء ادخال كلمة')
print str(n) * 5

ملاحظة لبايثون 2 استعمل raw_input.

خوارزمية الترتيب السريع[عدل]

كمثال غير بديهي يمكن اعتبار خوارزمية الترتيب السريع كمثال مختصر كالتالي:

def quicksort(list):
    if len(list) <= 1:
        return list

    pivotelement = list.pop()
    left  = [element for element in list if element < pivotelement]
    right = [element for element in list if element >= pivotelement]

    return quicksort(left) + [pivotelement] + quicksort(right)
على وجه الخصوص،هنا، يتيح تدوين القائمة للمتغيرات على اليسار واليمين تمثيلًا مضغوطًا. للمقارنة، صياغة تكرارية لهذين الخطين:
...
    left, right = [], []          # انشاء قوائم فارغة لليمين و اليسار
    pivotelement = list.pop()      # أخر عنصر في القائمة تاخذه كعنوان مرجعي
    for element in list:           # تكرار على العناصر المتبقية في القائمة ...
        if element < pivotelement:  #و مقارنة العنصر المحوري Pivot-Element
            left.append(element)   # اذا كان اصغر،علق القائمة اليسرى
        else:
            right.append(element)  # عدا ذلك، اذا لم يمكن اصغر، علّق القائمة اليمنى
...

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

المكتبات[عدل]

توفر بايثون العديد من المكتبات البرمجية الملحقة

يعتبر الكثيرون مكتبة بايثون القياسية الكبيرة واحدة من أعظم نقاط قوة بايثون،[100] نظرا لتوفيرها أدوات تناسب العديد من المهام. كما تدعم المكتبة العديد من التنسيقات والبروتوكولات القياسية مثل امتداد البريد الإلكتروني متعدد الأغراض (MIME) و بروتوكول نقل النص الفائق (HTTP) الخاصة بتطوير تطبيقات الويب، وتدعم أيضا وحدات لإنشاء واجهات المستخدم الرسومية، والاتصال بقواعد البيانات العلائقية، وتوليد أرقام شبه عشوائية، والحساب العشري بدقة اعتباطية [101] والمعالجة بالتعبيرات النمطية، وكذا اختبار الوحدة.

بعض أجزاء المكتبة القياسية تشمل الكثير من المميزات (على سبيل المثال ، تنفيذ واجهة بوابة خادم الويب (WSGI) wsgiref يتبع PEP 333[102])، ولكن أغلب الوحدات لا تحتوي على مميزات، وتتميز عن الوحدات الأخرى من خلال التعليمات البرمجية و التوثيق الداخلي و تراكيب الاختبار. بالمقابل، فإن عددًا قليلاً فقط من الوحدات يحتاج إلى تعديل أو إعادة كتابة لعمليات التنفيذ المختلفة، نظرًا لأن معظم المكتبة القياسية هي كود بايثون متعدد المنصات.

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

ابتداء من نوفمبر 2019 ، يحتوي مؤشر حزمة بايثون باي باي (بالإنجليزية: Python Package Index)‏ (PyPI)، وهو المستودع الرسمي لبرامج بايثون التابعة لجهات خارجية، على أكثر من 200،000 [103] حزمة مع مجموعة واسعة من الميزات، بما في ذلك:

التطوير[عدل]

خط زمني لإصدارات بايثون

يستعين المطورون لتطوير بايثون بشكل كبير بعملية اقتراح تحسين بايثون (PEP)، وهي الآلية الأساسية لاقتراح ميزات جديدة رئيسية، واستطلاع آراء المجتمع حول القضايا وقرارات تصميم بايثون.[106] كما يغطي نمط ترميز بايثون في PEP 8.[107] ويقوم مجتمع بايثون والمجلس التوجيهي بمراجعة الإقتراحات والتعليق عليها.[106]

يتوافق تعزيز وتحسين اللغة مع تطوير التنفيذ المرجعي سي بايثون. القائمة البريدية بيثون ديف (python-dev) هي المنتدى الأساسي لتطوير اللغة. وتُناقش حالات محددة في نظام تتبع للعلل راوند آب [الإنجليزية] المستضاف في bugs.python.org .[108] في الأصل، جرى تطوير شيفرة بايثون البرمجية في مستودع ذاتية الاستضافة [الإنجليزية] بتشغيل ميركوريال، حتى يناير 2017، حيث انتقل بايثون إلى غيت هاب .[109]

هناك ثلاثة أنواع للإصدارات العامة الجديدة لسي بايثون، ويتميز كل نوع بزيادة جزء من رقم الإصدار:

  • إصدارات غير متوافقة مع الإصدارات السابقة، حيث يُتوقع كسر الكود مما يجبر المستخدم أن يُحمّل يدويًا. يزيد تعداد الجزء الأول من رقم الإصدار. تحدث هذه الإصدارات بشكل غير دوري، فعلى سبيل المثال، أُصدر الإصدار 3.0 بعد 8 سنوات من 2.0.
  • الإصدارات الرئيسية أو "المميزة" ،تصدر كل 18 شهرًا تقريبًا ، متوافقة إلى حد كبير ولكنها تقدم ميزات جديدة. يزيد تعداد الجزء الثاني من رقم الإصدار. كل نسخة رئيسية مدعومة بإصلاحات أخطاء لعدة سنوات بعد إصدارها.[110]
  • تُنشر إصدارات Bugfix،[111] التي لا تقدم ميزات جديدة، كل 3 أشهر تقريبًا وعند إصلاح عدد كاف من الأخطاء في المصدر منذ الإصدار الأخير. كما تُصحح الثغرات الأمنية في هذه الإصدارات. يزيد تعداد الجزء الثالث والأخير من رقم الإصدار.

أُعلن عن بايثون 3.9 ألفا1 في نوفمبر 2019[112] ومع اعتماد مقياس جديد يتمثل في إصدار سنوي،[113] ثم أعلن الإصدار الأول من 3.9 سيصدر في نوفمبر 2020.[114]

تُصدر أيضًا العديد من النسخ بصيغة ألفا وبيتا والنسخ المرشحة كمعاينات واختبارات قبل الإصدارات النهائية. على الرغم من وجود جدول تقريبي لكل إصدار، إلا أنه غالبًا ما يتأخر في الصدور إذا لم يكن الكود جاهزًا. يراقب فريق تطوير بايثون حالة الكود من خلال تشغيل مجموعة اختبارات للوحدة الكبيرة أثناء التطوير ، واستخدام نظام BuildBot للتركيب المتواصل.[115]

صورة لمؤتمر باي لايدي

المؤتمر الأكاديمي الرئيسي حول بايثون هو باي كون. هناك أيضًا برامج توجيه خاصة للبايثون، مثل باي ليديز.

بيئات التطوير[عدل]

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

تضيف القشور (Shells) الأخرى، بما في ذلك IDLE و آي يايثون، قدرات إضافية مثل الإكمال التلقائي المحسّن والاحتفاظ بحالة الجلسة وتعليم الصيغة .

بالإضافة إلى بيئات التطوير المتكاملة القياسية لسطح المكتب، هناك بيئات تطوير متكاملة مستندة إلى متصفحات ويب ؛ سايج مات (مخصص لتطوير برمجيات بايثون العلمية والرياضية) ؛ بايثون في أي مكان، بيئة تطوير واستضافة تستند إلى متصفح ويب ؛ و بيئة تطوير كانوبي المتكاملة، وهو بيئة تطوير متكاملة تجارية لبايثون ترتكز على الحوسبة العلمية .[116]

التنفيذات[عدل]

تنفيذ العنوان المرجعي[عدل]

سي بايثون، التنفيذ المرجعي لبايثون، مكتوب بسي ، يلبي معيار سي 89 مع العديد من ميزات سي 99 المحددة[117]. يقوم بتجميع برامج بايثون في كود بايت متوسط[118] ينفذ بعد ذلك بواسطة آلتها الافتراضية.[119] يوزع سي بايثون مع مكتبة قياسية كبيرة مكتوبة في مزيج من سي ،و بايثون. والمكتبة متاحة للعديد من المنصات، بما في ذلك ويندوز (فيستا والإصدارات الأحدث ؛ نظام التشغيل ويندوز اكس بي والإصدارات الأقدم ، ولكن بايثون 2.7 غير مدعوم حتى الآن ومعظم الأنظمة الشبيهة بيونيكس الحديثة). في فترة بايثون 1 و 2، كانت قابلية المنصة واحدة من أولى أولوياتها،[120] ، حيث كانت تدعم حتى في إم إس و أو إس/2 ، ولكن حاليا، انخفض الدعم للعديد من المنصات.

تنفيذات أخرى[عدل]

باي باي هو تنفيذ سريع، يوفر ترجمة في الوقت المناسب، متوافق مع بايثون 2.7 وبايثون 3.6.[121] وهو أسرع من سي بايثون بالمقابل، فهو لا يدعم العديد من المكتبات المكتوبة بلغة ببايثون.[122][123]

ستاكليس بايثون،انشقاق معروف لسي بايثون، ينفذ الخيوط الدقيقة دون استعمال رصة ذاكرة سي. مما يسمح بالبرامج المتزامنة بنطاق واسع.[124]

مايكروبايثون وسيركويت بايثون هي متغيرات لبايثون 3 محسنة للتحكم الدقيق وهذا يشمل ليجو مايندستورمز اي في 3.[125]

تنفيذات غير مدعومة[عدل]

طورت برامج تجميع بايثون آنية أخرى، ولكنها الآن غير مدعومة:

  • سنة 2009، بدأت جوجل مشروعًا باسم أنلادين سوالو ، بهدف تسريع مترجم بايثون خمسة أضعاف باستخدام إل إل في إم ، وتحسين قدرته على تعدد الخيوط البرمجية مع آلاف النوى ،[126] بينما تعاني التنفيذات العادية من قفل المترجم العالمي.
  • كان سايكو، مجمّع آنيّ متكامل مع سي بايثون ويحول "بايت كود" الى كود الآلة في وقت التشغيل. الكود المنبعث مخصص لأنواع معينة من البيانات وهو أسرع من كود بايثون القياسي.
  • في عام 2005 ، أصدرت نوكيا مفسر بايثون للهواتف المحمولة سلسلة 60 المسمى بايثون أس60. يتضمن العديد من النماذج من تنفيذات سي بايثون وبعض النماذج الإضافية للتكامل مع نظام التشغيل سيمبيان. حدث المشروع ليشغل على جميع متغيرات منصات S60 ، وتتوفر العديد من النماذج مدعومة من طرف ثالث. يدعم نوكيا N900 أيضًا بايثون مع مكتبات أدوات جتك+ ، مما يتيح كتابة البرامج وتشغيلها على الجهاز المستهدف. [127]

المحولات البرمجية إلى لغات أخرى[عدل]

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

الأداء[عدل]

قورن أداء مختلف تنفيذات بايثون على عبء عمل غير عددي (التوافيقية) في أورو سي باي 13. [133] ثم قيس أداء بايثون مقارنة بلغات البرمجة الأخرى من خلال لعبة معايير لغة الكمبيوتر. [134]

تسمية[عدل]

اسم بايثون مشتق من الفرقة الكوميدية البرطانية مونتي بايثون التي تمتع مؤسس بايثون جيدو فان روسوم بمشاهدة عروضها بينما كان يطور اللغة. تظهر مونتي بايثون من حين لآخر في شيفرة بايثون البرمجية(كود) وثقافتها[135]. على سبيل المثال لا الحصر، سبام وبيض هي المتغيرات ماوراء البنية الأكثر شيوعا في أدب بايثون على خلاف اللغات البرمجية الأخرى التي تستخدم فو وبار التقليدية[135][136]. يلاحظ أيضا أن وثائق بايثون الرسمية تحيل إلى روتين مونتي بايثون.[137][138]

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

مولدات وثائق واجهة برمجة التطبيقات[عدل]

تتضمن مولدات واجهة برمجة التطبيقات (API) مايلي:

استخدامات[عدل]

منذ 2003، صنفت بايثون كأكثر عشر لغات برمجية شعبية في فهرس تيوبي للغات البرمجة الأكثر شعبية، وفي فبراير 2020 صنفت في المرتبة الثالثة ( أي بعد جافا وسي) [143] . صنفت أيضا كلغة برمجة العام لسنة 2007، 2010 و2018.[144]

توصلت دراسة تجريبية أن لغات البرمجة النصية، مثل بايثون، هي أكثر إنتاجية من اللغات التقليدية، مثل سي و جافا، لحل مشكلات البرمجة مثل التحكم بالسلسلة والبحث في القاموس، وخلصت إلى أن استهلاك الذاكرة غالبًا "أفضل من جافا وليس أسوأ بكثير من سي أو سي++ ".[145]

تستخدم منظمات كبيرة بايثون كويكيبيديا، جوجل[146]، ياهو! [147]، سيرن [148]، ناسا [149]، فيسبوك [150]، أمازون، إنستغرام [151]، سبوتيفاي [152] وأيضا بعض الشركات الصغيرة إندستريال لايت آند ماجيك [153] وإيتا للبرمجيات [154] . كما أن شبكة التواصل الاجتماعي ريديت مكتوبة كليا ببايثون.[155]

يمكن استخدام بايثون كلغة برمجة نصية لتطبيقات الويب، مثال : عبر mod wsgi لخادم ويب أباتشي [156]. باستعمال واجهة بوابة خادم الويب، تطورت واجهة برمجة التطبيقات القياسية لتسهيل برمجة هذه التطبيقات. تدعم المنصات البرمجية لتطبيقات الويب مثل جانغو، باي لونز، بيراميد، توربو جيرز، ويب-تو-باي، تورنادو، فلاسك، بوتل وزوب المطورين في تصميم وصيانة التطبيقات المعقدة. يمكن استخدام باي جس وآيرن بايثون لتطوير جانب العميل من التطبيقات القائمة على أجاكس. يمكن استخدام إس كيو إل إم كيمياء كمحدد للبيانات العلائقية. تويستد هو إطار عمل يبرمج التواصل بين أجهزة الحاسوب لذا استعمل في دروب بوكس.

المكتبات البرمجية كنمباي وسي باي ومات بلوت ليب تسمح باستعمال بايثون في الحوسبة العلمية [157][158] . إضافة إلى بايو بايثون وأستروباي اللتان توفران خدمات متخصصة. سايج مات هي برمجية رياضية بواجهة على شكل مفكرة قابلة للبرمجة ببايثون: تشمل أغلب مجالات الرياضيات، كالجبر، والتركيبات، والتحليل العددي، ونظرية الأعداد والتفاضل والتكامل.[159]

تمكنت بايثون من أن تصير جزءا لا يتجزأ من أغلب البرمجيات كلغة برمجة نصية، وتشمل برمجيات طريقة العناصر المنتهية مثل أباكوس، برمجية للتصميم الحدودي ثلاثي الأبعاد، ومثل فري كاد، حزم رسوم متحركة كثري دي إس ماكس، وبلندر، وسينما فور دي، ولايت وايف، وهوديني، ومايا، ومودو، أوتودسك موسيون بولدير، وسوفت إيماج إكس إس آي، وبرنامج الخدع البصرية نوك، برامج معالجة الصور ثنائي الأبعاد كبرنامج جنو لمعالجة الصور [160]، وإنكسكايب، سكريبوس، بينت شوب برو [161]، وبرامج التدوين الموسيقي ككابيلا. ستعمل مصحح جنو بايثون كبرتي برنت لإظهار الهياكل المعقدة كحاويات سي++. تروج إسري لبايثون كأفضل خيار لكتابة سكربتات آركجيس [162] . كما استعملت في العديد من ألعاب الفيديو [163][164] واعتمدت كأول لغة برمجة متوفرة في محرك تطبيقات جوجل، يأتي بعدها جافا وجو.[165]

تستخدم بايثون غالبا في مشاريع الذكاء الصناعي ومشاريع تعليم الآلة بمساعدة كل من المكتبات مثل تنسرفلو، كيراس، باي تورش، سيكت-لورنين [166][167][168][169] . نظرا لأنها لغة برمجية نصية تدعم البرمجة التركيبية، بنحو بسيط، بأدوات معالجة نصية غنية، غالبًا ما تستخدم بايثون لمعالجة اللغات الطبيعية.[170]

بايثون في نظام تشغيل أوبنتو

كما أنها مضمنة في أنظمة التشغيل المختلفة مثل أغلب توزيعات لينكس [171]، أميغا أو إس 4 ( يستعمل بايثون 2.7 )، فري بي إس دي (كحزمة)، نت بي إس دي، أوبن بي إس دي (كحزمة) وماك أو إس ويمكن استعمال بايثون على هذه الأنظمة على سطر الأوامر. العديد من إصظارات لينكس تستعمل مثبثي برامج مكتوبون ببايثون : أوبنتو تستعمل أوبكويتي،ريدهات لينكس وفيدورا يستعملان مثبث أناكوندا. أما جنتو لينكس فتستعمل بايثون في نظام إدارة حزمها، بورتاج.

تستخدم بايثون بكثافة في صناعة أمن المعلومات، بما في ذلك التحكم بالاستغلال وتطويره.[172][173]

البيانات الضخمة، بسبب قدرة بايثون على التعامل مع البيانات بشكل سلس و تحليلها و وجود العديد من المكتبات المختصة في هذا المجال مثل باندا فتعد بايثون خيار ممتاز للعاملين في هذا المجال.[174]

أغلب برمجيات شوجر لحاسوب محمول لكل طفل XO، المطورة الآن في شوجر لابز، مكتوبة ببايثون [175] . اعتمدت حواسيب رسبري باي أحادية اللوحة بايثون لغة برمجة رئيسية للمستخدم.

ليبر أوفيس مكتوب جزئيا ببايثون، ويعتزم تعويض جافا ببايثون. منذ إصدار الإصدار الرابع في 3 سبتمبر 2017، صار موفر البرمجة النصية لبايثون ميزة أساسية للبرنامج [176] .

في حواسيب الرقاقة الواحدة راسباري باي (مفسر بايثون) يجب في الأصل أن يكون مفسّر بذاكرة قراءة-فقط بايثون المدمج،[177] حتى اليوم، تعد بايثون واحدة من أكثر اللغات المفضلة لـ راسباري باي، ويأتي نظام التشغيل القياسي راسبيان مع مكتبة بايثون كبيرة للتحكم في الأجهزة.[ِ 2]

تشغيل برنامج مكتوب بلغة بايثون[عدل]

بما أن لغة بايثون نصية، فإنه يتوجب وجود مفسر للغة لتشغيل البرنامج، وللحصول عليه، يكفي تنزيله من موقع لغة بايثون وذلك حسب نظام التشغيل[178] يستلزم وجود محرر نصوص لكتابة برنامج بايثون حيث يُحفظ الملف بلاحقة py. بعد ذلك ادخل على سطر الأوامر واكتب:

>> python program.py

بحيث program اسم الملف، وللتعامل مباشرة مع محث لغة بايثون، اكتب في سطر الأوامر :


>> py أو >>python

مجتمع بايثون[عدل]

  • من المستحدتاث المألوفة في مجتمع بايثون هو pythonic، والتي لها مجموعة واسعة من المعاني المتعلقة بأسلوب البرنامج. إن القول بأن الشفرة هي pythonic يعني القول أنها تستخدم مصطلحات بايثون بشكل جيد، وأنها طبيعية أو تُظهر طلاقة في اللغة، وأنها تتوافق مع فلسفة بايثون البسيطة والتأكيد على سهولة القراءة. في المقابل، فإن التعليمات البرمجية التي يصعب فهمها أو تقرأ مثل النسخ التقريبي من لغة برمجة أخرى تسمى unpythonic .
  • غالبًا ما يُشار إلى مستخدمي بايثون والمعجبين بها، وخاصة أولئك الذين يعتبرون على دراية أو خبرة بها، باسم بايثونيستاس (Pythonistas).[179][180]

لغات أثرث ببايثون[عدل]

ظهرت بايثون في وقت متأخر نسبيًا ،وبذلك خضعت لتأثير العديد من لغات البرمجة الأخرى ومنها:

  • اي بي سي: نفس مسافة بادئة بايثون، وهياكل بيانات عالية المستوى (خرائط)، (في الواقع صممت بايثون لتصحيح أخطاء برمجة اي بي سي).[181][182][6]
  • مودولا 3: الحزم والوحدات، وكذا try وelseوexept[11]
  • سي[10]،سي++:بعض النحو كما قال جايدو فان روسوم أنه استعمل بعض النحو المتناسق مع سي لكي لا يكره المبرمجون بايثون.[11][181]
  • ليسب، سكيم: ميزات البرمجة الوظيفية ( lambda, map, reduce, filter وغيرها) [17]
  • جافا:الوحدات النمطية[183][16].
  • أيكون: المولدات [15]

لغات البرمجة التي تأثرت ببايثون[عدل]

أثر تصميم وفلسفة بايثون على العديد من لغات البرمجة الأخرى:

  • بوو، يستخدم بوو مسافة بادئة (الإزاحة)، بناء جملة ونموذج كائن مشابه لبايثون.[184]
  • كوبرا، تستخدم مسافة البادئة وبناء الجملة مماثل لبايثون، وتشير في وثيقة شكر وتقدير على أن بايثون يعتبر الأول من بين اللغات التي أثرت عليها.[185]
  • كافي سكريبت، لغة برمجة تتقاطع مع جافا سكريبت، تحتوي أيضا على بنية مستوحاة من بايتون.
  • إيكما سكريبت/جافا سكريبت، استعارت التكرارات والمولدات من بايثون.[186]
  • جي دي سي سكريبت، لغة برمجة تشبه إلى حد بعيد لغة بايثون، مدمجة في محرك لعبة غو دوت.[187]
  • غو، مصمم من أجل «سرعة العمل بلغة ديناميكية مثل بايثون»[188] وتشارك نفس البنية لتقسيم المصفوفات.
  • غروفي، صُممت بدافع الرغبة في جلب فلسفة تصميم البايثون إلى جافا.[189]
  • جوليا، صُممت لتكون "قابلةً للاستخدام للبرمجة العامة مثل بايثون".[190]
  • نيم يستخدم نيم مسافة بادئة (الإزاحة) وبناء جملة مشابه لبايثون [191]
  • روبي، صرح مبتكر روبي، يوكيهيرو ماتسوموتو،: "أردت لغة نصية أقوى من لغة بيرل، وأكثر كائنية التوجه من بايثون. ولهذا السبب قررت تصميم لغتي الخاصة". [192]
  • سويفت، لغة برمجة طورتها شركة آبل، لديها بعض النحو المستوحى من بايثون.[193]

كما قلدت لغات أخرى ممارسات تطوير بايتون. على سبيل المثال، أُستخدمت ممارسة طلب مستند يصف الأساس المنطقي، والقضايا المحيطة بتغيير اللغة (في Python ، PEP) في تي سي إل،[194] إرلانغ،[195] وسويفت.[196]

انتقادات[عدل]

في تعريف الطريقة البرمجية يجب وضع المعلمة ذات (self) التي تتوافق مع مثيل الصنف، التي يتم استدعاء طريقتها، بوضعها بشكل صريح كمعلمة. غالباً يبدو هذا الشكل غير أنيق برمجياً كما أنه ليس برمجة كائنية التوجه [197]

.لكن ذلك ضروري لإتاحة بعض البُنى البرمجية الهامة؛ ويتناسب مع فلسفة بايثون القائلة "الصريح أفضل من المضمن"[198].

وفي الاصدار 3.0 غالباً ما يُنتقد استدعاء تعريف الطريقة لنسخة الصنف الأساسية التي تصرح بالصنف وتتطلب مثيل.حيث يُرى أنه يتناقض مع مبدأ "لا تكرر نفسك (خطواتك)". بالمقابل، يمنع ذلك إعادة التسميات.في الأخير، حلت نقطة الخلاف في بايثون 3.0.[199]

كما يُنتقد الافتقار إلى أمان التنويع الثابت في بايثون.[200]

في الأنظمة ذات المعالجات متعددة الأنوية، وفي في سي بايثون، يوجد ما يسمى قفل المفسر العالمي (Global Interpreter Lock (GIL)) الذي له أداء فعّال لتنفيذات بايثون التي يتطلب استخدامها برمجيات حاسوبية متعددة الخيوط. بيد أن هذا القيد غير موجود في جايثون وآيرن بايثون.وحتى الآن، لا توجد مخططات رسمية تحل محل قفل المفسر العالمي. بدلاً من ذلك، يوصّى باستخدام عمليات متعددة تتواصل مع بعضها البعض بدلاً من تعدد الخيوط الحاسوبية.[201][202]

في التنفيذات المنتشرة، تكون سرعة التنفيذ أبطأ من سرعة العديد من اللغات المجمّعة، [203] ولكنها مشابهة لبيرل،[204] بي اتش بي، [205] دارت [206] ، وروبي.[207] ويرجع ذلك غالبا إلى مبدأ بايثون " وضوح الكود له الأسبقية على السرعة ".[208] تنصح بعض المواقع مثل دونالد نث وتوني هورار بعدم التحسين المبكر، لذا ظهرت مشاكل في السرعة لا يمكن حلها عن طريق تحسين كود بايثون، [209] عوضا من ذلك تستخدم مجمعات ( أو محولات ) آنية مثل باي باي أو يستعان بدوال حساسة للوقت في اللغات منخفضة المستوى مثل سي أو كايثون.

بايثون للهواتف الذكية[عدل]

في الإصدارات 2.5 و2.6، توجد إصدارات لبايثون متوافقة مع الآيفون وهواتف الأندرويد. متوفر لآي أو إس بعد تفعيل كسر الآي أو إس في الإعدادات، وفي أندرويد بفضل تطبيق إس إل فور أي الذي يوفر إمكانية برمجة بعض الواجهات الرسومية بفضل الدالة "android" ويوفر أيضا إمكانية إرسال رسائل قصيرة، تشغيل الكاميرا[55]، أو هز الهاتف كما هو مبين أسفله.

droid = android.Android() # عميل مرتبط بخادم محلي لإس إل فور أي
       # للتحكم بهاتف آخر بعنوان 192.168.0.5، و إس إل فور أي في منفذ 9887
       # يكفي كتابة : android.Android('192.168.0.5', 9887)

droid.vibrate(2.5) # هز الهاتف ( محلي أو لا ) لمدة 2.5 ثانية

ابتداءا من يونيو 2012، صار من الممكن تشغيل بايثون أيضا في نظام تشغيل بلاك بيري أوس 10 بواسطة تنفيذ، في سبتمبر 2012 أصدر إصدار مخفف : "بلاكبيري تارت" [210][211] مستند إلى بايثون 3.2.2.

انظر أيضا[عدل]

المراجع[عدل]

باللغة الأجنبية[عدل]

  1. ^ "PEP 483 -- The Theory of Type Hints". Python.org. مؤرشف من الأصل في 14 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  2. ^ Historique et licence — تاريخ الاطلاع: 19 أغسطس 2016
  3. ^ https://docs.python.org/3/license.html — تاريخ الاطلاع: 3 يوليو 2019
  4. ^ "Python Release Python 3.8.3". Python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 14 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  5. ^ "Python 3.9.0b1". Python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 19 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  6. أ ب ت "Why was Python created in the first place?". General Python FAQ. Python Software Foundation. مؤرشف من الأصل في 24 أكتوبر 2012. اطلع عليه بتاريخ 22 مارس 2007. الوسيط |CitationClass= تم تجاهله (مساعدة)
  7. ^ "Ada 83 Reference Manual (raise statement)". مؤرشف من الأصل في 22 أكتوبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  8. ^ Kuchling, Andrew M. (22 ديسمبر 2006). "Interview with Guido van Rossum (July 1998)". amk.ca. مؤرشف من الأصل في 1 مايو 2007. اطلع عليه بتاريخ 12 مارس 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  9. أ ب "itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation". docs.python.org. مؤرشف من الأصل في 14 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  10. أ ب van Rossum, Guido (1993). "An Introduction to Python for UNIX/C Programmers". Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group). CiteSeerX = 10.1.1.38.2023 10.1.1.38.2023. even though the design of C is far from ideal, its influence on Python is considerable. الوسيط |CitationClass= تم تجاهله (مساعدة)
  11. أ ب ت ث "Classes". The Python Tutorial. Python Software Foundation. مؤرشف من الأصل في 23 أكتوبر 2012. اطلع عليه بتاريخ 20 فبراير 2012. It is a mixture of the class mechanisms found in C++ and Modula-3 الوسيط |CitationClass= تم تجاهله (مساعدة)
  12. ^ Lundh, Fredrik. "Call By Object". effbot.org. مؤرشف من الأصل في 23 نوفمبر 2019. اطلع عليه بتاريخ 21 نوفمبر 2017. replace "CLU" with "Python", "record" with "instance", and "procedure" with "function or method", and you get a pretty accurate description of Python's object model. الوسيط |CitationClass= تم تجاهله (مساعدة)
  13. ^ Simionato, Michele. "The Python 2.3 Method Resolution Order". Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan and it is described in a paper intended for lispers الوسيط |CitationClass= تم تجاهله (مساعدة)
  14. ^ Kuchling, A. M. "Functional Programming HOWTO". Python v2.7.2 documentation. Python Software Foundation. مؤرشف من الأصل في 24 أكتوبر 2012. اطلع عليه بتاريخ 09 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  15. أ ب Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 May 2001). "PEP 255 – Simple Generators". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 09 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  16. أ ب Smith, Kevin D.; Jewett, Jim J.; Montanaro, Skip; Baxter, Anthony (2 September 2004). "PEP 318 – Decorators for Functions and Methods". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 3 يونيو 2020. اطلع عليه بتاريخ 24 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  17. أ ب "More Control Flow Tools". Python 3 documentation. Python Software Foundation. مؤرشف من الأصل في 4 يونيو 2016. اطلع عليه بتاريخ 24 يوليو 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  18. ^ "CoffeeScript". coffeescript.org. مؤرشف من الأصل في 12 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  19. ^ "The Genie Programming Language Tutorial". مؤرشف من الأصل في 1 يونيو 2020. اطلع عليه بتاريخ 28 فبراير 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  20. ^ "Perl and Python influences in JavaScript". www.2ality.com. 24 February 2013. مؤرشف من الأصل في 1 يونيو 2020. اطلع عليه بتاريخ 15 مايو 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  21. ^ Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". O'Reilly، Speaking JavaScript. مؤرشف من الأصل في 11 سبتمبر 2019. اطلع عليه بتاريخ 15 مايو 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  22. ^ "Why We Created Julia". Julia website. February 2012. مؤرشف من الأصل في 2 مايو 2020. اطلع عليه بتاريخ 05 يونيو 2014. We want something as usable for general programming as Python [...] الوسيط |CitationClass= تم تجاهله (مساعدة)
  23. ^ Ring Team (4 December 2017). "Ring and other languages". ring-lang.net. ring-lang. مؤرشف من الأصل في 2 فبراير 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  24. ^ Bini, Ola (2007). Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform. Berkeley: APress. صفحة 3. ISBN 978-1-59059-881-8. مؤرشف من الأصل في 3 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  25. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. مؤرشف من الأصل في 9 يونيو 2020. اطلع عليه بتاريخ 03 يونيو 2014. The Swift language is the product of tireless effort from a team of language experts، documentation gurus، compiler optimization ninjas، and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course، it also greatly benefited from the experiences hard-won by many other languages in the field، drawing ideas from Objective-C، Rust، Haskell، Ruby، Python، C#، CLU، and far too many others to list. الوسيط |CitationClass= تم تجاهله (مساعدة)
  26. ^ كان امتداد ملف .pyo معتمدا قبل بايثون 3.5. أنظر PEP 0488 نسخة محفوظة 1 يونيو 2020 على موقع واي باك مشين.
  27. ^ Holth, Moore (30 March 2014). "PEP 0441 -- Improving Python ZIP Application Support". مؤرشف من الأصل في 1 يونيو 2020. اطلع عليه بتاريخ 12 نوفمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  28. ^ Guttag, John V. (2016-08-12). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN 978-0-262-52962-4. الوسيط |CitationClass= تم تجاهله (مساعدة)
  29. ^ Kuhlman, Dave. "A Python Book: Beginning Python, Advanced Python, and Python Exercises". Section 1.1. مؤرشف من الأصل (PDF) في 23 يونيو 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  30. ^ "About Python". Python Software Foundation. اطلع عليه بتاريخ 24 أبريل 2012. الوسيط |CitationClass= تم تجاهله (مساعدة), second section "Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files."
  31. أ ب Venners, Bill (13 January 2003). "The Making of Python". Artima Developer. Artima. مؤرشف من الأصل في 27 أبريل 2019. اطلع عليه بتاريخ 22 مارس 2007. الوسيط |CitationClass= تم تجاهله (مساعدة)
  32. ^ van Rossum, Guido (29 August 2000). "SETL (was: Lukewarm about range literals)". Python-Dev (Mailing list). مؤرشف من الأصل في 14 يوليو 2018. اطلع عليه بتاريخ 13 مارس 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  33. ^ van Rossum, Guido (20 January 2009). "A Brief Timeline of Python". The History of Python. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 20 يناير 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  34. ^ Fairchild, Carlie (12 July 2018). "Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life". Linux Journal. مؤرشف من الأصل في 11 يونيو 2020. اطلع عليه بتاريخ 13 يوليو 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  35. ^ "Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life | Linux Journal". www.linuxjournal.com (باللغة الإنجليزية). مؤرشف من الأصل في 11 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  36. ^ "Python boss Guido van Rossum steps down after 30 years". The Inquirer (باللغة الإنجليزية). مؤرشف من الأصل في 19 ديسمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  37. ^ "PEP 8100". python. Python Software Foundation. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 04 مايو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  38. ^ Kuchling, A. M.; Zadka, Moshe (16 October 2000). "What's New in Python 2.0". Python Software Foundation. مؤرشف من الأصل في 23 أكتوبر 2012. اطلع عليه بتاريخ 11 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  39. ^ "Python 3.0 Release". Python Software Foundation. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 08 يوليو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  40. ^ van Rossum, Guido (5 April 2006). "PEP 3000 – Python 3000". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 03 مارس 2016. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  41. ^ "Automated Python 2 to 3 code translation — Python Documentation". مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 11 فبراير 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  42. ^ "PEP 373 -- Python 2.7 Release Schedule". python.org. مؤرشف من الأصل في 19 مايو 2020. اطلع عليه بتاريخ 09 يناير 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  43. ^ "PEP 466 -- Network Security Enhancements for Python 2.7.x". python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 09 يناير 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  44. ^ "PEP 8100". Python Software Foundation. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 04 مايو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  45. أ ب The Cain Gang Ltd. "Python Metaclasses: Who? Why? When?" (PDF). مؤرشف من الأصل (PDF) في 30 مايو 2009. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  46. ^ "3.3. Special method names". The Python Language Reference. Python Software Foundation. مؤرشف من الأصل في 15 ديسمبر 2018. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  47. ^ "PyDBC: method preconditions, method postconditions and class invariants for Python". مؤرشف من الأصل في 23 نوفمبر 2019. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  48. ^ "Contracts for Python". مؤرشف من الأصل في 15 يونيو 2020. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  49. ^ "PyDatalog". مؤرشف من الأصل في 13 يونيو 2020. اطلع عليه بتاريخ 22 يوليو 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  50. أ ب Hettinger, Raymond (30 January 2002). "PEP 289 – Generator Expressions". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 19 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  51. ^ "6.5 itertools – Functions creating iterators for efficient looping". Docs.python.org. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 22 نوفمبر 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  52. أ ب Peters, Tim (19 August 2004). "PEP 20 – The Zen of Python". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 3 يونيو 2020. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  53. ^ Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Python Cookbook, 2nd Edition. أوريلي ميديا. صفحة 230. ISBN 978-0-596-00797-3. مؤرشف من الأصل في 25 نوفمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  54. ^ https://gdevelop-app.com/
  55. أ ب Google Code Archive - Long-term storage for Google Code Project Hosting نسخة محفوظة 19 مايو 2015 على موقع واي باك مشين.
  56. ^ "Ebeab.com". ebeab.com. مؤرشف من الأصل في 5 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  57. ^ "General Python FAQ". Python v2.7.3 documentation. Docs.python.org. مؤرشف من الأصل في 9 مايو 2020. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  58. ^ "15 Ways Python Is a Powerful Force on the Web". مؤرشف من الأصل في 11 مايو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  59. ^ "8.18. pprint — Data pretty printer — Python 2.7.18rc1 documentation". docs.python.org. مؤرشف من الأصل في 3 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  60. ^ "Is Python a good language for beginning programmers?". General Python FAQ. Python Software Foundation. مؤرشف من الأصل في 24 أكتوبر 2012. اطلع عليه بتاريخ 21 مارس 2007. الوسيط |CitationClass= تم تجاهله (مساعدة)
  61. ^ "Myths about indentation in Python". Secnetix.de. مؤرشف من الأصل في 18 فبراير 2018. اطلع عليه بتاريخ 19 أبريل 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  62. ^ Guttag, John V. (2016-08-12). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN 978-0-262-52962-4. الوسيط |CitationClass= تم تجاهله (مساعدة)
  63. ^ "Python 2.5 Release". Python.org. مؤرشف من الأصل في 4 أغسطس 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  64. ^ "Highlights: Python 2.5". Python.org. مؤرشف من الأصل في 4 أغسطس 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  65. ^ van Rossum, Guido (22 April 2009). "Tail Recursion Elimination". Neopythonic.blogspot.be. مؤرشف من الأصل في 19 مايو 2018. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  66. ^ van Rossum, Guido (9 February 2006). "Language Design Is Not Just Solving Puzzles". Artima forums. Artima. مؤرشف من الأصل في 17 يناير 2020. اطلع عليه بتاريخ 21 مارس 2007. الوسيط |CitationClass= تم تجاهله (مساعدة)
  67. ^ van Rossum, Guido; Eby, Phillip J. (10 May 2005). "PEP 342 – Coroutines via Enhanced Generators". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 29 مايو 2020. اطلع عليه بتاريخ 19 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  68. ^ "PEP 380". Python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  69. ^ "division". python.org. مؤرشف من الأصل في 2 يوليو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  70. ^ "PEP 0465 -- A dedicated infix operator for matrix multiplication". python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 01 يناير 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  71. ^ "Python 3.5.1 Release and Changelog". python.org. مؤرشف من الأصل في 14 مايو 2020. اطلع عليه بتاريخ 01 يناير 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  72. ^ "What's New In Python 3.8". مؤرشف من الأصل في 8 يونيو 2020. اطلع عليه بتاريخ 14 أكتوبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  73. ^ "Chapter 15. Expressions - 15.21.1. Numerical Equality Operators == and !=". أوراكل. مؤرشف من الأصل في 7 يونيو 2020. اطلع عليه بتاريخ 28 أغسطس 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  74. ^ "Chapter 15. Expressions - 15.21.3. Reference Equality Operators == and !=". Oracle Corporation. مؤرشف من الأصل في 7 يونيو 2020. اطلع عليه بتاريخ 28 أغسطس 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  75. ^ van Rossum, Guido; Hettinger, Raymond (7 February 2003). "PEP 308 – Conditional Expressions". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 13 يوليو 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  76. ^ "4. Built-in Types — Python 3.6.3rc1 documentation". python.org. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 01 أكتوبر 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  77. ^ "5.3. Tuples and Sequences — Python 3.7.1rc2 documentation". python.org. مؤرشف من الأصل في 10 يونيو 2020. اطلع عليه بتاريخ 17 أكتوبر 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  78. ^ "PEP 498 -- Literal String Interpolation". python.org. مؤرشف من الأصل في 15 يونيو 2020. اطلع عليه بتاريخ 08 مارس 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  79. ^ "Why must 'self' be used explicitly in method definitions and calls?". Design and History FAQ. Python Software Foundation. مؤرشف من الأصل في 24 أكتوبر 2012. اطلع عليه بتاريخ 19 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  80. ^ "The Python Language Reference, section 3.3. New-style and classic classes, for release 2.7.1". مؤرشف من الأصل في 26 أكتوبر 2012. اطلع عليه بتاريخ 12 يناير 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  81. ^ "Type hinting for Python". LWN.net. 24 December 2014. مؤرشف من الأصل في 20 يونيو 2019. اطلع عليه بتاريخ 05 مايو 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  82. ^ "mypy - Optional Static Typing for Python". مؤرشف من الأصل في 6 يونيو 2020. اطلع عليه بتاريخ 28 يناير 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  83. ^ "15. Floating Point Arithmetic: Issues and Limitations — Python 3.8.3 documentation". docs.python.org. مؤرشف من الأصل في 6 يونيو 2020. اطلع عليه بتاريخ 06 يونيو 2020. almost all platforms map Python floats to IEEE-754 double precision الوسيط |CitationClass= تم تجاهله (مساعدة)
  84. ^ Zadka, Moshe; van Rossum, Guido (11 March 2001). "PEP 237 – Unifying Long Integers and Integers". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 28 مايو 2020. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  85. ^ "Built-in Types". مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 03 أكتوبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  86. ^ "PEP 465 -- A dedicated infix operator for matrix multiplication". python.org. مؤرشف من الأصل في 29 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  87. أ ب Zadka, Moshe; van Rossum, Guido (11 March 2001). "PEP 238 – Changing the Division Operator". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 28 مايو 2020. اطلع عليه بتاريخ 23 أكتوبر 2013. الوسيط |CitationClass= تم تجاهله (مساعدة)
  88. ^ "Why Python's Integer Division Floors". مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 25 أغسطس 2010. الوسيط |CitationClass= تم تجاهله (مساعدة)
  89. ^ "round", The Python standard library, release 3.2, §2: Built-in functions, مؤرشف من الأصل في 25 أكتوبر 2012, اطلع عليه بتاريخ 14 أغسطس 2011 الوسيط |CitationClass= تم تجاهله (مساعدة); الوسيط |separator= تم تجاهله (مساعدة)CS1 maint: ref=harv (link)
  90. ^ "round", The Python standard library, release 2.7, §2: Built-in functions, مؤرشف من الأصل في 27 أكتوبر 2012, اطلع عليه بتاريخ 14 أغسطس 2011 الوسيط |CitationClass= تم تجاهله (مساعدة); الوسيط |separator= تم تجاهله (مساعدة)CS1 maint: ref=harv (link)
  91. ^ Beazley, David M. (2009). Python Essential Reference (الطبعة 4th). صفحة 66. مؤرشف من الأصل في 14 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  92. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). The C Programming Language (الطبعة 2nd). صفحة 206. الوسيط |CitationClass= تم تجاهله (مساعدة)
  93. ^ Batista, Facundo. "PEP 0327 -- Decimal Data Type". Python.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 26 سبتمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  94. ^ "What's New in Python 2.6 — Python v2.6.9 documentation". docs.python.org. مؤرشف من الأصل في 23 ديسمبر 2019. اطلع عليه بتاريخ 26 سبتمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  95. ^ "10 Reasons Python Rocks for Research (And a Few Reasons it Doesn't) — Hoyt Koepke". www.stat.washington.edu. مؤرشف من الأصل في 31 مايو 2020. اطلع عليه بتاريخ 03 فبراير 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  96. ^ Shell, Scott (17 June 2014). "An introduction to Python for scientific computing" (PDF). مؤرشف من الأصل (PDF) في 4 فبراير 2019. اطلع عليه بتاريخ 03 فبراير 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  97. ^ PEP 8 - Style Guide for Python Code | Python.org نسخة محفوظة 3 يوليو 2020 على موقع واي باك مشين.
  98. ^ Kim BarrettCatégorie:Utilisation du paramètre auteur dans le modèle article, « A monotonic superclass linearization for Dylan », في ACM SIGPLAN Notices, vol. 31, no 10, octobre 1996, ص.  69-82 [النص الكامل, lien DOI] 
  99. ^ The Python 2.3 Method Resolution Order نسخة محفوظة 5 يونيو 2020 على موقع واي باك مشين.
  100. ^ Piotrowski, Przemyslaw (July 2006). "Build a Rapid Web Development Environment for Python Server Pages and Oracle". Oracle Technology Network. Oracle. مؤرشف من الأصل في 2 أبريل 2019. اطلع عليه بتاريخ 12 مارس 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  101. ^ Batista, Facundo (17 October 2003). "PEP 327 – Decimal Data Type". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  102. ^ Eby, Phillip J. (7 December 2003). "PEP 333 – Python Web Server Gateway Interface v1.0". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 19 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  103. ^ Debill, Erik. "Module Counts". ModuleCounts. مؤرشف من الأصل في 12 يونيو 2020. اطلع عليه بتاريخ 05 نوفمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  104. ^ "Pillow — Pillow (PIL Fork) 7.1.2 documentation". pillow.readthedocs.io. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 15 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  105. ^ "20+ Python Web Scraping Examples (Beautiful Soup & Selenium) - Like Geeks". likegeeks.com. 5 December 2017. مؤرشف من الأصل في 12 مايو 2020. اطلع عليه بتاريخ 12 مارس 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  106. أ ب Warsaw, Barry; Hylton, Jeremy; Goodger, David (13 June 2000). "PEP 1 – PEP Purpose and Guidelines". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 6 يونيو 2020. اطلع عليه بتاريخ 19 أبريل 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  107. ^ "PEP 8 -- Style Guide for Python Code". Python.org. مؤرشف من الأصل في 24 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  108. ^ Cannon, Brett. "Guido, Some Guys, and a Mailing List: How Python is Developed". python.org. Python Software Foundation. مؤرشف من الأصل في 01 يونيو 2009. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  109. ^ "Python Developer's Guide". مؤرشف من الأصل في 13 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  110. ^ Norwitz, Neal (8 April 2002). "[Python-Dev] Release Schedules (was Stability & change)". مؤرشف من الأصل في 15 ديسمبر 2018. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  111. ^ Aahz; Baxter, Anthony (15 March 2001). "PEP 6 – Bug Fix Releases". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 27 يونيو 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  112. ^ "What's New In Python 3.9". Python. اطلع عليه بتاريخ 28 نوفمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  113. ^ "PEP 602 -- Annual Release Cycle for Python". Python.org (باللغة الإنجليزية). مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 06 نوفمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  114. ^ "PEP 596 -- Python 3.9 Release Schedule". Python.org (باللغة الإنجليزية). مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 06 نوفمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  115. ^ "Python Buildbot". Python Developer’s Guide. Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  116. ^ Enthought, Canopy. "Canopy". www.enthought.com. مؤرشف من الأصل في 15 يوليو 2017. اطلع عليه بتاريخ 20 أغسطس 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  117. ^ van Rossum, Guido (5 June 2001). "PEP 7 – Style Guide for C Code". Python Enhancement Proposals. Python Software Foundation. مؤرشف من الأصل في 1 يونيو 2020. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  118. ^ "CPython byte code". Docs.python.org. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 16 فبراير 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  119. ^ "Python 2.5 internals" (PDF). مؤرشف من الأصل (PDF) في 6 أغسطس 2012. اطلع عليه بتاريخ 19 أبريل 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  120. ^ "An Interview with Guido van Rossum". Oreilly.com. مؤرشف من الأصل في 16 يوليو 2014. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  121. ^ "PyPy compatibility". Pypy.org. مؤرشف من الأصل في 6 يونيو 2020. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  122. ^ "speed comparison between CPython and Pypy". Speed.pypy.org. مؤرشف من الأصل في 1 يونيو 2020. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  123. ^ Shaw, Anthony (2018-03-30). "Which is the fastest version of Python?". Hacker Noon. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 20 ديسمبر 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  124. ^ "Application-level Stackless features — PyPy 2.0.2 documentation". Doc.pypy.org. مؤرشف من الأصل في 4 يونيو 2020. اطلع عليه بتاريخ 17 يوليو 2013. الوسيط |CitationClass= تم تجاهله (مساعدة)
  125. ^ "Python-for-EV3". LEGO Education (باللغة الإنجليزية). مؤرشف من الأصل في 7 يونيو 2020. اطلع عليه بتاريخ 17 أبريل 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  126. ^ "Plans for optimizing Python". Google Project Hosting. 15 December 2009. مؤرشف من الأصل في 11 أبريل 2016. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  127. ^ "Python on the Nokia N900". Stochastic Geometry. 2010-04-29. مؤرشف من الأصل في 20 يونيو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  128. ^ "google/grumpy". April 10, 2020. مؤرشف من الأصل في 15 أبريل 2020 – عبر GitHub. الوسيط |CitationClass= تم تجاهله (مساعدة)
  129. ^ "Projects". opensource.google. مؤرشف من الأصل في 24 أبريل 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  130. ^ "Nuitka Home | Nuitka Home". nuitka.net (باللغة الإنجليزية). مؤرشف من الأصل في 30 مايو 2020. اطلع عليه بتاريخ 18 أغسطس 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  131. ^ Borderies, Olivier (January 24, 2019). "Pythran: Python at C++ speed !". Medium. مؤرشف من الأصل في 25 مارس 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  132. ^ "Pythran — Pythran 0.9.5 documentation". pythran.readthedocs.io. مؤرشف من الأصل في 19 فبراير 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  133. ^ Murri, Riccardo (2013). Performance of Python runtimes on a non-numeric scientific code. European Conference on Python in Science (EuroSciPy). arXiv:1404.6388. Bibcode:2014arXiv1404.6388M. الوسيط |CitationClass= تم تجاهله (مساعدة)
  134. ^ "The Computer Language Benchmarks Game". مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 30 أبريل 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  135. أ ب "Whetting Your Appetite". The Python Tutorial. Python Software Foundation. مؤرشف من الأصل في 26 أكتوبر 2012. اطلع عليه بتاريخ 20 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  136. ^ "In Python, should I use else after a return in an if block?". ستاك أوفرفلو. Stack Exchange. 17 February 2011. مؤرشف من الأصل في 20 يونيو 2019. اطلع عليه بتاريخ 06 مايو 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  137. ^ Lutz, Mark (2009). Learning Python: Powerful Object-Oriented Programming (باللغة الإنجليزية). O'Reilly Media, Inc. صفحة 17. ISBN 9781449379322. مؤرشف من الأصل في 15 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  138. ^ Fehily, Chris (2002). Python (باللغة الإنجليزية). Peachpit Press. صفحة xv. ISBN 9780201748840. مؤرشف من الأصل في 14 يناير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  139. ^ Epydoc نسخة محفوظة 15 مارس 2020 على موقع واي باك مشين.
  140. ^ Introduction نسخة محفوظة 27 يونيو 2017 على موقع واي باك مشين.
  141. ^ pydoc نسخة محفوظة 3 يونيو 2018 على موقع واي باك مشين.
  142. ^ Overview — Sphinx 4.0.0+ documentation نسخة محفوظة 3 يناير 2016 على موقع واي باك مشين.
  143. ^ "TIOBE Index". TIOBE - The Software Quality Company. مؤرشف من الأصل في 14 يونيو 2020. اطلع عليه بتاريخ 07 مارس 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  144. ^ TIOBE Software Index (2015). "TIOBE Programming Community Index Python". مؤرشف من الأصل في 7 سبتمبر 2015. اطلع عليه بتاريخ 10 سبتمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  145. ^ Prechelt, Lutz (14 March 2000). "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl" (PDF). مؤرشف من الأصل (PDF) في 3 يناير 2020. اطلع عليه بتاريخ 30 أغسطس 2013. الوسيط |CitationClass= تم تجاهله (مساعدة)
  146. ^ "Quotes about Python". Python Software Foundation. مؤرشف من الأصل في 3 يونيو 2020. اطلع عليه بتاريخ 08 يناير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  147. ^ "Organizations Using Python". Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 15 يناير 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  148. ^ "Python : the holy grail of programming". CERN Bulletin. CERN Publications (31/2006). 31 July 2006. مؤرشف من الأصل في 15 ديسمبر 2018. اطلع عليه بتاريخ 11 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  149. ^ Shafer, Daniel G. (17 January 2003). "Python Streamlines Space Shuttle Mission Design". Python Software Foundation. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  150. ^ "Tornado: Facebook's Real-Time Web Framework for Python - Facebook for Developers". Facebook for Developers (باللغة الإنجليزية). مؤرشف من الأصل في 3 سبتمبر 2019. اطلع عليه بتاريخ 19 يونيو 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  151. ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies". Instagram Engineering. مؤرشف من الأصل في 15 يونيو 2020. اطلع عليه بتاريخ 27 مايو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  152. ^ "How we use Python at Spotify". Spotify Labs (باللغة الإنجليزية). 2013-03-20. مؤرشف من الأصل في 10 يونيو 2020. اطلع عليه بتاريخ 25 يوليو 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  153. ^ Fortenberry, Tim (17 January 2003). "Industrial Light & Magic Runs on Python". Python Software Foundation. مؤرشف من الأصل في 6 يونيو 2020. اطلع عليه بتاريخ 11 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  154. ^ Taft, Darryl K. (5 March 2007). "Python Slithers into Systems". eWeek.com. Ziff Davis Holdings. اطلع عليه بتاريخ 24 سبتمبر 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  155. ^ GitHub - reddit-archive/reddit: historical code from reddit.com., The Reddit Archives, 2019-03-19, مؤرشف من الأصل في 1 يونيو 2020, اطلع عليه بتاريخ 20 مارس 2019 الوسيط |CitationClass= تم تجاهله (مساعدة); الوسيط |separator= تم تجاهله (مساعدة)CS1 maint: ref=harv (link)
  156. ^ "Usage statistics and market share of Python for websites". 2012. اطلع عليه بتاريخ 18 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  157. ^ Oliphant, Travis (2007). "Python for Scientific Computing". Computing in Science and Engineering. 9 (3): 10–20. Bibcode:2007CSE.....9c..10O. CiteSeerX = 10.1.1.474.6460 10.1.1.474.6460. doi:10.1109/MCSE.2007.58. مؤرشف من الأصل في 15 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  158. ^ Millman, K. Jarrod; Aivazis, Michael (2011). "Python for Scientists and Engineers". Computing in Science and Engineering. 13 (2): 9–12. Bibcode:2011CSE....13b...9M. doi:10.1109/MCSE.2011.36. مؤرشف من الأصل في 19 فبراير 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  159. ^ Science education with SageMath, Innovative Computing in Science Education, مؤرشف من الأصل في 15 يونيو 2020, اطلع عليه بتاريخ 22 أبريل 2019 الوسيط |CitationClass= تم تجاهله (مساعدة); الوسيط |separator= تم تجاهله (مساعدة)CS1 maint: ref=harv (link)
  160. ^ "Installers for GIMP for Windows - Frequently Asked Questions". 26 يوليو 2013. مؤرشف من الأصل في 17 يوليو 2013. اطلع عليه بتاريخ 26 يوليو 2013. الوسيط |CitationClass= تم تجاهله (مساعدة)
  161. ^ "jasc psp9components". مؤرشف من الأصل في 19 مارس 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  162. ^ "About getting started with writing geoprocessing scripts". ArcGIS Desktop Help 9.2. Environmental Systems Research Institute. 17 November 2006. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 11 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  163. ^ CCP porkbelly (24 August 2010). "Stackless Python 2.7". EVE Community Dev Blogs. CCP Games. مؤرشف من الأصل في 1 ديسمبر 2017. As you may know, EVE has at its core the programming language known as Stackless Python. الوسيط |CitationClass= تم تجاهله (مساعدة)
  164. ^ Caudill, Barry (20 سبتمبر 2005). "Modding Sid Meier's Civilization IV". Sid Meier's Civilization IV Developer Blog. Firaxis Games. مؤرشف من الأصل في 2 ديسمبر 2010. we created three levels of tools ... The next level offers Python and XML support, letting modders with more experience manipulate the game world and everything in it. الوسيط |CitationClass= تم تجاهله (مساعدة)
  165. ^ "Python Language Guide (v1.0)". Google Documents List Data API v1.0. مؤرشف من الأصل في 15 يوليو 2010. الوسيط |CitationClass= تم تجاهله (مساعدة)
  166. ^ Dean, Jeff; Monga, Rajat; et al. (9 November 2015). "TensorFlow: Large-scale machine learning on heterogeneous systems" (PDF). TensorFlow.org. Google Research. مؤرشف من الأصل (PDF) في 19 أبريل 2020. اطلع عليه بتاريخ 10 نوفمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  167. ^ Piatetsky, Gregory. "Python eats away at R: Top Software for Analytics, Data Science, Machine Learning in 2018: Trends and Analysis". KDnuggets. KDnuggets. مؤرشف من الأصل في 9 يونيو 2020. اطلع عليه بتاريخ 30 مايو 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  168. ^ "Who is using scikit-learn? — scikit-learn 0.20.1 documentation". scikit-learn.org. مؤرشف من الأصل في 6 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  169. ^ Jouppi, Norm. "Google supercharges machine learning tasks with TPU custom chip". Google Cloud Platform Blog. مؤرشف من الأصل في 5 أكتوبر 2018. اطلع عليه بتاريخ 19 مايو 2016. الوسيط |CitationClass= تم تجاهله (مساعدة)
  170. ^ "Natural Language Toolkit — NLTK 3.5b1 documentation". www.nltk.org. مؤرشف من الأصل في 13 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  171. ^ "Python Setup and Usage". Python Software Foundation. اطلع عليه بتاريخ 10 يناير 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  172. ^ "Immunity: Knowing You're Secure". مؤرشف من الأصل في 16 فبراير 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  173. ^ "Core Security". Core Security. مؤرشف من الأصل في 9 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  174. ^ pandas - Python Data Analysis Library نسخة محفوظة 7 يوليو 2020 على موقع واي باك مشين.
  175. ^ "What is Sugar?". Sugar Labs. مؤرشف من الأصل في 9 يناير 2009. اطلع عليه بتاريخ 11 فبراير 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  176. ^ "4.0 New Features and Fixes". LibreOffice.org. The Document Foundation. 2013. مؤرشف من الأصل في 9 فبراير 2014. اطلع عليه بتاريخ 25 فبراير 2013. الوسيط |CitationClass= تم تجاهله (مساعدة)
  177. ^ Zühlke, Karin. "Erstmals »Live on stage«: Farnell zeigt den Raspberry Pi Nachwuchs". مؤرشف من الأصل في 3 يوليو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  178. ^ نزل المفسر حسب النظام الذي تعمل عليه نسخة محفوظة 17 أبريل 2018 على موقع واي باك مشين.
  179. ^ Goodger, David. "Code Like a Pythonista: Idiomatic Python". مؤرشف من الأصل في 27 مايو 2014. اطلع عليه بتاريخ 24 مارس 2009. الوسيط |CitationClass= تم تجاهله (مساعدة)
  180. ^ "How to think like a Pythonista". مؤرشف من الأصل في 23 مارس 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)
  181. أ ب Foreword for «Programming Python» (1st ed.) نسخة محفوظة 14 يونيو 2020 على موقع واي باك مشين.
  182. ^ The Making of Python نسخة محفوظة 6 يونيو 2017 على موقع واي باك مشين.
  183. ^ Результаты одной из попыток сравнения نسخة محفوظة 2012-08-31 على موقع واي باك مشين.
  184. ^ "Gotchas for Python Users". boo.codehaus.org. Codehaus Foundation. مؤرشف من الأصل في 11 ديسمبر 2008. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  185. ^ Esterbrook, Charles. "Acknowledgements". cobra-language.com. Cobra Language. مؤرشف من الأصل في 20 أكتوبر 2019. اطلع عليه بتاريخ 07 أبريل 2010. الوسيط |CitationClass= تم تجاهله (مساعدة)
  186. ^ "Proposals: iterators and generators [ES4 Wiki]". wiki.ecmascript.org. مؤرشف من الأصل في 20 أكتوبر 2007. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  187. ^ "FAQ: What is GDScript and why should I use it?". مؤرشف من الأصل في 19 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  188. ^ Kincaid, Jason (10 November 2009). "Google's Go: A New Programming Language That's Python Meets C++". TechCrunch. مؤرشف من الأصل في 5 يونيو 2020. اطلع عليه بتاريخ 29 يناير 2010. الوسيط |CitationClass= تم تجاهله (مساعدة)
  189. ^ Strachan, James (29 August 2003). "Groovy – the birth of a new dynamic language for the Java platform". مؤرشف من الأصل في 05 أبريل 2007. اطلع عليه بتاريخ 11 يونيو 2007. الوسيط |CitationClass= تم تجاهله (مساعدة)
  190. ^ "Why We Created Julia". Julia website. February 2012. مؤرشف من الأصل في 2 مايو 2020. اطلع عليه بتاريخ 05 يونيو 2014. We want something as usable for general programming as Python [...] الوسيط |CitationClass= تم تجاهله (مساعدة)
  191. ^ Yegulalp, Serdar (2017-01-16). "Nim language draws from best of Python, Rust, Go, and Lisp". InfoWorld. مؤرشف من الأصل في 13 أكتوبر 2018. Nim's syntax is strongly reminiscent of Python's, as it uses indented code blocks and some of the same syntax (such as the way if/elif/then/else blocks are constructed). الوسيط |CitationClass= تم تجاهله (مساعدة)
  192. ^ "An Interview with the Creator of Ruby". Linuxdevcenter.com. مؤرشف من الأصل في 28 أبريل 2018. اطلع عليه بتاريخ 03 ديسمبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  193. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. مؤرشف من الأصل في 23 ديسمبر 2019. اطلع عليه بتاريخ 03 يونيو 2014. I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list. الوسيط |CitationClass= تم تجاهله (مساعدة)
  194. ^ Kupries, Andreas; Fellows, Donal K. (14 September 2000). "TIP #3: TIP Format". tcl.tk. Tcl Developer Xchange. مؤرشف من الأصل في 13 يوليو 2017. اطلع عليه بتاريخ 24 نوفمبر 2008. الوسيط |CitationClass= تم تجاهله (مساعدة)
  195. ^ Gustafsson, Per; Niskanen, Raimo (29 January 2007). "EEP 1: EEP Purpose and Guidelines". erlang.org. مؤرشف من الأصل في 15 يونيو 2020. اطلع عليه بتاريخ 19 أبريل 2011. الوسيط |CitationClass= تم تجاهله (مساعدة)
  196. ^ "Swift Evolution Process". Swift Programming Language Evolution repository on GitHub. 2020-02-18. مؤرشف من الأصل في 27 أبريل 2020. اطلع عليه بتاريخ 27 أبريل 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  197. ^ "writing warts". مؤرشف من الأصل في 17 فبراير 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  198. ^ Guido van Rossum: Why explicit self has to stay نسخة محفوظة 25 ديسمبر 2019 على موقع واي باك مشين.
  199. ^ "PEP 3135 -- New Super". Python.org. مؤرشف من الأصل في 19 يونيو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  200. ^ Rainer Fischbach: Wie Python arbeitet – Beschränkung aufs Wesentliche, heise.de, November 1999, abgerufen am 3. März 2017 نسخة محفوظة 16 نوفمبر 2018 على موقع واي باك مشين.
  201. ^ "Library and Extension FAQ — Python 3.7.0 documentation". Python.org. مؤرشف من الأصل في 22 مايو 2010. الوسيط |CitationClass= تم تجاهله (مساعدة)
  202. ^ Rossum, Guido van van. "It isn't Easy to Remove the GIL". Artima.com. مؤرشف من الأصل في 6 يونيو 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  203. ^ "Python–C". مؤرشف من الأصل في 26 ديسمبر 2015. اطلع عليه بتاريخ 25 ديسمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  204. ^ "Python–Perl". مؤرشف من الأصل في 26 ديسمبر 2015. اطلع عليه بتاريخ 25 ديسمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  205. ^ "Benchmark-Vergleich Python–PHP". مؤرشف من الأصل في 26 ديسمبر 2015. اطلع عليه بتاريخ 25 ديسمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  206. ^ "Benchmark-Vergleich Python–Dart". مؤرشف من الأصل في 26 ديسمبر 2015. اطلع عليه بتاريخ 25 ديسمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  207. ^ "Benchmark-Vergleich Python–Ruby". مؤرشف من الأصل في 26 ديسمبر 2015. اطلع عليه بتاريخ 25 ديسمبر 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  208. ^ "Python Culture". 2009-12-23. مؤرشف من الأصل في 18 أبريل 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  209. ^ "Python Patterns – An Optimization Anecdote". Python.org. مؤرشف من الأصل في 14 مايو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  210. ^ blackberry-py على بيت باكيت نسخة محفوظة 23 مايو 2015 على موقع واي باك مشين.
  211. ^ BlackBerry-Tart Preview نسخة محفوظة 4 نوفمبر 2016 على موقع واي باك مشين.

باللغة العربية[عدل]

  1. ^ "معلومات حول بايثون في موقع كميوتر ود". computer.wd. مؤرشف من الأصل في 3 يوليو 2020. الوسيط |CitationClass= تم تجاهله (مساعدة)
  2. ^ "استخدامات بايثون على موقع المطور". motwr.com. مؤرشف من الأصل في 14 يوليو 2018. الوسيط |CitationClass= تم تجاهله (مساعدة)

مصادر[عدل]

قراءة معمقة[عدل]

دروس[عدل]

للمبتدئين[عدل]

للمتقدمين[عدل]

للأطفال[عدل]

وصلات خارجية[عدل]