دالة range() في Python: كيفية توليد تسلسلات الأرقام بسهولة

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 20 سبتمبر 2024

محتوى المقال

دالة range() في Python: كيفية توليد تسلسلات الأرقام بسهولة

دالة range() هي واحدة من أكثر الدوال شيوعًا واستخدامًا في لغة البرمجة Python. تستخدم هذه الدالة لتوليد تسلسل من الأرقام بسهولة وبطريقة مرنة. في هذا المقال، سنتعرف على كيفية استخدام range() لتوليد تسلسلات مختلفة من الأرقام مع أمثلة توضيحية لتغطية جميع استخداماتها.

ما هي دالة range()؟

دالة range() تُستخدم لتوليد تسلسل من الأرقام. تعيد هذه الدالة كائنًا يمكن استخدامه في حلقات التكرار (for loops) أو تحويله إلى قائمة باستخدام دالة list().

الصيغة العامة لدالة range() هي:

range(start, stop, step)
  • start: (اختياري) الرقم الذي يبدأ منه التسلسل. إذا لم يُذكر، يبدأ من الصفر.
  • stop: (إجباري) الرقم الذي يتوقف عنده التسلسل. الرقم الأخير في التسلسل سيكون أقل من stop وليس مساويًا له.
  • step: (اختياري) الفاصل بين كل رقم والذي يحدد كيفية تقدم التسلسل. الافتراضي هو 1.

أمثلة على استخدام range()

مثال 1: توليد تسلسل بسيط

أبسط طريقة لاستخدام range() هي باستخدام وسيط واحد وهو stop لتوليد تسلسل من الأرقام التي تبدأ من 0 وتنتهي عند stop 1.

for num in range(5):
    print(num)
# الناتج: 0 1 2 3 4

في هذا المثال، يتم توليد تسلسل من الأرقام من 0 إلى 4.

مثال 2: تحديد نقطة البداية

يمكنك تحديد وسيطين، start و stop، لتوليد تسلسل يبدأ من start وينتهي قبل stop.

for num in range(2, 7):
    print(num)
# الناتج: 2 3 4 5 6

في هذا المثال، يبدأ التسلسل من 2 وينتهي قبل 7.

مثال 3: استخدام خطوة معينة

عند تحديد step، يمكنك التحكم في كيفية تقدم التسلسل. على سبيل المثال، يمكنك توليد تسلسل يتزايد بفاصل معين.

for num in range(1, 10, 2):
    print(num)
# الناتج: 1 3 5 7 9

في هذا المثال، يبدأ التسلسل من 1 ويتزايد بفاصل 2 حتى 9.

توليد تسلسل تنازلي

يمكنك استخدام خطوة سالبة (step) لتوليد تسلسل تنازلي من الأرقام. تذكر أن في هذه الحالة يجب أن يكون start أكبر من stop.

مثال 4: تسلسل تنازلي

لنقم بتوليد تسلسل تنازلي من 10 إلى 1:

for num in range(10, 0, -1):
    print(num)
# الناتج: 10 9 8 7 6 5 4 3 2 1

في هذا المثال، يتم توليد تسلسل تنازلي من 10 إلى 1.

تحويل كائن range إلى قائمة

يمكنك تحويل كائن range إلى قائمة باستخدام دالة list() إذا كنت بحاجة إلى التعامل مع التسلسل كقائمة.

مثال 5: تحويل range إلى قائمة

لنقم بتوليد قائمة تحتوي على الأرقام من 0 إلى 9:

numbers = list(range(10))
print(numbers)
# الناتج: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

في هذا المثال، تم تحويل كائن range إلى قائمة.

توليد أرقام كبيرة بكفاءة باستخدام range()

من أهم مميزات دالة range() في Python أنها لا تولد القائمة كاملة في الذاكرة، بل تولد القيم المطلوبة عند الحاجة (توليد كسول أو lazy evaluation). هذا يجعل range() فعالًا جدًا عند التعامل مع أعداد كبيرة.

مثال 6: توليد تسلسل كبير

على سبيل المثال، يمكن استخدام range() لتوليد تسلسل كبير جداً بكفاءة:

for num in range(1, 1000000, 100000):
    print(num)
# الناتج: 1 100001 200001 300001 400001 500001 600001 700001 800001 900001

في هذا المثال، تم توليد تسلسل من الأرقام بين 1 و 1,000,000 بفاصل 100,000.

متى تستخدم range()؟

دالة range() هي الخيار الأمثل عند الحاجة إلى:

  • توليد تسلسل من الأرقام لأغراض التكرار في حلقات for.
  • توليد تسلسلات كبيرة دون استهلاك الذاكرة بشكل غير فعال.
  • إنشاء تسلسلات متزايدة أو متناقصة بفواصل معينة.

مقارنة range() مع الطرق الأخرى لتوليد الأرقام

على الرغم من أن دالة range() هي الطريقة الأكثر شيوعًا لتوليد تسلسلات الأرقام في Python، إلا أنه يمكن استخدام طرق أخرى مثل التكرار باستخدام الحلقات التقليدية، لكن range() توفر حلاً أكثر اختصارًا وفعالية.

مثال 7: توليد تسلسل باستخدام حلقة while

num = 0
while num < 5:
    print(num)
    num += 1
# الناتج: 0 1 2 3 4

على الرغم من أن هذه الطريقة تعمل بشكل جيد، فإن استخدام range() يجعل الكود أكثر وضوحًا وأقل عرضة للأخطاء.

الخلاصة

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

طور مهاراتك: مقالات يجب قراءتها في البرمجة