hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
أبو هريرة حياته
تعددت الروايات في تاريخ وفاة أبي هريرة، فقال هشام بن عروة أن أبا هريرة وعائشة توفيا سنة 57 هـ، وأيّد هذا التاريخ علي بن المديني ويحيى بن بكير وخليفة بن خياط، بينما قال الهيثم بن عدي بأنه توفي سنة 58 هـ، فيما قال الواقدي وأبو عبيد وأبو عمر الضرير أنه مات سنة 59 هـ، وزاد الواقدي أن عمره يومها كان 78 سنة، وأن أبا هريرة هو من صلى على عائشة في رمضان سنة 58 هـ، وعلى أم سلمة في شوال سنة 59 هـ، ثم توفي بعد ذلك في نفس السنة. كانت وفاة أبي هريرة في وادي العقيق، وحمل بعدها إلى المدينة، حيث صلى عليه الوليد بن عتبة أمير المدينة المنورة وقتئذ بعد صلاة العصر، وشيعه عبد الله بن عمر وأبو سعيد الخدري، ودُفن بالبقيع. وقد أوصى أبو هريرة حين حضره الموت، فقال: «إذا مت فلا تنوحوا عليّ، لا تضربوا عليّ فسطاطا، ولا تتبعوني بمجمرة، وأسرعوا بي». كما كانت له قبل وفاته دارًا في ذي الحليفة، تصدق بها على مواليه. وقد كتب الوليد بن عتبه إلى الخليفة معاوية بن أبي سفيان يُنبأه بموت أبي هريرة، فكتب معاوية إليه يأمره بأن يحصي ورثة أبي هريرة، وأن يمنحهم عشرة آلاف درهم، وأن يُحسن جوارهم.
لم يرد ذكر لأسرة أبي هريرة أكثر من أنه كانت له زوجة اسمها «بسرة بنت غزوان»، ومن الولد ابنه المحرر وهو ممن رووا عنه الحديث النبوي، وعبد الرحمن بن أبي هريرة، وبلال بن أبي هريرة؛ وابنة كانت زوجة للتابعي سعيد بن المسيب. أما صفة أبي هريرة الشكلية، فقد كان أبو هريرة رجلاً آدم، بعيد ما بين المنكبين، أفرق الثنيتين، ذا ضفيرتين. يميل إلى المُزاح، فقد رُوي أنه كان يرى الصبية يلعبون في الليل لعبة الغراب، فيتسلل بينهم، وهم لا يشعرون، حتى يلقي بنفسه بينهم. ويضرب برجليه الأرض، يريد بذلك أن يضحكهم، فيفزع الصبيان منه، ويفرون ههنا وههنا، يتضاحكون.
أبو هريرة روايته للحديث النبوي
لزم أبو هريرة النبي محمد منذ أن أسلم سنة 7 هـ، وساعدته سعة حفظه على استيعاب عدد كبير من الأحاديث النبوية ذكر الذهبي في ترجمته لأبي هريرة في كتابه «سير أعلام النبلاء» أن أحاديث أبي هريرة بلغت في مسند بقي بن مخلد 5374 حديث، اتفق البخاري ومسلم على 326 حديث منها، وانفرد البخاري بـ 93 حديثًا، ومسلم بـ 98 حديثًا، كما أحصى له المحقق شعيب الأرناؤوط في تحقيقه لمسند أحمد 3870 حديثًا. وقد جمع أبو إسحاق إبراهيم بن حرب العسكري في القرن الثالث الهجري مسند أبي هريرة، وتوجد نسخة منه محفوظة في مكتبة كوبريللي بتركيا، كما جمع الطبراني مُسندًا لأبي هريرة في مصنف.
أبو هريرة روايته للحديث النبوي
لذا، فقد التف حوله الكثيرون ممن طلبة الحديث النبي قدّر البخاري عددهم بأنهم جاوزوا 800 رجل وامرأة رووا عن أبي هريرة. وقد شهد لأبي هريرة معاصروه بأوّليته في سعة الحفظ، بينما ذكر أبو هريرة أن عبد الله بن عمرو بن العاص كان أحفظ منه، نظرًا لتدوين عبد الله لما كان يحفظه من أحاديث، بينما لم يكن أبو هريرة يكتب. كما حفظ أبو هريرة القرآن، وقرأه على أبي بن كعب، وقد أخذ عنه الأعرج. وقد اختبر مروان بن الحكم حفظ أبي هريرة، ومروان يومئذ واليًا على المدينة، بأن دعا أبا هريرة، وسأله أن يُحدّثه، وأمر مروان كاتبه أن يجلس خلف ستار يكتب ما يسمعه. فجعل أبو هريرة يُحدّث مروان. ثم أرسل مروان بعد فترة يسأل أبي هريرة أن يُحدّثه، وأمر كاتبه بأن يقارن بما كتبه، فما وجده غيّر حرفًا عن حرف، عندئذ قال له مروان: «تعلم أنا قد كتبنا حديثك أجمع؟»، فقال أبو هريرة: «وقد فعلت؟»، قال: «نعم»، قال: «فاقرأه علي»، فقرأه. فقال أبو هريرة: «أما إنكم قد حفظتم، وإن تطعني تمحه»، فمحاه مروان، وقال أبو هريرة: «ارو كما روينا».
أبو هريرة روايته للحديث النبوي
نقل أبو سعيد الخدري عن النبي محمد قوله عن أبي هريرة: «أبو هريرة وعاء من العلم»، وقال له ابن عمر: «كنت ألزمنا لرسول الله ﷺ وأعلمنا بحديثه»، وقال كعب: «ما رأيت رجلا لم يقرأ التوراة أعلم بما في التوراة من أبي هريرة»، وقال الشافعي: «أبو هريرة أحفظ من روى الحديث في دهره»، وقال أبو نعيم عنه: «كان أحفظ الصحابة لأخبار رسول الله ﷺ، ودعا له بأن يحبّبه إلى المؤمنين، وكان إسلامه بين الحديبيّة وخيبر. قدم المدينة مهاجرًا، وسكن الصّفة»،
أبو هريرة روايته للحديث النبوي
وقد اهتم علماء الجرح والتعديل بتصنيف أصح أسانيد أحاديث أبي هريرة، فعدّها الذهبي أن أصح أسانيده ما جاء عن الزُهري عن سعيد بن المسيب عن أبي هريرة، وما جاء عن أبي الزناد عن الأعرج عن أبي هريرة، وما جاء عن ابن عون وأيوب عن محمد بن سيرين عن أبي هريرة، وقد روى له الجماعة في كُتُبهم. بينما اعتبر علي بن المديني أن أصحها ما جاء من طريق حماد بن زيد عن أيوب عن محمد بن سيرين عن أبي هريرة، وقال سليمان بن داود: «أصح الأسانيد كلها يحيى بن أبي كثير عن أبي سلمة عن أبي هريرة»، أما المُحدّث أحمد محمد شاكر فقد اعتبر أصح ما رُوِيَ عن أبي هريرة ما جاء من طرق مالك وسفيان بن عيينة ومعمر عن الزُهري عن سعيد بن المسيب عن أبي هريرة، وما جاء عن حماد بن زيد عن أيوب عن محمد بن سيرين عن أبي هريرة، وما جاء عن إسماعيل بن أبي حكيم عن عبيدة بن سفيان الحضرمي عن أبي هريرة، وما جاء عن معمر عن همام بن منبه عن أبي هريرة.
أبو هريرة روايته للحديث النبوي
لم يتقبّل بعض الصحابة إكثار أبي هريرة الرواية للحديث النبوي كالخليفة الثاني عمر بن الخطاب الذي قال لأبي هريرة: «لتتركن الحديث عن رسول الله ﷺ أو لألحقنك بأرض دوس»، لرؤية عمر ضرورة الإقلال في رواية الحديث عن النبي محمد في زمان خلافته، مخافة انشغال الناس بالحديث عن القرآن، ومع هذا فقد سمح عمر لأبي هريرة بالتحديث بعد أن أرسل يطلبه، وقال له عمر: «كنت معنا يوم كنا مع رسول الله ﷺ في بيت فلان؟»، فقال أبو هريرة: «نعم، وقد علمت لأي شيء سألتني»، فقال عمر: «ولم سألتك؟»، فردّ أبو هريرة قائلاً: «إن رسول الله ﷺ قال يومئذ: من كذب علي متعمدًا، فليتبوأ مقعده من النار»، فقال عمر: «أما لا، فاذهب فحدّث»، وهي إجازة من عمر لأبي هريرة بالتحديث. كما رُوي أن أبا هريرة دخل يومًا على عائشة بنت أبي بكر، فقالت له متعجبة: «أكثرت يا أبا هريرة عن رسول الله!»، فقال أبو هريرة: «إي والله يا أماه؛ ما كانت تشغلني عنه المرآة، ولا المكحلة، ولا الدهن»، فقالت عائشة: «لعله». وبلغ ابن عمر رواية أبي هريرة لحديث: «من شهد الجنازة حتى يصلي عليها فله قيراط. ومن شهدها حتى تدفن فله قيراطان. قيل: وما القيراطان؟ قال: مثل الجبلين العظيمين أصغرهما مثل أحد»، فقال ابن عمر: «أكثر علينا أبو هريرة»، فأخذه أبو هريرة إلى عائشة، يسألها عن الحديث، فصدّقته، فما كان من ابن عمر إلا أن قال له: «كنت ألزمنا لرسول الله ﷺ، وأعلمنا بحديثه». ولم يكن هذا الانتقاد فقط بين جموع الصحابة، بل وكان محل ريبة بعض العوام الذين سأل أحدهم طلحة بن عبيد الله يومًا، فقال: «يا أبا محمد، أرأيت هذا اليماني - يعني أبا هريرة - أهو أعلم بحديث رسول الله ﷺ منكم؟. نسمع منه أشياء لا نسمعها منكم، أم هو يقول على رسول الله ما لم يقل؟»، فردّ طلحة قائلاً: «أما أن يكون سمع ما لم نسمع، فلا أشك، سأحدثك عن ذلك: إنا كنا أهل بيوتات وغنم وعمل، كنا نأتي رسول الله ﷺ طرفي النهار، وكان مسكينًا ضيفًا على باب رسول الله، يده مع يده، فلا نشك أنه سمع ما لم نسمع، ولا تجد أحدًا فيه خير يقول على رسول الله ما لم يقل».
أبو هريرة روايته للحديث النبوي
وقد أزعجت أبي هريرة تلك الانتقادات لكثرة رواياته، فقال: «إنكم تقولون إن أبا هريرة يكثر الحديث عن رسول الله ﷺ، وتقولون ما للمهاجرين والأنصار لا يحدثون مثله! وإن إخواني المهاجرين كان يشغلهم الصفق بالأسواق، وكان إخواني من الأنصار يشغلهم عمل أموالهم؛ وكنت امرأ مسكينًا من مساكين الصفة، ألزم رسول الله ﷺ على ملء بطني، فأحضر حين يغيبون، وأعي حين ينسون، وقد قال رسول الله ﷺ في حديث يحدثه يومًا، إنه لن يبسط أحد ثوبه حتى أقضي جميع مقالتي، ثم يجمع إليه ثوبه، إلا وعى ما أقول. فبسطت نمرة علي، حتى إذا قضى مقالته، جمعتها إلى صدري. فما نسيت من مقالة رسول الله ﷺ تلك من شيء».
لم تكن تلك الانتقادات على كثرة رواية الأحاديث فقط بين معاصريه. فقد كان بعض التابعين لا يأخذون ببعض حديثه، فقد روى يزيد بن هارون أنه سمع شعبة يقول: «كان أبو هريرة يدلس». كما روى المغيرة ومنصور عن إبراهيم النخعي أنه قال بأن أصحابه ما كانوا يأخذون من حديث أبي هريرة إلا ما كان حديث جنة أو نار.
أبو هريرة عبادته وكرمه
اجتهد أبو هريرة في العبادة، فهذا حفيده نعيم بن المحرر بن أبي هريرة يقول بأن جده كان له خيط فيه ألفا عقدة، لا ينام حتى يسبح به، كما ذكر أبو عثمان النهدي أنه حلّ ضيفًا على أبي هريرة لسبعة أيام، فوجده وامرأته وخادمه يُقسّمون الليل ثلاثًا، يُصلّي أحدهم ثم يوقظ الآخر. وأثنى رجل من قبيلة تدعى الطفاوة على كرم أبي هريرة، فقال: «نزلت على أبي هريرة بالمدينة ستة أشهر، فلم أر من أصحاب رسول الله ﷺ رجلاً أشد تشميرًا، ولا أقوم على ضيف، من أبي هريرة». وكان أبو هريرة دائم الإقرار بفضل ربه عليه، فقد رُوي أنه صلى بالناس يومًا، فلما سلّم، رفع صوته، فقال: «الحمد لله الذي جعل الدين قوامًا، وجعل أبا هريرة إمامًا؛ بعد أن كان أجيرًا لابنة غزوان على شبع بطنه، وحمولة رجله، فزوجنيها الله، فهي امرأتي».
2 رمضان
2 رمضان أو 2 رمضان المُبارك أو يوم 2 \ 9 (اليوم الثاني من الشهر التاسع) هو اليوم الثامن والثلاثون بعد المائتين (238) من أيَّام السنة (أو التاسع والثلاثون بعد المائتين لو كان شهر شعبان مُتممًا لليوم الثلاثين أو الأربعون بعد المائتين لو أتم كلاً من صفر وربيع الآخر وجمادى الآخرة وشعبان ثلاثين يوماً) وفق التقويم الهجري القمري (العربي). يبقى بعده 116 أو 117 يومًا لانتهاء السنة.
2 رمضان أحداث
82 هـ - المسلمون بقيادة حسان بن النعمان يتمكنون من إلحاق الهزيمة بالكاهنة البربرية ديهيا وقتلها في إقليم الأوراس، بعد انضمام 12000 من جنودها إلى جيش المسلمين واعتناقهم للدين الجديد.
114 هـ - استمرار اشتعال معركة بلاط الشهداء بين المسلمين بقيادة «عبد الرحمن الغافقي» والفرنجة بقيادة «شارل مارتل»، وجرت أحداثها في فرنسا، اشتعلت المعركة مدة عشرة أيام من أواخر شعبان حتى أوائل شهر رمضان، ولم تنتهِ المعركة بانتصارِ أحد الفريقين، لكنَّ المسلمين انسحبوا بالليل وتركوا ساحة القتال.
702 هـ - نشوب معركة شقحب جنوب دمشق بين المسلمين بقيادة السلطان الناصر محمد بن قلاوون، ومغول فارس بقيادة قتلغ شاه نويان وانتهت بانتصار المسلمين والقضاء على طموحات الإلخان محمود غازان في السيطرة على الشام والتوسع في العالم الإسلامي.
2 رمضان أحداث
996 هـ - الجيش البولوني المعزز بوحدات الصاعقة العثمانية يهزم الجيش الألماني في معركة كارفو، ويأسر الأرشيدق الألماني جون سيجسموند. ويرجع سبب هذه المعركة إلى رغبة الألمان في السيطرة على العرش البولوني الذي كان تابعًا للدولة العثمانية.
1369 هـ - توقيع «معاهدة الدفاع المشترك» بين الدول الأعضاء في جامعة الدول العربية، وتتضمن المعاهدة بنودًا تتعلق بفضّ المنازعات بين الدول الأعضاء بالطرق السلمية، وبنودًا تتعلق بمواجهة أي عدوان مسلح ضد الدول الأعضاء، إلا أن هذه المعاهدة لم تدخل حيز التطبيق منذ توقيعها.
بايثون (لغة برمجة)
بايثون (بالإنجليزية: 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)، والتي تشترك فيها بعض اللغات الأخرى، ولكن في معظم لغات البرمجة، ليس للإزاحة أي معنًى دلالي.
تتضمن عبارات بايثون البرمجية (من بين أمور أخرى):
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
عبارة مساواة (تستخدم إشارة المساواة =) تعمل بشكل مختلف عن بقية لغات البرمجة الأمرية وهذه الآلية الأساسية التي تتضمن «طبيعة إصدارات بايثون الخاصة بالمتغيرات» تنير الطريق للعديد من ميزات اللغة الأخرى. نأخذ مثالاً عن المساواة في لغة سي: x = 2، يُترجم إلى «اسم المتغير المكتوب x يتلقى نسخة من القيمة العددية 2». تنسخ القيمة (اليمنى) في موقع تخزين مخصص بحيث يكون اسم المتغير (الأيسر) هو العنوان الرمزي. الذاكرة المخصصة للمتغير كبيرة بما يكفي (من المحتمل أن تكون كبيرة جدًا) للنوع المعرّف. في أبسط حالة لإسناد بايثون (assignment)، وإذا قمنا بنفس العملية في بايثون (أي x = 2)، فإنه يُترجم إلى «اسم (generic عام) x يستقبل مرجعًا لكائن منفصل مُخصص ديناميكيًا نوعه العددي (int عدد صحيح) قيمته 2». هذا يسمى ربط الاسم بالكائن (binding). نظرًا لأن موقع تخزين الاسم لا يحتوي على القيمة المشار إليها، فمن غير المناسب تسميته متغيرًا. قد يتم إعادة الأسماء لاحقًا في أي وقت إلى كائنات من أنواع مختلفة اختلافًا كبيرًا، بما في ذلك السلاسل النصية strings والإجراءات والكائنات المعقدة مع البيانات والطرق، وغير ذلك. التعيينات (مساواة) المتتالية لقيمة مشتركة لأسماء متعددة، على سبيل المثال، x = 2؛ y = 2؛ z = 2 ينتج عن تخصيص مساحة تخزين (على الأكثر) لثلاثة أسماء وكائن عددي واحد، يتم ربط جميع الأسماء الثلاثة به. نظرًا لأن الاسم هو حامل مرجع عام (generic reference holder)، فمن غير المعقول ربط نوع بيانات ثابت به. ومع ذلك، في وقت معين، سيتم ربط الاسم بكائن ما، والذي سيكون له نوع؛ وبالتالي هناك كتابة ديناميكية.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
العبارة جرّب try، التي تسمح بالتعامل مع الاستثناءات المرفوعة في مجموعة الكود المرفق والتعامل معها باستثناء except البنود؛ يضمن أيضًا تشغيل كود التنظيف في مجموعة الكود البرمجية الأخيرة دائمًا بغض النظر عن كيفية خروج الكتلة.
العبارة مع with، من بايثون2.5 التي صدرت في سبتمبر 2006 ، والتي ترفق كتلة الكود داخل مدير السياق (على سبيل المثال، الحصول على قفل قبل تشغيل كتلة الكود وإطلاق القفل بعد ذلك، أو فتح ملف ثم إغلاقه)، والسماح لاكتساب الموارد الذي هو سلوك يشبه التهيئة (RAII) ويحل محل العبارة الاصطلاحية محاولة/أخيراً try/finally.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
بايثون لا تدعم التحسين الخاص الاستدعاء الذيلي أو (استمرارية الدرجة الأولى)، كما أعلن غايدو فان روسم أنه لن تدعم أبداً. ومع ذلك، يتوفر دعم أفضل للوظائف الشبيهة بالروتين المساعد في النسخة 2.5، من خلال توسيع مولدات بايثون. قبل نسخة 2.5، كانت المولدات مكررات كسولة، والتي يتم تمرير المعلومات من اتجاه واحد خارج المولد. ابتداءً من بايثون 2.5، صار من الممكن تمرير المعلومات مرة أخرى إلى دالة المولد، وبدءاً من بايثون 3.3، صار من الممكن أيضا تمرير المعلومات من خلال تعدد مستويات المكدس.
بعض تعبيرات بايثون تشبه لغات مثل سي وجافا، بينما البعض الآخر لا:
الجمع والطرح والضرب في بايثون مماثلة لما في جافا وسي، ولكن سلوك القسمة يختلف. هناك نوعان من القسمة في بايثون: التقسيم الكامل (أو تقسيم العدد الصحيح) // وتقسيم الفاصلة ا (لعائمة) /. أضافت بايثون أيضًا العامل ** من أجل الأس.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
في بايثون == تقارن الأعداد من حيث القيمة (-0.0==0.0 هي true)، بالمقابل في جافا تقارن عدديا بالقيمة أو الكائنات بالعنوان المرجعي. (من الممكن في جافا مقارنة القيمة بالكائنات عن طريق طريقة ()equals). معامل بايثون is يستخدم ليقارن هوية الكائنات (أي المقارنة بالعنوان المرجعي). في بايثون، المقارنات يمكن تقييدها، على سبيل المثالa <= b <= c.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
تميز بايثون بين القوائم والتعديدات (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 بشكل فعال، مع التوافق مع الطبيعة الثابتة لكائنات التعديدة. ويجدر العلم إلى أن الأقواس اختيارية لمجموعة التعديدات في سياقات لا لبس فيها.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
تتميز بايثون بتفريغ تسلسل حيث يرتبط تعبيرات متعددة، كل منها يتم تقيم إلى أي شيء يمكن تعيينه إلى (متغير، خاصية قابلة للكتابة، إلخ.)، بطريقة مماثلة لتلك التي تشكل حرفيات التعديدات، وبشكل عام، يتم وضعها على الجانب الأيسر من علامة المساواة في عبارة المساواة. تتوقع العبارة وجود كائن قابل للتكرار على الجانب الأيمن من علامة المساواة ينتج نفس عدد القيم التي تحتوي عليها التعبيرات القابلة للكتابة عند تكرارها من خلاله، وسوف تتكرر من خلاله، مع تعيين كل من القيم المنتجة للتعبير المقابلة على اليسار.
بايثون لديها عامل % «لتنسيق سلسلة نصية». هذه الوظيفة مشابهة للتنسيق الخاص بالسلسلة النصية 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}'.
بايثون (لغة برمجة) النحو (بناء اللغة) والدلالات
بايثون لديها حرفيات السلاسل النصية متنوعة:
سلاسل محددة بعلامات اقتباس مفردة أو مزدوجة. على عكس شل يونكس، وبيرل واللغات المتأثرة ب ب حيث تعمل علامات الاقتباس المفردة وعلامات الاقتباس المزدوجة بشكل متماثل وظيفياً. يستخدم كلا النوعين من الخط المائل (\) رمزًا للهروب. أصبح استكمال السلسلة النصية متاحًا في بايثون 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 هي عبارة برمجية) الأول للتعبيرات، والثاني للعبارات البرمجية.