وفقًا لـ StackOverflow ، تعد Python لغة البرمجة الأسرع نموًا. على سبيل المثال ، يقول أحد تقارير
فوربس أن استخدام بيثون نما بنسبة 456 ٪. يتم استخدام Python بواسطة Netflix و IBM وآلاف الشركات حول العالم. دعونا لا ننسى Dropbox. مكتوبة خدمات هذه الشركة أيضا في بيثون. وفقًا لأبحاث
Dice ، فإن المعرفة في مجال بيثون مطلوبة بشدة اليوم ، ويشير
دليل شعبية لغات البرمجة إلى أن بيثون هي اليوم اللغة الأكثر شعبية في العالم. إذا قارنت Python باللغات الأخرى ، اتضح أن لديها نقاط القوة التالية:
- متوافق مع الغالبية العظمى من المنصات وأنظمة التشغيل.
- وجود العديد من الأطر والأدوات مفتوحة المصدر.
- رمز سهل القراءة والمحافظة عليه.
- مكتبة قياسية موثوقة.
- آلية التنمية القياسية من خلال الاختبار.

بيثون الخدع
أود هنا أن أوجه انتباهكم إلى 10 نصائح مفيدة بشأن برمجة بايثون. إنهم قادرون تمامًا على مساعدتك في عملك اليومي.
▍1. سلسلة السلسلة
إذا كنت بحاجة إلى تسلسل قائمة من السلاسل ، يمكنك القيام بذلك في حلقة
for
إضافة سطر واحد في كل مرة إلى النتيجة النهائية. ومع ذلك ، سيكون هذا النهج غير فعال للغاية ، خاصة إذا كانت القائمة طويلة بما فيه الكفاية. في بيثون ، السلاسل هي كيانات ثابتة. نتيجة لذلك ، تعني كل عملية تسلسل سلسلة أنك تحتاج إلى نسخ سطرين إلى سطر جديد.
تتمثل الطريقة الأكثر فعالية في حل هذه المشكلة في استخدام الدالة
join()
:
characters = ['p', 'y', 't', 'h', 'o', 'n'] word = "".join(characters) print(word)
▍2. باستخدام قائمة المولدات
تستخدم مولدات القوائم لإنشاء قوائم جديدة من الكائنات القابلة للتكرار الأخرى. نظرًا لأن المولد يُرجع قوائم ، فإن وصفه عبارة عن تعبير ، محاط بأقواس مربعة ، يتم تنفيذه لكل عنصر من عناصر القائمة. يتضمن هذا أيضًا وصف حلقة
for
يمر عبر كل عنصر. يمكن لمولدات القائمة تسريع العمل مع القوائم بسبب حقيقة أن مترجم Python هو الأمثل للقوالب التي يتم تكرارها عندما يتم عبور القائمة.
على سبيل المثال ، ضع في اعتبارك العثور على مربعات الأعداد الصحيحة الخمسة الأولى باستخدام مولد قائمة:
m = [x ** 2 for x in range(5)] print(m)
الآن نجد الأرقام التي تظهر في كل من القائمتين:
list_a = [1, 2, 3, 4] list_b = [2, 3, 4, 5] common_num = [a for a in list_a for b in list_b if a == b] print(common_num)
▍3. تكرار عبر القوائم مع التعداد ()
يضيف الأسلوب
enumerate()
الترقيم إلى المجموعة المكررة ويعيد كائنًا يقوم بإنشاء أزواج من العناصر التي تتكون من فهرس العنصر وهذا العنصر نفسه.
دعونا حل مشكلة FizzBuzz الكلاسيكية المقدمة في المقابلات. إليك شرط هذه المهمة: "اكتب برنامجًا يعرض قائمة بالأرقام. في هذه الحالة ، بدلاً من الأرقام التي تكون مضاعفات 3 ، يتم عرض fizz ، بدلاً من الأرقام التي تكون مضاعفات 5-buzz ، وبدلاً من الأرقام التي تكون مضاعفات 3 و 5 - fizzbuzz.
numbers = [30, 42, 28, 50, 15] for i, num in enumerate(numbers): if num % 3 == 0 and num % 5 == 0: numbers[i] = 'fizzbuzz' elif num % 3 == 0: numbers[i] = 'fizz' elif num % 5 == 0: numbers[i] = 'buzz' print(numbers)
▍4. باستخدام الرمز البريدي () مع القوائم
افترض أنك بحاجة إلى الجمع بين عدة قوائم بنفس الطول وعرض القائمة الناتجة. كما في حالات أخرى ، يمكن حل مشكلة مماثلة ، إذا جاز التعبير ، "على الجبهة" ، أو يمكنك استخدام شيء مثل وظيفة
zip()
العالمية:
countries = ['France', 'Germany', 'Canada'] capitals = ['Paris', 'Berlin', 'Ottawa'] for country, capital in zip(countries,capitals): print(country, capital)
▍5. باستخدام وحدة itertools
وحدة
itertools
Python عبارة عن مجموعة من الأدوات للعمل مع التكرارات. تتضمن هذه الوحدة العديد من الأدوات لتوليد تسلسلات مختلفة. هنا ، على سبيل المثال ، ضع في
itertools.combinations()
طريقة
itertools.combinations()
. تستخدم هذه الطريقة لإنشاء مجموعات. هناك أيضًا أدوات لتجميع قيم الإدخال.
دعونا ننظر في مثال حقيقي من أجل فهم ما ورد أعلاه.
تخيل أنه في دورة معينة تشارك أربعة فرق. في جولة المجموعات ، تقام مباريات كل فريق ضد كل فريق من الفرق الأخرى. مهمتك هي توليد كل المجموعات الممكنة من الفرق التي ستلعب ضد بعضها البعض.
ألقِ نظرة على الكود التالي:
import itertools friends = ['Team 1', 'Team 2', 'Team 3', 'Team 4'] list(itertools.combinations(friends, r=2))
هنا تحتاج إلى الانتباه إلى حقيقة أن ترتيب القيم غير مهم. نظرًا لأن المجموعات
('Team 1', 'Team 2')
و
('Team 2', 'Team 1')
تمثل نفس الزوج من الفرق ، فسيتم تضمين واحد منهم فقط في القائمة النهائية. وبالمثل ، يمكنك استخدام الأسلوب
itertools.permutations()
والأساليب الأخرى لهذه الوحدة. دليل مفصل ل
itertools
ويمكن الاطلاع
هنا .
▍6. باستخدام مجموعات بايثون
مجموعات بايثون هي أنواع بيانات الحاوية. على وجه الخصوص ، هذه قوائم ، مجموعات ، tuples ، قواميس. توفر وحدة
collections
للمطور أنواع بيانات عالية الأداء تساعد على تحسين الشفرة وتجعلها أكثر نظافة وتجعل التعامل معها أسهل. تحتوي هذه الوحدة على العديد من الطرق المفيدة. نحن هنا ننظر إلى طريقة
Counter()
.
تأخذ هذه الطريقة كائنًا قابلاً للتكرار ، مثل قائمة أو tuple ، وتقوم بإرجاع قاموس يحتوي على معلومات حول عدد الكائنات المختلفة في القائمة التي يتم فحصها (Counter Counter). مفاتيح هذا القاموس هي عناصر فريدة ممثلة في الكائن القابل للتكرار ، والقيم هي كميات هذه العناصر.
لإنشاء كائن
Counter
، تحتاج إلى تمرير كائن قابل للتكرار (قائمة ، على سبيل المثال) إلى الأسلوب
Counter()
:
import collections count = collections.Counter(['a','b','c','d','b','c','d','b']) print(count)
يمكن الاطلاع على تفاصيل وحدة
collections
هنا .
▍ 7. تحويل قائمتين إلى قاموس
لنفترض أن لدينا قائمتين. واحد منهم يحتوي على أسماء الطلاب ، والثاني يحتوي على علاماتهم. كيفية تحويل هاتين القائمتين إلى قاموس؟ إذا لجأنا إلى وظيفة
zip()
لهذا ، فيمكن حل هذه المشكلة على النحو التالي:
students = ["Peter", "Julia", "Alex"] marks = [84, 65, 77] dictionary = dict(zip(students, marks)) print(dictionary)
▍8. باستخدام وظائف مولد
وظائف المولد هي الوظائف التي تتصرف مثل التكرارات. إنها تتيح للمبرمج إنشاء تكرارات أنيقة بسرعة وسهولة. النظر في مثال يكشف هذه الفكرة.
افترض أننا بحاجة إلى العثور على مجموع مربعات الأعداد الصحيحة 100،000،000 الأولى تبدأ من 1.
هذه المهمة تبدو بسيطة. يمكن حلها دون مشاكل باستخدام مولدات القائمة. ومع ذلك ، فإن المشكلة هنا هي كمية كبيرة من بيانات الإدخال. ألقِ نظرة على الكود التالي:
import time t1 = time.clock() sum([i * i for i in range(1, 100000000)]) t2 = time.clock() time_diff = t2 - t1 print(f"It took {time_diff} Secs to execute this method")
إذا احتجنا إلى إيجاد مجموع المربعات لعدد أكبر من الأرقام ، اتضح أن هذه التقنية غير مناسبة للعثور عليها نظرًا لحقيقة أن الأمر يستغرق الكثير من الوقت لإيجاد حل. في هذه الحالة ، سوف تأتي وظائف مولد Python لمساعدتنا. في حالتنا ، من أجل التبديل من استخدام مولدات القوائم إلى وظائف المولد ، يكفي تغيير الأقواس المربعة في تعبير المولد إلى دائرية. نحن نفعل هذا ونجد الوقت اللازم لحل المشكلة:
import time t1 = time.clock() sum((i * i for i in range(1, 100000000))) t2 = time.clock() time_diff = t2 - t1 print(f"It took {time_diff} Secs to execute this method")
كما ترون ، الآن يستغرق وقتًا أقل لحل المشكلة نفسها. ومع زيادة إدخال البيانات ، سيكون هذا التأثير أكثر وضوحًا.
هنا مادة حول وظائف المولد.
▍ 9. إرجاع قيم متعددة من دالة
بيثون لديه القدرة على إرجاع قيم متعددة من وظيفة. لم يتم العثور على هذا في العديد من لغات البرمجة الشعبية الأخرى. لإرجاع قيم متعددة من دالة ، يجب فصلها بفواصل. استنادًا إلى قائمة القيم هذه ، ستقوم Python بإنشاء tuple وإعادتها إلى حيث تم استدعاء الوظيفة. هنا مثال:
def multiplication_division(num1, num2): return num1*num2, num1/num2 product, division = multiplication_division(15, 3) print("Product =", product, "Quotient =", division)
▍ 10. باستخدام وظيفة الفرز ()
في Python ، من السهل جدًا فرز تسلسل بيانات معين باستخدام دالة
sorted()
المضمنة ، والتي تهتم بحل جميع المهام ذات الصلة. تقوم هذه الوظيفة بفرز أي تسلسل (قوائم ، tuples) وتُرجع دائمًا قائمة تحتوي على عناصر مرتبة. فكر في مثال على فرز قائمة بالأرقام بترتيب تصاعدي:
sorted([3,5,2,1,4])
وإليك مثال على فرز قائمة الصفوف بالترتيب التنازلي:
sorted(['france', 'germany', 'canada', 'india', 'china'], reverse=True)
النتائج
قدمت هذه المقالة 10 نصائح مفيدة لبرمجة Python قد تجدها مفيدة في عملك اليومي. نأمل أن تجد بينهم شيئًا من شأنه أن يفيدك.
أعزائي القراء! يتم تشجيع مطوري Python المتمرسين على التحدث عن ميزات Python المفيدة التي يستخدمونها بانتظام.
