أفضل الممارسات 30 من بيثون، والنصائح والحيل

الكاتب | إريك-يان فان Baaren

المترجم | الغضروف المفصلي، ذبيان | تو مين

وفيما يلي ترجمة:

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

1. نسخة بايثون

وهنا أود أن أذكركم: منذ عام 2020، 1 يناير، لم يعد معتمدا مسؤول بيثون بيثون 2. العديد من الأمثلة في هذا المقال يمكن تشغيلها فقط في بيثون 3. إذا كنت لا تزال تستخدم بايثون 2.7، الرجاء الترقية فورا.

2. تحقق الحد الأدنى إصدار بيثون

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

إن لم يكن sys.version_info >  (2، 7): # توبيخ المستخدم الخاص بك لتشغيل 10 سنوات # نسخة بايثون أليف لا sys.version_info > = (3، 5): # اقول تتكرم المستخدم الخاص بك (ق) وقال انه يحتاج لتطوير # لأنك كنت تستخدم 3.5 ميزات

3. IPython

على IPython هو في الأساس نسخة محسنة من قذيفة. تستهدف تلقائيا إلحاق فإن الأمر يستحق المحاولة، ويتميز أكثر من ذلك، كما أن لديها الكثير من الأوامر بحيث أضع عليه، على سبيل المثال:

  • الكادميوم: تغيير دليل العمل الحالي

  • تحرير: اكتب محرر التعليمات البرمجية فتح وإغلاق تنفيذ محرر

  • بيئية: عرض متغيرات البيئة الحالية

  • بيب تثبيت: دون ترك قذيفة التفاعلية، يمكن تثبيت حزمة

  • وقت و timeit: قياس الوقت تنفيذ التعليمات البرمجية بايثون

قائمة كاملة من الأوامر، الرجاء الضغط هنا (https://ipython.readthedocs.io/en/stable/interactive/magics.html).

وهناك أيضا ميزة مفيدة جدا: الناتج إشارة من أمر. الدخول والخروج هي الكائن الفعلي. يمكنك استخدام إخراج الأمر الثالث في شكل خارج.

أمر التثبيت IPython على النحو التالي:

pip3 تثبيت ipython

4. قائمة على الفهم

يمكنك استخدام comprehensions القائمة، وتجنب مرهقة عند استخدام حلقة لملء القائمة. بناء الجملة الأساسي من comprehensions القائمة على النحو التالي:

لمثال بسيط: شغل مجموعة مرتبة من الأرقام مع قائمة تحتوي على:

قائمتي = طباعة (قائمتي) #

لأنه يمكنك استخدام التعبير، لذلك يمكنك القيام ببعض العمليات الحسابية:

الساحات = طباعة (المربعات) #

يمكنك الاتصال حتى وظيفة الخارجية:

some_function مواطنه (أ): عودة (أ + 5) / 2 my_formula = طباعة (my_formula) #

وأخيرا، يمكنك أيضا استخدام "إذا" لتصفية القائمة. في المثال التالي، نحتفظ القسمة فقط بنسبة 2 الأرقام:

المصفاة = طباعة (تصفية) #

استخدام الذاكرة هدف التفتيش

يمكنك استخدام sys.getsizeof للتحقق من حالة من استخدام الذاكرة وجوه:

تميز الكلية استيراد قائمتي = مجموعة (0، 10000) طباعة (sys.getsizeof (قائمتي)) # 48

وهلم جرا، لماذا تحتوي هذه القائمة ضخمة بايت فقط 48؟

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

يمكنك محاولة لخلق نفس قائمة أرقام باستخدام مجموعة من comprehensions القائمة:

تميز الكلية استيراد myreallist = طباعة (sys.getsizeof (myreallist)) # 87632

6. عودة قيم متعددة

وظيفة الثعبان يمكن أن يعود أكثر من متغير واحد، ولكن أيضا دون استخدام القاموس، أو قائمة من الفئات. على النحو التالي:

get_user صفر (معرف): # إحضار المستخدم من قاعدة بيانات # .... اسم العودة وتاريخ الميلاد الاسم، وتاريخ الميلاد = get_user (4)

إذا كانت قيمة الإرجاع من عدد محدود بالطبع لا توجد مشكلة. ومع ذلك، إذا كان عدد من القيمة عودة أكثر من ثلاثة، ثم يجب عليك وضع قيمة الإرجاع (بيانات) فئة.

7. الدرجة البيانات

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

  • كمية أقل من الطبقات بيانات متاحة

  • يوفر __eq__ الطريقة يمكنك مقارنة نوع البيانات كنوع بيانات

  • التصحيح، يمكنك بسهولة إخراج نوع البيانات، لأن فئة البيانات كما يوفر __repr__ طريقة

  • دروس نوع البيانات تحتاج نصائح، مما يقلل من احتمال حدوث الأخطاء

الطبقة البيانات المثال هو كما يلي:

من dataclasses dataclass استيراد dataclass بطاقة الدرجة: رتبة: شارع دعوى: شارع بطاقة = بطاقة ( "Q"، "قلوب") طباعة (بطاقة == بطاقة) # صحيح طباعة (card.rank) # 'Q' طباعة (بطاقة) بطاقة (رتبة = 'Q'، دعوى = 'قلوب')

إرشادات الاستخدام مفصل، الرجاء الضغط هنا (HTTPS: // realpython كوم / بيثون البيانات الطبقات /).

8. المتغيرات الصرف

النصائح التالية هي ذكية، يمكنك حفظ عدة أسطر من التعليمات البرمجية لك:

و= 1 ب = 2 أ، ب = ب، وهو طباعة (أ) # 2 طباعة (ب) # 1

9. القواميس دمج (فوق الإصدار 3.5 بايثون)

بدءا بيثون 3.5، عملية مشتركة القاموس أكثر بساطة:

dict1 = { "أ": 1، "ب": 2} dict2 = { 'ب': 3، 'ج': 4} اندمجت = {** dict1 **، dict2} طباعة (دمج) # { 'A': 1، 'ب': 3، 'ج': 4}

إذا تم تكرار المفتاح، سيتم الكتابة ثم القاموس الأول من المفتاح.

10. سلسلة الأحرف الكبيرة الحرف الأول

تقنية التالية هي حقا لطيف الصغيرة:

mystring = "10 الحيل الثعبان رهيبة" طباعة (mystring.title) '10 الخدع بيثون رهيبة "

11. سلسلة في قائمة

يمكنك تقسيم السلسلة إلى قائمة السلاسل. في المثال التالي، ونحن نستخدم كل كلمة مفصولة بمسافات:

mystring = "الثعلب البني السريع" قائمتي = mystring.split ( '') طباعة (قائمتي) #

12. إنشاء سلسلة فقا لقائمة السلاسل

وعلى النقيض من هذه التقنيات، ونحن يمكن أن تخلق سلسلة وفقا لقائمة من السلاسل، ثم قم بإضافة مسافة بين كل كلمة واحدة:

قائمتي = mystring = "" .join (قائمتي) طباعة (mystring) # 'الثعلب البني السريع "

ربما تتساءلون لماذا لا mylist.join ( "")، وهذا هو سؤال جيد!

السبب الأساسي هو أن وظيفة ليس فقط String.join يمكن أن تنضم إلى القائمة، ولكن أيضا يمكن ربط أي iterable. وضع سلسلة أنه من أجل تجنب الازدواجية واحد ونفس وظيفة في أماكن متعددة.

13. التعبيرات

بعض الناس حقا مثل الرموز، في حين نمقت الآخرين. I نعلن رسميا: في تحليل البيانات وسائل الاعلام الاجتماعية، يمكن الرموز تأتي في متناول اليدين.

أولا، دعونا تثبيت الرموز وحدات:

pip3 تثبيت رمز تعبيري

بعد اكتمال التثبيت، يمكنك استخدام ما يلي:

رمز تعبيري استيراد يؤدي = emoji.emojize ( 'بيثون هو: thumbs_up:') طباعة (نتيجة) # 'بيثون هو' # يمكنك أيضا عكس هذا: يؤدي = emoji.demojize ( 'بيثون') طباعة (نتيجة) # 'بيثون هو: thumbs_up: "

لمزيد من المعلومات حول الأمثلة المشاعر والوثائق، الرجاء الضغط هنا (https://pypi.org/project/emoji/).

14. قائمة الأقسام

بناء الجملة الأساسي لائحة شريحة على النحو التالي:

ل

بداية، وقف وخطوة اختيارية. إذا لم يكن محددا، يتم استخدام القيمة الافتراضية على النحو التالي:

  • بدء: 0

  • النهاية: نهاية السلسلة

  • الخطوة: 1

ومن الأمثلة على ذلك ما يلي:

# نحن يمكن بسهولة إنشاء قائمة جديدة من # العنصرين الأولين من القائمة: first_two = طباعة (first_two) # # وإذا أردنا استخدام قيمة الخطوة 2، # يمكننا تجاوز كل العدد الثاني # هل أعجبتك هذه: خطوات = طباعة (الخطوات) # # هذا يعمل على الاوتار أيضا وفي بيثون، # يمكنك علاج سلسلة مثل قائمة # رسائل: mystring = "nimt abcdefdn" طباعة (mystring) # 'تفوق انها

15. سلاسل عكس وقوائم

يمكنك استخدام الأسلوب أعلاه لعكس أقسام سلسلة أو قائمة. -1 ببساطة تحديد الخطوة، حيث العناصر يمكن عكسها:

revstring = "ABCDEFG" طباعة (revstring) # 'Gfedcba " revarray = طباعة (revarray) #

16. القط المعرض

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

pip3 تثبيت وسادة

بعد ذلك، يمكنك تحميل الصورة التالية إلى ملف يسمى kittens.jpg في:

بعد ذلك، يمكنك عرض الصورة أعلاه رمز بيثون التالية:

من PIL استيراد صورة ايم = Image.open ( "kittens.jpg") im.show طباعة (im.format، im.size، im.mode) # JPEG (1920، 135 7) RGB

وسادة هناك وظائف عديدة وراء عرض الصورة. ويمكن تحليلها، تغيير الحجم، والترشيح، وتعزيز وتعديل وغيرها. وثائق كاملة، الرجاء الضغط هنا (https://pillow.readthedocs.io/en/stable/).

17. خريطة

بيثون له المدمج في وظيفة تسمى خريطة، في بناء الجملة كما يلي:

الخريطة (وظيفة، something_iterable)

لذلك، تحتاج إلى تحديد وظيفة في القيام بها، أو لأداء شيء. أي كائن يمكن أن يكون تكرارية. في المثال التالي، I تحديد القائمة:

مواطنه العلوي (ق): عودة s.upper قائمتي = قائمة (الخريطة (العلوي،)) طباعة (قائمتي) # # تحويل تمثيل سلسلة # A رقم في قائمة [إينتس]. list_of_ints = قائمة (خريطة (الباحث، "1234567"))) طباعة (list_of_ints) #

يمكنك أن تبحث في التعليمات البرمجية الخاصة بك، معرفة ما إذا كان يمكنك استبدال خارطة دورة في مكان ما.

18. الحصول على قائمة أو سلسلة عنصر فقط

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

قائمتي = طباعة (مجموعة (قائمتي)) # {1، 2، 3، 4، 5، 6} # ومنذ سلسلة ويمكن علاج مثل # قائمة الرسائل، يمكنك أيضا الحصول على # رسائل فريدة من نوعها من سلسلة بهذه الطريقة: طباعة (مجموعة ( "aaabbbccc دد deeefff ")) # { 'A'، 'ب'، 'ج'، 'د'، 'ه'، 'و'}

19. العثور على معظم قيمة متكررة

يمكنك العثور على معظم قيمة المتكررة التي كتبها الطريقة التالية:

اختبار = طباعة (بحد أقصى (مجموعة (اختبار)، مفتاح = test.count)) # 4

يمكنك قراءة التعليمات البرمجية أعلاه؟ فكرة فهم دقيق رمز أعلاه ثم قرأ على.

لم أفهم؟ انا اقول لكم:

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

  • test.count هي قائمة من المدمج في وظائف. فإنه يأخذ وسيطة واحدة، وأيضا بحساب عدد الحوادث المعلمة. وهكذا، test.count (1) عوائد 2، وtest.count (4) إرجاع 4.

  • سوف SET (اختبار) العودة كافة القيم الفريدة في الاختبار، أي {1، 2، 3، 4}.

لذلك، هذا سطر من التعليمات البرمجية لإكمال العملية هو: أولا الحصول على كل القيم اختبار فريدة من نوعها، أي {1، 2، 3، 4}؛ ثم ينفذ ماكس list.count لكل قيمة، والعوائد الحد الأقصى.

هذا سطر من التعليمات البرمجية ليس اختراعي الخاص.

20. إنشاء شريط التقدم

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

pip3 تثبيت التقدم

بعد ذلك، يمكنك بسهولة إنشاء شريط تقدم:

من progress.bar استيراد بار شريط = بار ( 'تجهيز'، الحد الأقصى = 20) لأنني في مجموعة (20): # هل بعض العمل bar.next bar.finish

21. استخدام قذيفة التفاعلية _ (المشغل التسطير)

يمكنك الحصول على التعبير عن نتائج أكد من قبل المشغل، على سبيل المثال، في IPython، يمكنك القيام بذلك:

في: 3 * 3 من: 9In: _ + 3 الخروج: 12

ويمكن أيضا بيثون شل استخدامها على هذا النحو. وعلاوة على ذلك، في IPython قذيفة، يمكنك الحصول على قيمة التعبير في خارج. على سبيل المثال، في المثال أعلاه، وخارج إرجاع عدد 9.

22. بسرعة إنشاء ملقم ويب

يمكنك البدء بسرعة خدمة ويب، وتوفير محتويات الدليل الحالي:

python3 -m HTTP .server

عندما تريد مشاركة أحد الملفات مع زميل له، أو اختبار موقع HTML بسيطة، يمكنك أن تنظر في هذا الأسلوب.

23. سلسلة الأحرف متعدد الخطوط

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

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

S1 = "" "يمكن سلاسل خط متعدد توضع بين علامات التنصيص الثلاثية. انها ليست مثالية عند تنسيق التعليمات البرمجية الخاصة بك على الرغم من "" " طباعة (S1) # يمكن وضع سلاسل خط متعدد # بين علامات التنصيص الثلاثية. انها ليست مثالية # عندما تنسيق التعليمات البرمجية الخاصة بك على الرغم من S2 = ( "يمكنك أيضا متعددة لسلسلة \ ن" + "سلاسل بهذه الطريقة، ولكن سيكون لديك ل\ ن" "وضعت بشكل صريح في أسطر جديدة") طباعة (S2) # يمكنك أيضا متعددة سلسلة # سلاسل بهذه الطريقة، ولكن سيكون لديك ل # وضع بشكل صريح في أسطر جديدة

24. التنازل مشغل حالة الثلاثي

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

 إذا آخر

ومن الأمثلة على ذلك ما يلي:

س = "النجاح!" إذا (ص == 2) آخر "فشل!"

25. عدد من الحوادث إحصاءات العناصر

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

من مجموعات استيراد عداد قائمتي = ج = عداد (قائمتي) طباعة (ج) # عداد ({1: 2، 1: 2، 3: 1، 4: 1، 5: 3، 6: 2}) # ويعمل على الاوتار أيضا : طباعة (عداد ( "aaaaabbbbbccccc")) # عداد ({ "أ": 5، "ب": 5، "ج": 5})

26. الروابط عوامل المقارنة

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

س = 10 # بدلا من: إذا كان x >  5 و x <  15: طباعة ( "نعم") # نعم # يمكنك أيضا كتابة: إذا 5 <  س <  15: طباعة ( "نعم") # نعم

27. إضافة اللون

يمكنك COLORAMA، تعيين محطة شاشة ملونة:

من COLORAMA استيراد فور، والعودة، نمط طباعة (Fore.RED + "بعض النص أحمر ') طباعة (Back.GREEN + "مع وجود خلفية خضراء ') طباعة (Style.DIM + "وفي النص قاتمة ') طباعة (Style.RESET_ALL) طباعة ( 'عادت إلى طبيعتها الآن')

28. تاريخ العلاج

يوفر بيثون dateutil حدة كمكمل لتاريخ القياسي من وحدة، وتوسع قوي جدا، يمكنك تثبيت من خلال الأمر التالي:

pip3 تثبيت بيثون dateutil

يمكنك استخدام المكتبة تفعل الكثير من عملية مذهلة. هنا أستطيع أن أعطي فقط لك مثالا: تحليل تاريخ غامض من ملف السجل:

من dateutil.parser تحليل الواردات logline = 'INFO 2020-01-01T00: 00: 01 سنة جديدة سعيدة والبشرية ". الطابع الزمني = تحليل (log_line، = غامض صحيح) طباعة (الطابع الزمني) # 2020/1/100:00:01

ما عليك سوى أن تتذكر: عندما تواجه مشكلة بيثون التقليدي التاريخ والوقت وظيفة لا يمكن حلها، يمكن أن نعتبر بيثون dateutil!

تقسيم 29. صحيح

في في بايثون 2، وعامل القسمة (/) هو قسمة عدد صحيح افتراضيا، إلا إذا كان أحد المعاملات هو تعويم. لذلك، يمكن أن تكتب:

# بايثون 25/2 = 25 / 2.0 = 2.5

في بيثون 3، وعامل القسمة (/) هو تقسيم الفاصلة العائمة افتراضي، عامل القسمة عدد صحيح ل//. لذلك، تحتاج إلى الكتابة:

بيثون 35/2 = 2.55 @ 2 = 2

الدافع وراء هذا التغيير، انظر PEP-0238 (HTTPS: // شبكة الاتصالات العالمية .python.org / ديف / ممثلي المخاطر / الحماسي-0238 /).

30. مجموعة الأحرف الكشف من قبل chardet

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

نقطة تثبيت chardet

بعد اكتمال التثبيت، يمكنك استخدام أداة سطر الأوامر chardetect، وتستخدم على النحو التالي:

somefile.txt chardetect somefile.txt: أسكي بثقة 1.0

يمكنك أيضا استخدام المكتبة في البرمجة وثائق كاملة، الرجاء الضغط هنا (https://chardet.readthedocs.io/en/latest/usage.html).

أما بالنسبة لهدية العام الجديد أن أقدم لكم، وآمل أن تكونوا مثل! إذا كان لديك غيرها من الحيل والنصائح والممارسات، يرجى ترك التعليق أدناه!

الأصل: HTTPS: // towardsdatascience كوم / 30-الثعبان أفضل الممارسات النصائح والحيل caefb9f8c5f5

هذه المقالة CSDN الترجمة، يرجى الإشارة إلى المصدر من المصدر.

يجب على كل المطورين المبتدئين يعرفون ستة الأحداث

أرسل قوانغشى شبكة كهرباء إصلاح السكك الحديدية "حاملة الطائرات" لضمان السلامة في الفيضانات السكك الحديدية الموسم الجبل

زوار الكرز وشى Yuantouzhu الخوض في أفضل فترة العرض "عن الرومانسية."

توصية الغذاء: خبز كرواسون الأناناس اللذيذ

رسوم بن الانتعاش المهملات أيضا؟ يعلمك دقيقة واحدة للحصول على إعادته ملفات

مقاطعة مكتب البيانات الكبيرة تعميق "الاختيار المزدوج في" للعمل على التطوع "معززة تحصين المجتمع"

بايدو صناعة لاستعادة البيانات الكبيرة: وظيفة مصلحة البحث في ارتفاع قوي 165

اللؤلؤ الكبيرة الوقوع في لوحة اليشم - ودى "لخمسة مشاريع" لتعزيز تنمية الصناعات الثقافية ملخص الارتقاء

عدوى اليوميات: "على استعداد لتحمل المسؤولية، وعلى ضوء الشموع ليلة"

فريق شو يوان تشونغ نان شان من: تصل إلى التشاور سبعة أو ثمانية مرضى مصابين بأمراض خطيرة

مستشفى مدينة دونغ قوان الشعبية لفتح "إحالة عيادة التاج الالتهاب الرئوي الجديد"، وخبراء Zuozhen خدمة مجانية

تدفق لمدة 5 سنوات لأكثر من 200 مليون شخص! قوانغتشو هو أيضا 15 سنوات المقبلة 470 مليون شخص القدرات