أفضل الممارسات لحلقة for في بايثون
توضح هذه المقالة أفضل الممارسات لحلقة for في بايثون۔
YouTube Video
أفضل الممارسات لحلقة for
في بايثون
في بايثون، تعتبر حلقة for أداة قوية للتكرار عبر مجموعة من العناصر المتعددة۔ هنا، نتعمق في الاستخدام القياسي لحلقة for في بايثون ونستكشف أفضل الممارسات.۔ سنقدم أمثلة عملية على الشيفرة البرمجية، والقضايا الشائعة، وتقنيات للحفاظ على كفاءة الشيفرة.۔
حلقة for
الأساسية
حلقة for الأساسية في بايثون بسيطة نسبياً۔ على سبيل المثال، يمكنك إخراج عناصر قائمة واحدة تلو الأخرى كما هو موضح أدناه:۔
1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3 print(fruit)
تُخرج الشيفرة أعلاه العناصر "تفاحة" و"موز" و"كرز" بالترتيب.۔
صياغة التكرار
هذا مثال بسيط نسبيًا، لكن حلقة for
يمكنها تنفيذ سيناريوهات أكثر تعقيدًا۔ على سبيل المثال، يمكنك استخدام enumerate
أو zip
للتكرار عبر عدة قوائم في وقت واحد۔
استخدام enumerate
باستخدام enumerate
، يمكنك الحصول على الفهرس والعنصر في نفس الوقت۔
1fruits = ["apple", "banana", "cherry"]
2for index, fruit in enumerate(fruits):
3 print(f"{index}: {fruit}")
استخدام zip
باستخدام zip
، يمكنك التكرار عبر عدة قوائم في وقت واحد۔
1names = ["Alice", "Bob", "Charlie"]
2ages = [25, 30, 35]
3for name, age in zip(names, ages):
4 print(f"{name} is {age} years old.")
ميزات القوائم وإدارة الحالات الحديّة
استخدام القوائم مباشرةً مريح، ولكن عند العمل مع بيانات كبيرة، من المهم استخدام صياغة واضحة وفعالة۔
استيعاب القوائم
على سبيل المثال، إذا كنت تريد تجنب تكرار العناصر داخل قائمة، يمكنك استخدام مجموعة (set) لمنع النتائج المكررة۔
1items = ["apple", "banana", "apple", "cherry"]
2for item in set(items):
3 print(item)
هذا يزيل العناصر المكررة تلقائيًا۔
التكرار عبر القواميس
عند التكرار عبر القواميس، استخدم طريقة items()
للوصول إلى المفاتيح والقيم۔
1capitals = {"USA": "Washington, D.C.", "France": "Paris", "Japan": "Tokyo"}
2for country, capital in capitals.items():
3 print(f"The capital of {country} is {capital}.")
استخدام تعبيرات القوائم
استخدام تعبيرات القوائم يمكن أن يجعل الكود أكثر اختصارًا وقابلية للقراءة۔ هذا فعال عند إنشاء قوائم جديدة باستخدام حلقات for
۔
1squares = [x**2 for x in range(10)]
2print(squares)
الحلقات الشرطية
بإضافة شروط، يمكنك تنفيذ تصفية أو عمليات أخرى داخل الحلقة عندما تكون هناك حاجة لإجراءات محددة۔
1numbers = [1, 2, 3, 4, 5]
2even_squares = [x**2 for x in numbers if x % 2 == 0]
3print(even_squares)
استخدام else
في بايثون، يمكنك تضمين جملة else
داخل الحلقة۔ هذا يتم تنفيذه فقط إذا انتهت الحلقة بشكل طبيعي دون أن يتم قطعها باستخدام break
۔
1numbers = [1, 2, 3, 4, 5]
2search_for = 6
3
4for number in numbers:
5 if number == search_for:
6 print("Number found!")
7 break
8else:
9 print("Number not found.")
تحذير بشأن الحلقات الداخلية
يجب تجنب الكتابة فوق قائمة موجودة داخل حلقة for۔ قد يؤدي ذلك إلى سلوك غير مقصود بسبب عمليات إعادة كتابة غير ضرورية۔
مثال على الحالة الأسوأ
1numbers = [1, 2, 3, 4]
2for i in numbers:
3 numbers.append(i * 2) # Modify the list while iterating
4 if len(numbers) > 10:
5 break # Avoid infinite loop
قد يؤدي ذلك إلى نتائج غير متوقعة وليس كودًا آمنًا۔
اختيار البيانات المستهدفة
باستخدام هياكل بيانات مناسبة أثناء تنفيذ حلقة for، يمكنك تحسين الكفاءة۔ استخدام المولدات لتحويل البيانات الكبيرة أو itertools
لتبسيط العمليات فعال۔
المولد (Generator)
1def generate_numbers():
2 for i in range(5):
3 yield i
4
5for number in generate_numbers():
6 print(number)
من خلال استخدام مثل هذه المولدات، يمكنك التعامل مع البيانات بطريقة تدفقية بدلاً من تحميل كل شيء دفعة واحدة۔
الخاتمة
حلقة for
في بايثون يمكنها التعامل مع مجموعة واسعة من المهام، من التكرارات البسيطة إلى التحويلات المعقدة۔ مع ذلك، قد يؤدي الاستخدام غير السليم إلى تعقيدات غير ضرورية وانخفاض الكفاءة۔ من خلال اتباع هذه الممارسات الفضلى، يمكنك كتابة كود فعال مع تحسين سهولة الصيانة وقابلية القراءة۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔