برمجة

دليل Python للمبتدئين النهائي

30 أكتوبر 2021

جدول المحتويات

  • إعداد البيئة
    • إعداد البيئة المحلية
    • كيف تحصل على بايثون
    • كيفية تثبيت بايثون
    • تثبيت Windows
    • تثبيت يونكس / لينكس
    • تركيب MAC
    • إعداد مسار لبايثون
    • تحديد المسار لنظام التشغيل Unix / Linux
    • تحديد المسار لنظام التشغيل Windows
  • متغيرات بيئة بايثون
    • تشغيل بايثون
  • النحو الأساسي
    • معرفات بايثون
    • بيان بايثون
    • المسافات البادئة في بايثون
    • تعليقات في بايثون
    • الحصول على المدخلات
    • عرض الإخراج
  • أنواع المتغيرات
    • تعيين القيم للمتغيرات
    • أنواع بيانات بايثون
    • سلاسل
    • مجموعات
    • القوائم
    • أعداد
  • عوامل التشغيل الأساسية
    • مهمة تشغيل
    • عامل بت
    • عامل منطقي
    • عامل حسابي
    • عامل المقارنة
    • مشغل الهوية
    • مشغل العضوية
  • صناعة القرار
    • إذا البيان
    • إذا كان غير ذلك
    • متداخلة إذا
    • إذا- elif- آخر- سلم
    • الاختزال إذا البيان
    • بيان الاختزال if-else
  • الحلقات
    • حائط اللوب
    • لحلقة
    • حلقات متداخلة
    • بيانات التحكم في الحلقة
    • تواصل البيان
    • بيان كسر
    • تمرير البيان
  • أعداد
    • رقم نوع التحويل
    • وظائف العدد العشوائي
    • الدوال المثلثية
    • وظائف رياضية
  • سلاسل
    • خلق سلسلة
    • عوامل السلسلة الخاصة
    • عوامل تنسيق السلسلة
    • شخصيات الهروب
    • طرق السلسلة المضمنة
  • مجموعات
    • الوصول إلى القيم في Tuples
    • تحديث المجموعات
    • معاملات Tuple الأساسية
    • بنيت في وظائف Tuple
    • الفهرسة والتقطيع
    • حذف tuple
  • القوائم
    • الوصول إلى القيم في القوائم
    • تحديث القوائم
    • عوامل تشغيل القائمة الأساسية
    • وظائف وأساليب القائمة المضمنة
    • الفهرسة والتقطيع
    • حذف عنصر القوائم
  • قاموس
    • إنشاء القاموس
    • إضافة عناصر في القاموس
    • إزالة العناصر من القاموس
    • طرق قاموس بايثون
  • التاريخ و الوقت
    • الوقت Tuple
    • وحدة الوقت
    • وحدة التقويم
  • المهام
    • كيفية تحديد وظيفة
    • استدعاء وظيفة
    • تمر بالإشارة
    • تمرير بالقيمة
    • الحجج الوظيفية
    • حجج متغيرة الطول
    • الحجج المطلوبة
    • الوسائط الافتراضية
    • وسيطات الكلمات الرئيسية
    • وظائف مجهولة
  • الوحدات
    • بيان الاستيراد
    • بيان من الاستيراد
    • من بيان الاستيراد *
    • تحديد الوحدات
    • وظائف السكان المحليين () والكرة الأرضية ()
    • مساحات الأسماء وتحديد النطاق
    • دالة دير ()
    • وظيفة إعادة التحميل ()
  • ملفات I / O
    • فتح ملف
    • سمات كائن الملف
    • إغلاق ملف
    • مع البيان
    • طريقة الكتابة
    • طريقة القراءة
    • طريقة إعادة التسمية ()
    • طريقة الإزالة ()
    • موضع الملف
  • استثناءات
    • ما هو الاستثناء؟
    • التعامل مع استثناء
    • رفع الاستثناء
    • قائمة الاستثناءات القياسية
    • استثناءات يحددها المستخدم
    • التأكيدات في بايثون
  • الفئات والكائنات
  • برمجة CGI
    • تصفح الويب
    • رأس HTTP
    • متغيرات البيئة CGI
    • طريقة GET
    • طريقة البريد
    • استخدام ملفات تعريف الارتباط في CGI
    • كيف يعمل؟
  • الوصول إلى قاعدة بيانات MySQL
    • إنشاء جدول قاعدة البيانات
    • إدراج العملية
    • قراءة العملية
    • عملية التحديث
    • حذف العملية
    • أداء المعاملات
    • تنفيذ العملية
    • عملية ROLLBACK
    • فصل قاعدة البيانات
    • معالجة الأخطاء
  • الشبكات
    • ما هي المقابس؟
    • وحدة المقبس
    • وحدات الإنترنت بيثون
  • إرسال البريد الإلكتروني
    • إرسال بريد إلكتروني بتنسيق HTML باستخدام لغة البرمجة Python
    • إرسال المرفقات كبريد إلكتروني
  • برمجة تعدد الخيوط
    • بدء موضوع جديد
    • وحدة الخيوط
    • مزامنة المواضيع
    • قائمة انتظار الأولوية متعددة مؤشرات الترابط
  • معالجة XML
    • ما هو XML؟
    • معماريات محلل XML وواجهات برمجة التطبيقات
    • تحليل XML مع SAX APIs
      • طريقة make_parser
      • طريقة التحليل
      • طريقة parseString
  • برمجة واجهة المستخدم الرسومية
    • الحاجيات Tkinter
  • إدارة الهندسة
  • مقالات مقترحة

الفئات والكائنات

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

إذا لم يكن لديك ما يكفي من المعرفة حول البرمجة الموجهة للكائنات ، فهذا شيء بسيط لتبدأ به.

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

تكوين الطبقات

يقوم الفصل بإنشاء تعريف فئة جديد. يتبع اسم الفصل فئة الكلمة الأساسية متبوعة بنقطتين.

بناء الجملة

class ClassName: 'Optional class documentation string.' class_suite
  • يتكون الفصل من سلسلة وثائق ، يتم الوصول إليها عبر ClassName .__ doc__.
  • يتكون class_suite من عبارات المكون التي تحدد أعضاء الفئة وخصائص البيانات والوظائف.
IMG 617dd27284418

كائنات الفئة

الكائن هو مثيل للفئة. الفصل يشبه المخطط بينما هو نسخة من الفصل بقيم فعلية.

img 617dd272d3ac5

انتاج

IMG 617dd273361bc

الوصول إلى السمات

يمكنك الوصول إلى سمات الكائن باستخدام عامل تشغيل النقطة مع الكائن.

  • getattr (obj، name [، افتراضي]) - يتم استخدامه للوصول إلى سمة الكائن.
  • hasattr (obj، name) - يتم استخدامه للتحقق مما إذا كانت السمة موجودة أم لا.
  • setattr (كائن ، اسم ، قيمة) - يتم استخدامه لتعيين سمة. إذا كانت السمة غير موجودة ، فسيتم إنشاؤها.
  • delattr (obj، name) −يتم استخدامه لحذف سمة.

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

تحتفظ كل فئة من فئات Python باتباع السمات المضمنة ، ويتم الوصول إليها باستخدام عامل التشغيل dot مثل أي سمة أخرى -

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

جمع القمامة

يقوم Python بحذف الكائنات تلقائيًا لتحرير مساحة الذاكرة. تسمى العملية التي يستعيد بها Python بشكل دوري كتل الذاكرة التي لم تعد قيد الاستخدام بـ Garbage Collection.

يعمل جامع القمامة في Python أثناء تنفيذ البرنامج ، ويتم تشغيله عندما يصل عدد مرجع الكائن إلى الصفر.

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

img 617dd273789c9

انتاج

img 617dd273c29af

الوراثة الطبقية

يمكنك أيضًا إنشاء فصل دراسي عن طريق اشتقاقه من فصل دراسي سابق بذكر الفئة الأصلية بين قوسين بعد اسم الفصل الجديد.

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

بناء الجملة

class SubClassName (Firstparentclass[, Secondparentclass, ...]): 'Optional class documentation string' class_suite

طرق التجاوز

يمكنك تجاوز طرق فصل الوالدين. يرجع سبب تجاوز طرق الوالدين إلى أنك قد ترغب في الحصول على وظائف فريدة أو مختلفة في الفئة الفرعية الخاصة بك. فيما يلي بعض طرق التحميل الزائد الأساسية.

نعم / لا طريقة وصف
واحد__إعادة __ (ذاتي)تمثيل سلسلة قابلة للتقييم
اثنين__del __ (ذاتي)المدمر ، يحذف الكائن
3__cmp__ (النفس ، x)مقارنة الكائن
4__init__ (self [، ​​args…])المُنشئ (مع أي وسيطات اختيارية)
5__str __ (ذاتي)تمثيل سلسلة قابلة للطباعة

التعبيرات العادية

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

توفر وحدة Python دعمًا كاملاً للتعبيرات العادية المشابهة لـ Perl في Python. تثير الوحدة الاستثناء.

وظيفة المطابقة

يحاول مطابقة نمط RE مع السلسلة ذات العلامات الاختيارية.

بناء الجملة

re.match(pattern, string, flags=0)
نعم / لا معامل وصف
واحدالأعلامتحدد أعلامًا مختلفة باستخدام أحادي المعامل OR (|).
اثنيننمطإنه تعبير عادي يجب مطابقته.
3سلسلةإنها السلسلة التي يتم البحث عنها لمطابقة النمط الموجود في بداية السلسلة.

وظيفة البحث

إنه يبحث عن التواجد الأول لنمط RE داخل السلسلة ذات العلامات الاختيارية.

بناء الجملة

re.search(pattern, string, flags=0)
نعم / لا معامل وصف
واحدالأعلامتحدد أعلامًا مختلفة باستخدام أحادي المعامل OR (|).
اثنيننمطإنه تعبير عادي يجب مطابقته.
3سلسلةإنها السلسلة التي يتم البحث عنها لمطابقة النمط الموجود في بداية السلسلة.

معدِّلات التعبير العادي

نعم / لا معامل وصف
واحدإعادة ميجعل $ يطابق نهاية السطر ويجعل ^ يطابق بداية أي سطر.
اثنينإعادةيفسر الكلمات وفقًا للإعدادات المحلية الحالية. يؤثر التفسير على المجموعة الأبجدية بالإضافة إلى سلوك حدود الكلمات.
3re.Uيفسر الحروف وفقًا لمجموعة أحرف Unicode. تؤثر العلامة على سلوك w ، W ، b ، B.
4إعادة Xيسمح بتركيب لطيف للتعبير العادي. يتجاهل المسافات البيضاء ويتعامل مع علامة # التي لم يتم تجاوزها كعلامة تعليق.
5إعادةتجعل النقطة تتطابق مع أي حرف ، بما في ذلك السطر الجديد.
6إعادةينفذ مطابقة غير حساسة لحالة الأحرف.

أنماط التعبير العادي

نعم / لا نمط وصف
واحد.يتطابق مع الحرف الفردي باستثناء السطر الجديد.
اثنينأ | بيطابق إما أ أو ب.
3[...]يتطابق مع الحرف الفردي بين قوسين.
4[^…]يتطابق مع حرف واحد ليس بين قوسين
5$يطابق نهاية السطر.
6^يطابق بداية السطر.
7إعادة*يتطابق مع 0 أو أكثر من مرات حدوث التعبير السابق.
8إعادة +إنه يطابق تكرارًا واحدًا أو أكثر للتعبير السابق.
9إعادة؟يتطابق مع حدوث 0 أو 1 للتعبير السابق.
10إعادة {ن}يتطابق تمامًا مع عدد n من تكرارات التعبير السابق.
أحد عشرإعادة {ن ، م}إنها تطابق على الأقل تكرارات n و m للتعبير السابق.
12إعادة {ن ،}يتطابق مع عدد n أو أكثر من تكرارات التعبير السابق.
13(إعادة)يقوم بتجميع التعبيرات العادية ويتذكر النص المتطابق.
14(؟ imx)يقوم بالتبديل مؤقتًا بين خيارات i أو m أو x داخل تعبير عادي.
خمسة عشر(؟ imx: re)يقوم بالتبديل مؤقتًا بين خيارات i أو m أو x داخل الأقواس.
16؟: إعادة)يقوم بتجميع التعبيرات العادية دون تذكر النص المتطابق.
17(؟ -imx)يقوم مؤقتًا بتبديل خيارات i أو m أو x داخل تعبير عادي.
18(؟ -imx: re)يقوم مؤقتًا بتبديل خيارات i أو m أو x داخل الأقواس.
19(؟ #…)تعليق.
عشرين(؟ = إعادة)يحدد الموقع باستخدام نمط. ليس لديها نطاق.
واحد وعشرين(؟! إعادة)يحدد الموقع باستخدام نمط النفي. ليس لديها نطاق.
22(؟> إعادة)يطابق النمط المستقل دون التراجع.
23فييتطابق مع أحرف الكلمات.
24فييتطابق مع أحرف ليست كلمة.
25سيتطابق مع عدم وجود مسافة بيضاء.
26سيطابق المسافة البيضاء.
27ديتطابق مع غير الأرقام.
28ديتطابق مع الأرقام. يعادل [0-9].
29 10يطابق التعبير الفرعي nth المجمعة إذا كان يطابق بالفعل. وإلا فإنه يشير إلى التمثيل الثماني لرمز الحرف.
30ليطابق بداية السلسلة.
31معيطابق نهاية السلسلة. في حالة وجود أي سطر جديد ، فإنه يتطابق قبل السطر الجديد مباشرةً.
32معيطابق نهاية السلسلة.
33 زإنها تطابق النقطة التي انتهت فيها المباراة الأخيرة.
3. 4 n ، t ، إلخ.إنها تتطابق مع الأسطر الجديدة ، وعلامات الإرجاع ، وعلامات التبويب ، وما إلى ذلك.
35بيطابق حدود nonword.
36 1… 9يتطابق مع التعبير الفرعي المجمع n.
37بيطابق مسافة للخلف (0x08) عندما تكون داخل الأقواس.

فئات الأحرف

نعم / لا مثال وصف
واحد[aeiou]تتطابق مع أي حرف متحرك صغير
اثنين[0-9]يطابق أي رقم ؛ مثل [0123456789]
3[ص] يثونإنها تتطابق مع بايثون أو بيثون
4[a-z]يتطابق مع أي حرف ASCII صغير
5فرك [أنتم]إنها تتطابق مع الياقوت أو الأحمر
6[^ aeiou]يتطابق مع أي شيء بخلاف حرف العلة الصغير
7[^ 0-9]يطابق أي شيء بخلاف الرقم
8[a-zA-Z0-9]يتطابق مع أي مما سبق
9[أ-ي]يتطابق مع أي حرف ASCII كبير
10.يتطابق مع الحرف الفردي باستثناء السطر الجديد.
أحد عشرفييتطابق مع أحرف الكلمات.
12فييتطابق مع أحرف ليست كلمة.
13سيتطابق مع عدم وجود مسافة بيضاء.
14سيطابق المسافة البيضاء.
خمسة عشرديتطابق مع غير الأرقام.
16ديتطابق مع الأرقام. يعادل [0-9].

حالات التكرار

نعم / لا مثال وصف
واحدروبي +يطابق rub plus 1 أو أكثر ys
اثنينروبي *إنها تطابق rub بالإضافة إلى 0 أو أكثر ys
3روبي؟إنها تطابق rub أو ruby: y اختيارية
4 d {3}يطابق بالضبط 3 أرقام
5 d {3،}يتطابق مع 3 أرقام أو أكثر
6 د {3،5}يتطابق مع 3 أو 4 أو 5 أرقام

المراسي

نعم / لا مثال وصف
واحدPython Zإنها تطابق Python في نهاية السلسلة.
اثنينبايثون $إنها تطابق Python في نهاية سلسلة أو سطر.
3^ بيثونإنها تطابق Python في بداية سلسلة أو سطر داخلي.
4 أبيثونإنها تطابق Python في بداية السلسلة.
5بايثون (؟ =!)إنها تتطابق مع Python إذا تبعتها علامة تعجب.
6بايثون (؟ !!)إنها تطابق Python ، إذا لم تتبعها علامة تعجب.
7 ب بايثون بإنه يطابق بايثون عند حدود الكلمة.